数据库的几种连接池
java基础(数据库的几种连接池)
1 C3p0数据库连接池:
//C3p0也有C3p0-config.xml配置文件记录数据库信息
DataSource ds = new ComboPooledDataSource();
Connection conn = ds.getConnection();
2*Druid数据库连接池:
//druid.properties为配有数据库的信息
//定义配置文件
Properties pro = new Properties();
InputStream is = DruidDemo1.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
Connection conn = ds.getConnection();
***3***JdbcTemplate数据库连接池:
它是在druid的基础上的衍生。
//创建JDBCTemplate对象
Properties pro = new Properties();
InputStream is = DruidDemo1.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
JdbcTemplate template = new JdbcTemplate(ds);
JDBCTemplate对象创建好后可对应执行里面的增删改查
- int cnt = template.update(sql);//sql文无参
- int cnt = template.update(sql,“小米”,12500);//sql文里面 ?的赋值,按序依次
- Map<String ,Object> map =template.queryForMap(sql,1001); //查询某字段等于1001的记录,将其封装成map集合
- List<Map<String ,Object>> lt = template.queryForList(sql,1001,1020);//查询记录,将其封装成List集合
- RowMapper的一种
List<XXX> list = template.query(sql, new RowMapper<XXX>() {
@Override
public XXX mapRow(ResultSet rs, int i) throws SQLException {
XXX XXX = new XXX();
int id = rs.getInt("id");
String name = rs.getString("ename");
XXX.setId(id);
XXX.setEname(name);
return XXX;
}
});
- List list = template.query(sql, new BeanPropertyRowMapper(XXX.class));//查询记录,将其封装成JAVABEAN集合
- long cnt1 = template.queryForObject(sql,long.class);//查询总记录