JDBC 笔记(2)

JDBC第二天
上午:
一.PreparedStatement(从Statement继承而来)
同构SQL:SQL语句基本一样,只是具体参数值不同.
异构SQL:SQL语句完全不一样.
Statement不足:
1.效率比较低;
2.对字段类型的支持比较差;
3.语法含义不清晰.(结构不清楚)


由于编译时不需要参数,PreparedStatement 可以使用"?"来替代sql语句中的某些参数,它先将不带参数的sql语句发送到数据库,进行预编译,然后PreparedStatement会再将设置好的参数发送给数据库。
在使用PreparedStatement设置相应参数时,要指明参数的位置和类型,以及给出参数的具体值
根据不同的参数类型使用不同的setXXX(参数的位置,参数值)来设置参数
如:
    String sql = "update XXX set x=? where XXX;"; //?代表占位符,在这里并没有设置具体值.
    PreparedStatement ps = con.prepraredStatement(SQL);//SQL语句已经送到数据库去编译了,即预编译
    ps.setXXX(参数的位置,参数值)//把参数值存放在PreparedStatment对象中.
    ps.executeUpdate();//由于已经预编译过,因此不需要再传入SQL语句,就可以直接执行
    
下午:
元数据:数据类型结构本身的信息,它就是存储用户数据的容器的数据结构。
JDBC中有两种元数据,一种是用户元数据,另一种是结果集元数据。


结果集元数据:
1.获得字段个数
2.获得字段名称
3.获得字段类型


如:
ResultSet rs=ps.executeQuery(sql);
ResultSetMetaData m=rs.getMetaData();
getColumnCount(),获得实际列数
getColumnName(int colnum),获得指定列的列名
getColumnType(int colnum),获得指定列的数据类型(Types里面的类型,存放的是整数)
getColumnTypeName(int colnum),获得指定列的数据类型名


持久化:
OID来唯一标识一个对象.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章