1、JDBC的常用类
类 名 | 说 明 |
DriverManager | 管理JDBC驱动的类。取得Connection的时候用。 |
Connection | 连接DB的接口。 |
Statement | 执行SQL的接口。 |
ResultSet | 存放检索结果的类。 |
2、JDBC程序的处理流程
1)用Class.forName函数装载JDBC驱动;
2)通过DriverManager.getConnection取得Connection对象;
3)通过Connection.createStatement取得Statement对象;
4)数据库操作:
更新:Statement.executeUpdate (insert、update、delete)
查询:Statement.executeQuery
3、从ResultSet取出所需数据
按照所取数据的数据类型调用合适的接口:
ResultSet.getInt(“列名”) 或者 ResultSet.getInt(列数)
ResultSet.getString(“列名”)
等等
4、Statement和ResultSet是一对一的关系。如果需要多个ResultSet那么就需要多个Statement。
5、Statement和Connection最好放到finally里释放掉。
6、数据同步
复数个用户同时访问相同记录的时候,需要考虑给DB加锁处理。具体锁机制各个DB不同。下面好象同时适合oracle、MySql、PostgreSql
Select xxx From table where 条件 for update
7、PreparedStatement对Java app会带来性能的提升,但对Web App却未必有效。
因为PreparedStatement是利用Cashe提升性能的,但Web是每个Request都有自己的Connection。
8、JDBC在桌面App和Web App上的不同
1)Web app是一个Request一个Connetion。而数据库允许的最大Connection数是有限的。
(20~30个而已)
2)如何把数据检索结果从サーブレット传到JSP是个课题。一般是把ResultSet的数据转移到JavaBeans里来解决。就是所谓的O/R映射,O/R映射的代表是Hibernate。
当然,利用RowSet也是一个办法。(RowSet有insertRow、updateRow比较方便)
9、DAO 和 DTO
DAO是,实现DB访问功能的类。
DTO是,容纳DB数据的类。
一般,DTO是DAO功能接口的参数或返回值。