c3p0数据库的配置文件是.xml类型的
//获得DataSource DataSource ds = new ComboPooledDataSource(); //可以使用指定名称配置 ComboPooledDataSource("otherc3p0"); //获取数据库连接 Connection conn = ds.getConnection();druid数据库连接池的配置文件是.properties类型的
//先获取druid的配置文件 Properties properties = new Properties(); ClassLoader classLoader = 类名.class.getClassLoader(); InputStream is = classLoader.getResourceAsStream("druid.properties"); properties.load(is); //可以用一句实现 //properties.load(类名.class.getClassLoader.getResourceAsStream("druid.properties")); //获取DataSource,使用DruidDataSourceFactory的createDataSource()方法获取DataSource对象 DataSource ds = DruidDataSourceFactory.createDataSource(properties); //获取连接 Connection conn = ds.getConnection();sql中的增删改操作: update()方法
template.update(sql,...args);template.update(sql);sql中的查询操作: query()方法
单条语句的查询 queryForMap()方法 Map<String,Object> map = template.queryForMap(sql,...args); 多条语句的查询 queryForList()方法将每一条记录封装为一个Map集合
//获取查询结果 List<Map<String,Object>> list = template.queryForList(sql,...args); //将查询结果进行遍历 for(Map<String,Object> map : list){ System.out.println(map); }//打印出每一条map的值 封装为JavaBean对象 query()方法 query(String sql,RowMapper rowMapper) //获取查询结果,使用自定义创建RowMapper对象,使用了自定义Stu类(x并没有任何的简化) List<Stu> list = template.query(sql2, new RowMapper<Stu>() { @Override public Stu mapRow(ResultSet rs, int i) throws SQLException { //创建对象 Stu stu = new Stu(); //获取值 String uid = rs.getString("uid"); String uname = rs.getString("uname"); String upassword = rs.getString("upassword"); //设置值 stu.setUid(uid); stu.setUname(uname); stu.setUpassword(upassword); return stu; } }); //2.使用已提供的实现类进行操作 Stu为自己定义的类 List<Stu> list = temp.query(sql3, new BeanPropertyRowMapper<Stu>(Stu.class)); //遍历集合 for (Stu stu : list) { System.out.println(stu); }Stu类的定义 (尽量使用包装类,防止因为null值报错!)
public class Stu { private String uid; private String uname; private String upassword; public Stu() { } public Stu(String uid, String uname, String upassword) { this.uid = uid; this.uname = uname; this.upassword = upassword; } public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpassword() { return upassword; } public void setUpassword(String upassword) { this.upassword = upassword; } @Override public String toString() { return "Stu{" + "uid='" + uid + '\'' + ", uname='" + uname + '\'' + ", upassword='" + upassword + '\'' + '}'; } } 封装为Object对象 queryForObject()方法一般用于执行聚合函数
template.queryForObject(sql,class) /* class用于解释接受的类型如: sql = "select count(*) from table"; template.queryForObject(sql,long.class); */