发表于: 2017-06-06 23:40:01

3 1121


今天完成的事情:学习数据库的连接

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

对比一下jdbc 和 jdbcTemplate以及JdbcDaoSupport的差别

private DataSource dataSource;

public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}

public void insert(Customer customer){

String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
Connection conn = null;

try {
conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, customer.getCustId());
ps.setString(2, customer.getName());
ps.setInt(3, customer.getAge());
ps.executeUpdate();
ps.close();

} catch (SQLException e) {
throw new RuntimeException(e);

} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {}
}
}
}

使用JdbcTemplate,不必再大量输入冗余代码,JdbcTemplate将自动处理它。

private DataSource dataSource;
private JdbcTemplate jdbcTemplate;

public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}

public void insert(Customer customer){

String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";

jdbcTemplate = new JdbcTemplate(dataSource);

jdbcTemplate.update(sql, new Object[] { customer.getCustId(),
customer.getName(),customer.getAge()
});

}

通过扩展JdbcDaoSupport,设置数据源并且不再需要JdbcTemplate类,只需将正确的数据源注入到JdbcCustomerDAO中即可。可以使用getJdbcTemplate()方法获取JdbcTemplate。

public class JdbcCustomerDAO extends JdbcDaoSupport implements CustomerDAO
{
//no need to set datasource here
   public void insert(Customer customer){

String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";

getJdbcTemplate().update(sql, new Object[] { customer.getCustId(),
customer.getName(),customer.getAge()
});

}

三者差距一目了然,目前推荐使用jdbcTemplate和jdbcDaoSupport

明天计划的事情:完成JdbcTemplate编译,学习mybatis

遇到的问题:今天白天效率低下,来不及完成任务的JdbcTemplate的编译,引以为戒

收获:了解了jdbc和jdbcTemplate以及JdbcDaoSupport


返回列表 返回列表
评论

    分享到