DruidUtil.java包
可以自己新建一个类将下面的代码放在其中,命名为DruidUtil.java
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DruidUtil {
//连接池对象
private static DataSource dataSource = null;
static {
//1.实例化配置对象
Properties properties = new Properties();
//2.获取配置文件的输入流
InputStream inputStream = DruidUtil.class.getClassLoader().getResourceAsStream("druid.properties");
//3.加载
try {
properties.load(inputStream);
DruidUtil.dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接池对象
* @return
*/
public static DataSource getDataSource(){
return DruidUtil.dataSource;
}
/**
* 获取连接对象
* @return
*/
public static Connection getConnection(){
Connection connection = null;
try {
connection = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
/**
* 关闭结果集
* @param res
*/
public static void closeRes(ResultSet res){
try {
res.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭预处理对象
* @param stmt
*/
public static void closeStmt(PreparedStatement stmt){
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭连接资源
* @param connection
*/
public static void closeCon(Connection connection){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
案例核心代码
/*
*在某个类中的方法
*/
private QueryRunner runner = new QueryRunner(DruidUtil.getDataSource());
public List<Category> findAll(){//一个findAll方法,将返回一个以Category为对象的集合list
//1、准备sql语句
String sql = "select * from category order by category_id asc limit 10";
//2、执行sql
List<Category> list = null;
try{
list = runner.query(sql,new BeanListHandler<>(Category.class));//将查询到的结果,注意此时返回的是将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。意思就是如果你有多条数据就用BeanListHandler,如果你只有一条数据就用BeanHandler。后面的Category.class就是一个规范,某某类.class
}catch (SQLException e){
e.printStackTrace();
}
return list;
}