zoukankan      html  css  js  c++  java
  • java 重新学习 (七)

    一、mysql的InnoDB通过建立行级索确保事务完整性。,并以Oracle风格的共享锁来处理select语句。系统默认存储为InnoDB.

    二、

    -- mysql 创建表
    CREATE TABLE IF NOT EXISTS `runoob_tbl`(
       `runoob_id` INT UNSIGNED AUTO_INCREMENT,
       `runoob_title` VARCHAR(100) DEFAULT 'LWS' NOT NULL,
       `runoob_author` VARCHAR(40) NOT NULL,
       `submission_date` DATE,
       PRIMARY KEY ( `runoob_id` )
    )
    如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
    AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
    PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
    
    
    -- 删除表
    DROP TABLE table_name ;
    TRUNCATE TABLE; 清空表数据保留表结构
    --修改表
    ALTER TABLE testalter_tbl 
         MODIFY j BIGINT NOT NULL DEFAULT 100; 

    三、常用函数  

      ifnull(a,b) 如果a为null,则返回b

      nullif(a,b)如果 a,b相等, 返回null。否则返回a

      if(a,b,c)  如果 a 为true,不等于0,且不等于null返回 b 否则返回c。

      isnull(a) 判断a 是否为空。

      case when age <=12 then ‘小孩’

        when age > 12 and age<=18 then ‘少年’

      end;

    四、PreparedStatement   Statement  CallableStatement(用于执行存储过程)

         executeQuery(String sql) 该方法执行查询语句,并且返回查询结果对应的ResultSet对象

         executeUpdate(String sql)该方法执行DML语句返回受影响的行数,执行DDL返回0;

         execute 可执行任何sql,执行后第一个结果为ResultSet对象则返回true;如果执行后第一个结果为受影响行数或者没有任何结果,返回false; 

         executeLargeUpdate  statement对象操作任何一条sqk影响的记录数大于Integer.MAX_VALUE 就应该使用executeLargeUpdate,放弃executeUpdate。

         setBinaryStream(int parameterIndex,InputStream x) 指定参数传入二进制流,从而实现blob数据保存到数据库的功能。

    五、PreparedStatement 预编译sql语句性能更好,防止sql注入  。

    六、CallableStatement 调用存储过程  callableStatement.prepareCall(" {call 过程名称(?,?,?,?)} ");

    七、事务:原子性,一致性,隔离性,持久性。

    八、Connection 遇到一个未处理的SQLException异常时,系统将会非正常退出,事务也会自动回滚。但如果程序捕获了该异常,则需要在异常处理块中显示地回滚事务。

    九、Java8增强的批量更新,

       批量更新必须得到底层数据库的支持,通过DatabaseMetaData的supportsBatchUpdates() 方法来查看底层数据库是否支持、

    十、利用资源池用于解决频繁请求,释放造成的性能下降。连接池程序启动时就建立足够的数据库连接,并将这些连接组成一个连接池。每次请求数据库请求数据库连接时么无须重新打开连接,而是从连接池中取出已有的连接使用,使用完后不再关闭数据库连接,而是直接将连接归还给连接池。

  • 相关阅读:
    Nginx调优
    Nginx的压缩配置
    【进阶 6-1 期】JavaScript 高阶函数浅析
    个人总结的一个中高级Java开发工程师或架构师需要掌握的一些技能
    Java程序猿跳槽应该学哪些方面的技术!
    xamarin学习之路 例一、嵌入网页
    xamarin学习之路 一、vs2015 环境搭建
    xamarin 学习异常问题解决方法
    js 替换字符串 replace函数运用
    76Byte让你的JQuery更快
  • 原文地址:https://www.cnblogs.com/wenbuzhu/p/10027195.html
Copyright © 2011-2022 走看看