注意
因为本人使用的是maven管理jar包依赖,所以就不演示添加jar包的环节,大家可以自行百度一下所需jar包,至于maven管理依赖我会在以后写一篇详解的。
引言
在之前的例子中我们不难看出如果在执行一条sql语句时需要不断重复预编译对象,执行语句,释放资源等操作,这时候我们需要把多余的操作抽取出来作为一个工具类单独存放在一个包里面,包名通常使用utils。这里以C3P0作为例子
创建工具类和所需的实体类包
/**
* 数据源的工具类
*/
public class C3P0Util {
/**
* 创建私有静态数据源成员变量
*/
private static ComboPooledDataSource ds = new ComboPooledDataSource();
/**
* 创建公有的得到数据源的方法
*
* @return
*/
public static DataSource getDataSource() {
return ds;
}
/**
* 创建得到连接对象的方法
*
* @return
*/
public static Connection getConnection() {
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 创建释放资源的方法
* @param conn
* @param stmt
* @param rs
*/
public static void close(Connection conn, Statement stmt, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void close(Connection conn, Statement stmt) {
close(conn, stmt, null);
}
public static void close() {
ds.close();
}
}
我们使用sql语句查到的数据需要封装到实体类中,然后再输出,实体类一般放在domain包中
public class Rider {
String username;
String ridername;
public Rider(String username, String ridername) {
this.username = username;
this.ridername = ridername;
}
public Rider() {
}
@Override
public String toString() {
return "Rider{" +
"username='" + username + '\'' +
", ridername='" + ridername + '\'' +
'}';
}
public String getusername() {
return username;
}
public void setusername(String username) {
this.username = username;
}
public String getridername() {
return ridername;
}
public void setridername(String ridername) {
this.ridername = ridername;
}
}
项目结构:
测试类:
代码:
public class Demo03 {
public static void main(String[] args) {
JdbcTemplate jdbcTemplate=new JdbcTemplate(C3P0Util.getDataSource());
String sql="select * from kamenrider";
List<Rider> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Rider.class));
System.out.println(query);
}
}
结果:
结语:
关于jdbc的操作大多都包含在这几篇文章里面了,也没有其他的可以过多阐述了,虽然后面使用mybatis框架后,这些都没有使用的必要了,但是只有掌握了基础原理,才能在开发中更得心应手。