Java技术回顾之JDBC:基本用法

来源:互联网 发布:网络学堂代看代码 编辑:程序博客网 时间:2024/05/22 15:51

JDBC是Java平台规范的一部分,提供了一套标准的Java API,供Java程序访问不同的数据源。JDBC API主要由两个package组成:java.sql和javax.sql.

使用JDBC API访问数据库的一般流程:

1、建立数据库连接(Connection)。
主要有两种获取Connection的方式。一种方式是通过DataSource接口获取Connection,这种方式在服务器端开发中非常普遍。
在Java EE容器中配置一个DataSource,客户端通过JNDI API获取DataSource,然后获取Connection.
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/mydb");
Connection conn = ds.getConnection();

另外一种方式是通过DriverManager类获取Connecgtion,这是JDBC 1.0以来就提供的方式,可以用在一些没有容器环境的客户端应用中。
String connStr="jdbc:mysql://localhost:3306/mydb?user=.....";
Connection conn=DriverManager.getConnection(connStr);

2、使用Statement/PrepreStatement/CallableStatement接口执行SQL语句,使用ResultSet操作执行结果。
Statement用于执行普通的SQL语句,PrepareStatement用于执行预编译的SQL语句,CallableStatement用于执行SQL存储过程。
以上三类Statement均通过Connection获得:
Statement stmt=conn.createStatement();
String sqlStr="SELECT * FROM users";
ResultSet rs=smth.executeQuery(sqlStr);
while(rs.next()){
 String userId=rs.getInt("UserID");
 ....
}

3、依次关闭ResultSet/Statement/Connection等实例,释放相关资源。
调用ResultSet,Statement,Connection的close方法,均可能产生SQLException。为了有效释放,经常在一个try..catch..finally块的finally块中进行关闭操作和对SQLException进行处理。
在一个数据库连接池方式的DataSource实现中,关闭Connection并不是物理上关闭了数据库连接,而是将Connection返还给连接池。