JDBC编程要点

来源:互联网 发布:hdfs如何查看数据字段 编辑:程序博客网 时间:2024/06/14 02:39
一、JDBC应用程序构建步骤
  1.加载驱动
  2.与数据库建立连接
  3.创建Statement对象
  4.发送SQL语句
  5.处理结果集(只有查询语句有结果集)
  6.释放资源


二、PreparedStatement(Statement的子接口)
  使用占位符:insert into customers values(null,?,?);
  创建:conn.prepareStatement(sql);
  优势:防止sql注入


三、通过JDBC完成一个二进制文件的读写
  1.确保数据库编码方式为utf8,修改数据库配置文件:首先停掉服务,修改my.ini,启动服务,登录通过status检测;
  2.确保自己创建的数据库编码方式为utf8
      show create database mydb;
  3.创建表,确保表的编码方式为utf8
      create table(id int,img longblob) character set utf8;
  4.编写JDBC应用



四、JDBC元数据
  1.元数据:描述数据的数据
  2.元数据的获取和应用
      1·数据库相关(DatabaseMetaData)
      2·表相关(ResultSetMetaData)



五、JDBC中的事务控制
  1.事务控制借助Connection对象完成
     1·默认情况下为自动控制
     2·设置为手动控制
        try{
           conn.setAutoCommit(false);
           创建Statement发送sql;
           conn.commit();
        }catch(Exception e){
            if(conn!=null){
               try{
                   conn.rollback();
               }catch(Exception e1){}
            }
        }finally{

        }

   2.事务与业务紧密联系,事务控制应该放在业务层。

   3.事务由谁控制?
      Connection对象
   
   4.一个JDBC事务应该有几个Connection对象?
      一个

   5.如何保证一个JDBC事务的若干个操作使用的是一个连接对象?
      将连接对象绑定到当前线程

   6.如何将连接对象绑定到当前线程?
      借助ThreadLocal对象




六、Statement和PreparedStatement之间的区别
1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程。

2.使用 Statement 对象。在对数据库只执行一次性存取的时侯,用 Statement 对象进行处理。PreparedStatement 对象的开销比Statement大,对于一次性操作并不会带来额外的好处。

3.statement每次执行sql语句,相关数据库都要执行sql语句的编译,preparedstatement是预编译得, preparedstatement支持批处理。

4.执行许多SQL语句的JDBC程序产生大量的Statement和PreparedStatement对象。通常认为PreparedStatement对象比Statement对象更有效,特别是如果带有不同参数的同一SQL语句被多次执行的时候。PreparedStatement对象允许数据库预编译SQL语句,这样在随后的运行中可以节省时间并增加代码的可读性。






0 0
原创粉丝点击