Java-JDBC-工具类
首先导入需要加载的数据库驱动包
这里我使用mysql测试
我这里是根据: 一起喜羊羊的工具类所改
/*
*创建类jdbcUtil作为工具类
*/
public class jdbcUtil {
/*
* 静态块驱动加载 mysql驱动包
* */
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*
* 创建连接对象
*/
public static Connection getConnection() throws SQLException {
//stuDB数据库名
//useUnicode=true&characterEncoding=utf8设置编码格式
String url="jdbc:mysql://localhost:3306/stuDB?useUnicode=true&characterEncoding=utf8";
String user="root";
String password="123456";
//url 连接路径 user 连接名 password 连接密码
return DriverManager.getConnection(url, user, password);
}
/*
* 关闭增删改操作的连接对象
*/
public static void Close(Connection coon,PreparedStatement stmt) {
if (stmt!=null) {
try {
stmt.close();
coon.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/*
* 关闭读取连接对象
*/
public static void Close(Connection coon,PreparedStatement stmt,ResultSet rs) {
if (rs!=null) {
try {
rs.close();
stmt.close();
coon.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/*
* 增删改操作的方法
* String sql 执行增删改的SQL语句
* Object[] parems 操作参数
*/
public static int NonQuery(String sql,Object[] parems) {
Connection coon = null;
PreparedStatement stmt = null;
int rowCount = 0;
try {
coon = getConnection();
stmt = coon.prepareStatement(sql);
if (parems!=null&&parems.length>0) {
for (int i = 0; i < parems.length; i++) {
stmt.setObject(i+1, parems[i]);
}
}
rowCount = stmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
Close(coon,stmt);
}
return rowCount;
}
/*
* 泛型查询
* String sql 执行查询的SQL语句
* Object[] parems 操作参数
* RowsMapper<T> rm 自定义泛型类 字段读取接口 --获取实体类信息
*/
public static<T> ArrayList<T> GenericQeruy(String sql,Object[] parems,RowsMapper<T> rm){
Connection coon = null;
PreparedStatement stmt = null;
ResultSet rs = null;
ArrayList<T> list = new ArrayList<T>();
try {
coon = getConnection();
stmt = coon.prepareStatement(sql);
if (parems!=null&&parems.length>0) {
for (int i = 0; i < parems.length; i++) {
stmt.setObject(i+1, parems[i]);
}
}
rs = stmt.executeQuery();
while(rs.next()) {
T t = rm.getEntity(rs);
list.add(t);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
Close(coon, stmt, rs);
}
return list;
}
/*
定义泛型接口
public interface RowsMapper<T> {
public T getEntity(ResultSet rs) throws SQLException;
}
*/
}