Java学习笔记之JDBC

JDBC的一般流程:

1、加载数据库驱动类:Class.forName(driverclass),其中driverclass为驱动类,如"com.mysql.jdbc.Driver"。

2、通过DriverManager获取数据库连接:

Collection conn = DriverManager.getConnection(String url,String user,String passwd),参数分别为数据库地址(有格式),用户名和密码。

3、通过Connection创建Statement对象,有以下三个方法:

a. createStatement():创建基本的Statement对象;跳到第四步。

b. prepareStatement(String sql):创建预编译的Statement对象;跳到第八步。

c. prepareCall(String sql):存储过程,这里不讲理。

4、Statement stmt = conn.createStatement();

5、用Statement执行sql语句,常用:

a. executeUpdate(String sql);涉及增删改的sql,返回受影响行数

b. executeQuery(String sql);涉及查询的sql,返回结果集ResultSet对象。

6、管理结果集:

a. next(),previous(),first(),last(),absolute()等方法移动记录指针;

b. getXxx获取记录指针指向行、特定列的值。

常用的遍历方法:

while(rs.next()){

System.out.println(rs.getInt(1) + "\t" + rs.getString(2));

}

7、回收数据库资源,在Java 7中能用try来关闭数据库资源,所用对象都继承了AutoCloseable接口。

8、如果用的预编译,则:PreparedStatement pstmt = conn.prepareStatement(String sql);

注意,在sql参数中,注意将不确定的值设为?。

9、创建了预编译对象后,用setXxx配合exec等方法操作。


使用预编译SQL语句有如下好处:

1、预编译SQL,性能更好;

2、无需拼接SQL语句,编程简单;

3、防止SQL注入,安全性更好。

因此,通常更推荐用预编译方法。


补充:管理结果集——可滚动/可更新

可以在声明PreparedStatement对象时传入可滚动和可更新参数(略),这样就可以用UpdateXxx修改记录指针所指记录、特定列的值,最后调用UpdateRow()方法提交修改。


补充:事务支持

由Connection提供,默认是自动提交,即关闭事务。若要开启事务支持,在生成Connection对象和Statement对象之间,加上:conn.setAutoCommit(false)关闭自动提交,开启事务支持。

执行完多条sql后,再来一句:conn.commit()提交事务即可。


补充:数据库连接池的概念

在应用中,数据库连接经常开启和关闭,这是非常耗费系统资源的,对系统性能有很大影响。于是提出连接池的解决方案:每次请求数据库连接时无需重新打开连接,而是从连接池中取出已有的连接使用,用完后不再关闭数据库连接,而是直接将连接归还给连接池。通过连接池的统一管理,大大提高系统运行效率。常用参数:

数据库初始连接数;

连接池最大连接数;

连接池最小连接数;

连接池每次增加的容量等等……

实际使用中,连接池是一种工具类,常用的开源数据源(DataSource,即连接池)有DBCP和C3P0。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值