DBUtils+dbcp连接池的使用
(原创)
作者: 朝如青丝暮成雪
发布时间:2018-10-18 12:45:32 文章分类:java编程 阅读(1030) 评论(0)
DBUtils+dbcp连接池的使用
1、lib中引入以下的依赖包
mysql-connector-java-5.1.40.jar
commons-dbutils-1.7.jar
commons-dbcp2-2.1.1.jar
commons-pool2-2.4.2.jar
commons-logging-1.2.jar
2、DbConfig 类
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;
public class DbConfig {
private static BasicDataSource basicDataSource;
static {
// DbUtils.loadDriver(JDBC_DRIVER);
InputStream in =null;
try {
in= DbConfig.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties prop =new Properties();
prop.load(in);
String username =prop.getProperty("jdbc.username");
String password =prop.getProperty("jdbc.password");
String url =prop.getProperty("jdbc.url");
String driverClassName =prop.getProperty("jdbc.driverClassName");
basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName(driverClassName);
basicDataSource.setUsername(username);
basicDataSource.setPassword(password);
basicDataSource.setUrl(url);
} catch (Exception e) {
e.printStackTrace();
}finally {
if(in!=null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static DataSource getDataSource() {
return basicDataSource;
}
}
3、jdbc.properties
jdbc.username=root
jdbc.password=123456
jdbc.url=jdbc:mysql://localhost:3306/t31_student?useUnicode=true&characterEncoding=UTF8&useSSL=false
jdbc.driverClassName=com.mysql.jdbc.Driver
4、业务代码中引入QueryRunner
public class StudentDao {
private QueryRunner queryRunner=new QueryRunner(DbConfig.getDataSource());
//...
}
5 、queryRunner中insert返回主键
/**
* 插入数据 返回自增主键
* @param student
* @return
*/
public int save(Student student) {
String sql ="INSERT INTO `t_student`(studentNo,`name`,sex,birthday,familyAddr,contactTel,createtime)" +
"VALUES(?,?,?,?,?,?,NOW())";
try {
Long id= queryRunner.insert(sql, new ScalarHandler<Long>(), student.getStudentNo(),student.getName(),
student.getSex(),student.getBirthday(),student.getFamilyAddr(),student.getContactTel());
return id.intValue();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}