通过Apache 提供的dbUtil工具类,在手动封装一下它的方法,以便更简单的使用
dbUtils是java编程中的数据库操作实用工具,小巧简单实用,封装了对JDBC的操作,简化了JDBC,可以少写代码
使用Druid连接池操作
1.首先导入druid-1.1.10.jar 和commons-dbutils-1.4.jar
2.定义配置文件信息jdbc.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/student
###Druid连接数据库乱码时在数据库名后面加上useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
username=root
password=root
3.创建Druid连接池工具类
import com.alibaba.druid.pool.DruidDataSourceFactory;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* @description: Druid工具类
* @author: java小小白
* @create: 2021-02-23 17:33
**/
public class DruidUtil {
static Properties prop = new Properties();
//获取连接
public static Connection getConnection(){
Connection conn = null;
try {
//通过本类的反射机制再到jdbc.properties文件
InputStream in = DruidUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
//加载文件
prop.load(in);
try {
//获取连接
conn = DruidDataSourceFactory.createDataSource(prop).getConnection();
} catch (Exception e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
return conn;
}
}
4.创建dbUtil数据库操作工具类
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
/**
* @program: middle_java11
* @description: 数据库操作工具类
* @author:
* @create: 2021-02-24 13:55
**/
public class Dbutil {
//核心类
static QueryRunner qr = new QueryRunner();
static Connection conn = DruidUtil.getConnection();
/**
* 增删改数据库
* @param sql 传入sql语句
* @param params 将多个参数变成数组传入
* @return
*/
public static int update(String sql,Object[] params){
int i = 0;
try {
i = qr.update(conn,sql,params);
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
/**
* 查询全部数据
* @param sql 传入sql语句
* @param c 传入bean.class
*/
public static <T> List<T> selectList(String sql, Class<T> c){
try {
return qr.query(conn, sql, new BeanListHandler<>(c));
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 根据条件查询数据
* @param sql 传入sql语句
* @param c 传入bean.class
* @param params 传入所需要的查询条件
* @param <T>
* @return
*/
public static <T> List<T> selectList(String sql,Class<T> c,Object... params){
try {
return qr.query(conn, sql, new BeanListHandler<>(c),params);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 查询数据库里的总数据有多少条
* @param sql
* @return
*/
public static Integer selectWhere(String sql){
Integer i = 0;
try {
Object o = qr.query(conn,sql,new ScalarHandler());
i = Integer.parseInt(o.toString());
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
}
操作到这一步,就可以创建测试类进行测试了,有更好的方法…请留言区提点~~三克油