这是一个方便使用jdbc的工具类,使用的时候只需要把这个包导入你要调用sql语句的地方,然后根据需求来选择调用哪一个方法,然后根据返回值选择用什么接收。
package com.utils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.rowset.CachedRowSet;
import javax.sql.rowset.RowSetProvider;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class BaseDao {
private static final ComboPooledDataSource dataSource = new ComboPooledDataSource();
/**
* 封装连接
*/
public Connection getConnection() throws SQLException {
Connection connection = dataSource.getConnection();
return connection;
}
/**
* 发送insert delete update 的sql命令 获取执行结果
* update student set stuname = ? where stuid = ?
* delete from student where stuid = ?
*/
public int executeUpdate(String sql,Object ...args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
connection = getConnection();
preparedStatement = connection.prepareStatement(sql);
if(args!=null) {
for(int i=0;i<args.length;i++) {
preparedStatement.setObject(i+1, args[i]);
}
}
int rows = preparedStatement.executeUpdate();
return rows;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}finally {
try {
if(preparedStatement!=null) {
preparedStatement.close();
}
if(connection!=null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
/**
* 执行select sql 命令的方法
*/
public ResultSet executeQuery(String sql,Object ...args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = getConnection();
preparedStatement = connection.prepareStatement(sql);
if(args!=null) {
for(int i=0;i<args.length;i++) {
preparedStatement.setObject(i+1, args[i]);
}
}
resultSet = preparedStatement.executeQuery();
CachedRowSet cachedRowSet=RowSetProvider.newFactory().createCachedRowSet();
cachedRowSet.populate(resultSet);
return cachedRowSet;
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}finally {
try {
if(resultSet!=null) {
resultSet.close();
}
if(preparedStatement!=null) {
preparedStatement.close();
}
if(connection!=null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}
}