JDBC(二) 执行SQL 之Statement及通用更新方法

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). 还有可以对关闭数据资源进行封装
 
	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();
		}
	}
}




你可能感兴趣的:(JDBC)