一、什么是JDBC
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。(转自百度百科)
JDBC的主要功能是:
①. 建立与数据库或者其他数据源的连接;
②. 向数据库发送SQL指令;
③. 处理数据库的返回结果。
二、JDBC连接数据库的步骤
1、加载驱动
Driver接口装载驱动。
Class.forName("com.mysql.jdbc.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
2、建立连接
Connection接口与数据库建立连接(会话)
常用方法:
- createStatement():创建向数据库发送sql的statement对象。
- prepareStatement(sql) :创建向数据库发送预编译sql的PrepareSatement对象。
- prepareCall(sql):创建执行存储过程的callableStatement对象。
- setAutoCommit(boolean autoCommit):设置事务是否自动提交。
- commit() :在链接上提交事务。
- rollback() :在此链接上回滚事务。
DriverManager驱动程序管理类,作用于用户和驱动程序之间。跟踪在可用的驱动程序,并在数据库与相应驱动程序之间建立连接。
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", Username, PassWord);
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", Username, PassWord);
3、获取语句对象
三种Statement接口:
Statement、PreparedStatement、CallableStatement。
链接:http://blog.youkuaiyun.com/HeyFrank/article/details/79372386
Statement stmt = conn.createStatement();
PreparedStatement pstmt = conn.preparedStatement(sql)
CallableStatement cstmt = conn.prepareCall(“{call ...}”);
4、执行SQL指令返回结果集
①. 执行查询语句
ResultSet rs = stmt.executeQuery(sql);
ResultSet rs = pstmt.executeQuery();
②. 执行CUD操作
ResultSet rs = stmt.executeUpdate(sql);
ResultSet rs = pstmt.executeUpdate();
5、释放资源
由于数据库连接非常消耗资源,因此要尽量晚创建、早释放。
并且需要加上try catch以防先关闭的出错。
try{
if (rs != null) {
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}finally{
try {
if (st != null) {
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}