1:获取数据库连接
Connection connection=getConnection();
2:准备SQL语句
3:调用Connection的creatStatement()方法获取Statement对象执行SQL语句
(注:Statement对象处理的SQL语句只能是INSERT,UPDATE或DELETE)
statement=connection.createStatement();
statement.execute(SQL);
statement.execute(SQL);
4:关闭Statement对象
5:关闭数据库连接
将数据库连接等操作进行封装:
附:JDBCTools.java
/**
* JDBC 的工具类
*
* 其中包含: 获取数据库连接, 关闭数据库资源等方法.
*/
public class JDBCTools {
//处理数据库事务的
//提交事务
public static void commit(Connection connection){
if(connection != null){
try {
connection.commit();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//回滚事务
public static void rollback(Connection connection){
if(connection != null){
try {
connection.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//开始事务
public static void beginTx(Connection connection){
if(connection != null){
try {
connection.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
private static DataSource dataSource = null;
//数据库连接池应只被初始化一次.
static{
dataSource = new ComboPooledDataSource("helloc3p0");
}
public static Connection getConnection() throws Exception {
return dataSource.getConnection();
}
public static void releaseDB(ResultSet resultSet, Statement statement,
Connection connection) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
//数据库连接池的 Connection 对象进行 close 时
//并不是真的进行关闭, 而是把该数据库连接会归还到数据库连接池中.
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
附:MySqlTools.java,对数据库进行操作
public static void update(String SQL){
Connection connection = null;
Statement statement=null;
try {
connection = JDBCTools.getConnection();
statement=connection.createStatement();
statement.execute(SQL);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseDB(null, null, connection);
}
}