发表于: 2017-06-06 23:40:01
3 1122
今天完成的事情:学习数据库的连接
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
评论