1. 获取到数据库连接后,我就开始对数据库进行操作
① 更新 (insert , update , delete)
② 查询 (select)(下章)
2. 在 JDBC 中执行 SQL 的对象 就是Statement
1). 通过 Connection 的 createStatement() 方法来获取.
2)
.
通过 executeUpdate(sql) 可以执行 SQL 语句.进行更新.
3). 通过 executeQuery(sql) 可以执行 SQL 语句,进行查询.(下章).
4). Connection、Statement 都是应用程序和数据库服务器的连接资源. 使用后一定要关闭.
5). 关闭有先后,为了防止出现异常无法关闭,所以将关闭操作放在 finally 中.
3. 首先测试更新方法
@Test
public void testStatement() throws Exception{
//1. 获取数据库连接
Connection conn = null;
Statement statement = null;
try {
// 我已将上一章中的获取数据库连接封装到 JDBCTools 类中
conn = JDBCTools.getConnection();
//3. 准备插入的 SQL 语句
String sql = null;
sql = "UPDATE car SET name = 'BMW' WHERE id = 4";
System.out.println(sql);
//4. 执行插入.
//1). 获取操作 SQL 语句的 Statement 对象:
//调用 Connection 的 createStatement() 方法来获取
statement = conn.createStatement();
//2). 调用 Statement 对象的 executeUpdate(sql) 执行 SQL 语句进行插入
statement.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
//5. 关闭 Statement 对象.
if(statement != null)
statement.close();
} catch (Exception e) {
e.printStackTrace();
} finally{
//2. 关闭连接
if(conn != null)
conn.close();
}
}
}
4. 和上一章一样,我们也可以写一个通用的 Update:
1). 看上面的代码,不论是对数据库中那张表还是对同张表执行不同的更新操作,发现每一个更新都和上面的代码几乎一样
2). 发现不一样的地方只有 SQL 语句,所以可以将SQL 作为一个参数传入
3). 还有可以对关闭数据资源进行封装
2). 发现不一样的地方只有 SQL 语句,所以可以将SQL 作为一个参数传入
3). 还有可以对关闭数据资源进行封装
public void update(String sql){
Connection conn = null;
Statement statement = null;
try {
conn = JDBCTools.getConnection();
statement = conn.createStatement();
statement.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally{
//关闭数据库资源
JDBCTools.release(statement, conn);
}
}
5. 在JDBCTools 中 关闭数据库资源的方法:
public static void release( Statement statement,Connection connection) {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}