摘要:Spring的JDBC支持,Spring提供了DAO框架,提供了对数据库存取时异常的封装,提供的JdbcTemplate类大大简化了JDBC在API上的操作等。
一个传统DAO的例子。
如,现在有一个数据库表user,该表有id,name,age三个字段。对该表抽象得出User对象,在进行数据库操作时(find,insert,update,delete)应用程序不应依赖于一个实际的类实现,而是可以让它依赖一个接口,在应用程序中通过对接口的声明来操作。
●
User.java
这是User对象
package com.kela.spring.jdbc;
public class User {
private Integer id;
private String name;
private Integer age;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
●
IUserDAO.java
这是IUserDAO接口,负责声明对User对象的操作。
package com.kela.spring.jdbc;
public interface IUserDAO {
public void insert(User user);
public User find(Integer id);
public void update(User user);
public void delete(User user);
}
●
UserDAO.java
具体的数据库存取类,实现了IUserDAO接口。
package com.kela.spring.jdbc;
public class UserDAO implements IUserDAO {
public void insert(User user) {
Connnection conn = null;
Statement stmt = null;
try {
//
执行数据库插入操作
} catch (SQLException e) {
//…
} finally{
//…
}
}
public User find(Integer id) {
//
查询
return user;
}
public void update(User user) {
//…
}
public void delete(User user) {
//…
}
}
●
Test.java
在应用程序中进行数据存取时,可以使用IUserDAO来声明接口,进行数据操作。
… …
User user = new User();
user.setId(new Integer(2));
user.setName(“kela”);
user.setAge(new Integer(28));
IUserDAO userDao = new UserDAO();
userDao.insert(user);
… …
●
学习小结
由于依赖于接口,所以可以随时替换IUserDAO的实现类,在IUserDAO接口声明的操作方法上并没有任何于底层数据库存取的技术细节,Spring的DAO框架这是基于这样的原理,将应用程序与底层存取技术隔离开来。