package com.lph.jdbcdemo.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
public class JDBCUtils {
private static final String className ="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/db_jdbcdemo?characterEncoding=utf-8";
private static final String user = "root";
private static final String password="root";
private PreparedStatement ps = null;
private Connection connection =null;
private ResultSet rs=null;
//打开数据库类
private void open() throws SQLException {
className.format(className);
connection = DriverManager.getConnection(url, user, password);
}
//查询操作
public ResultSet excuteQuery(String sql,List params) throws SQLException {
if(connection==null || connection.isClosed())//连接对象是空 或者已经打开了就重新开启
{
open();
}
ps=connection.prepareStatement(sql);
if(params!=null && params.size()>0) {
for(int i=0;i<params.size();i++) {
ps.setObject(i+1,params.get(i));
}
}
rs = ps.executeQuery();
return rs;
}
//更新新操作
public int excuteUpdate(String sql,List params) throws SQLException {
if(connection==null || connection.isClosed())//连接对象是空 或者已经打开了就重新开启
{
open();
}
ps=connection.prepareStatement(sql);
if(params!=null && params.size()>0) {
for(int i=0;i<params.size();i++) {
ps.setObject(i+1,params.get(i));
}
}
return ps.executeUpdate();
}
//关闭资源的方法
public void closeAll() {
try {
if(rs!=null&&!rs.isClosed()) {
rs.close();
}
if(ps!=null&&!ps.isClosed()) {
ps.close();
}
if(connection!=null&&!connection.isClosed()) {
connection.close();
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
测试类
package com.lph.jdbcdemo.test;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class JDBCUtilsTest {
public static void main(String[] args) {
JDBCUtils jdbcUtils = new JDBCUtils();
String sql ="select * from user where name=? and pass = ?";
List params = new ArrayList<>();
params.add("xixi");
params.add("345");
try {
ResultSet rs =jdbcUtils.excuteQuery(sql, params);
while(rs.next()) {
System.out.println(rs.getInt("id")+""+rs.getString("name")+" "+rs.getString("pass"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
jdbcUtils.closeAll();
}
}
}