JDBC 笔记2


  1. 预编译的Statement
  2. PreparedStatement 可以使用参数替代sql语句中的某些参数使用 "?"代替,他先将带参数的sql语句发送到数据库,进行编译,然后PreparedStatement会将参数发送给数据库。
    在使用PreparedStatement时,在设置相应参数时,要指明参数的位置和类型,以及给出参数值
    根据不同的参数类型使用不同的setXXX(参数的位置,参数值)来设置参数
  3. 例:
    public void insert(Student s){
      Connection con=ConnectionFactory.getConnection();//建立连接
      String sql="insert into student(id,name) values(?,?)";
      PreparedStatement ps=null;
      try {
       ps=con.prepareStatement(sql);//创建一个PreparedStatement
                            int index=1;
       ps.setInt(index++,s.getStuId());
       ps.setString(index++,s.getName());
       ps.executeUpdate();
      } catch (SQLException e) {
       e.printStackTrace();
      }finally{
       if(ps!=null)
        try {
         ps.close();
        } catch (SQLException e) {
         e.printStackTrace();
        }
        if(con!=null)
         try {
          con.close();
         } catch (SQLException e) {
          e.printStackTrace();
         }
      }
     }
  4. CallableStatement是可以用非sql语句来访问数据库,他是通过调用存储过程(PL/SQL)来访问数据库的。可以直接使用连接来调用 prepareCall(...)方法,来执行这个存储过程,"..."是存储过程的名字。
  5. 对于系统时间要去数据库时间
    TimeStamp 和 Date都可以保存时间
    TimeStamp可以保存时、分、秒的数据,Date只保存日期年月的信息。
  6. SQLException是检查异常必须处理要么throws ,要么try{}catch(){}
    getErrorCode()可以获得错误码,可以对错误进行查询。
  7. 源数据
  8. JDBC中有两种源数据,一种是数据库源数据,另一种是ResultSet源数据。
  9. 源数据就是描述存储用户数据的容器的数据结构。
  10. ResultSet rs=ps.executeQuery(sql);
    ResultSetMetaData m=rs.getMetaData();
  11. getColumnCount(),获得实际列数
    getColumnName(int colnum),获得指定列的列名
    getColumnType(int colnum),获得指定列的数据类型
    getColumnTypeName(int colnum),获得指定列的数据类型名
  12. 数据库源数据
  13. DatabaseMetaData
    getURL(),获得连接数据库的URL
    getDatabaseProductName() 获得数据库产品的名称
    getDriverVersion() 获得JDBC驱动程序的String形式的版本号
    getTables()获得数据库中该用户的所有表
    getUserName() 获得数据库用户名。
  14. 事务(Transaction)
    事务是针对原子操作的,要求原子操作不可再分,要求原子操作必须同时成功同时失败。
    事务是捆绑的原子操作的边界。
    JDBC中使用事务,先要使用连接调用setAutoCommite(false)方法,把自动提交(commit)置为false。打开事务就要关闭自动提交。不用事务是要把setAutoCommite(true)
  15. 在处理事务时,在发送sql语句后执行成功并确认时,就在try块中使用连接调用commit()方法来发送提交信息,在发送sql语句后执行失败时,会在catch语句块中使用连接调用rollback()方法来发送回滚信息,也可以在需要时做回滚操作(主观原因)。
  16.  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值