摘要:Spring的JDBC支持,Spring提供了DAO框架,提供了對數(shù)據(jù)庫存取時(shí)異常的封裝,提供的JdbcTemplate類大大簡化了JDBC在API上的操作等。
?
一個(gè)傳統(tǒng)DAO的例子。
如,現(xiàn)在有一個(gè)數(shù)據(jù)庫表user,該表有id,name,age三個(gè)字段。對該表抽象得出User對象,在進(jìn)行數(shù)據(jù)庫操作時(shí)(find,insert,update,delete)應(yīng)用程序不應(yīng)依賴于一個(gè)實(shí)際的類實(shí)現(xiàn),而是可以讓它依賴一個(gè)接口,在應(yīng)用程序中通過對接口的聲明來操作。
?
●????
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接口,負(fù)責(zé)聲明對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
?
具體的數(shù)據(jù)庫存取類,實(shí)現(xiàn)了IUserDAO接口。
?
package com.kela.spring.jdbc;
?
public class UserDAO implements IUserDAO {
public void insert(User user) {
??? Connnection conn = null;
??? Statement stmt = null;
??? try {
??????? //
執(zhí)行數(shù)據(jù)庫插入操作
??? } catch (SQLException e) {
???
??? //…
??? } finally{
??????? //…
}
}
??? public User find(Integer id) {
??????? //
查詢
??????? return user;
}
public void update(User user) {
??? //…
}
public void delete(User user) {
??? //…
}
}
?
●????
Test.java
?
在應(yīng)用程序中進(jìn)行數(shù)據(jù)存取時(shí),可以使用IUserDAO來聲明接口,進(jìn)行數(shù)據(jù)操作。
… …
User user = new User();
user.setId(new Integer(2));
user.setName(“kela”);
user.setAge(new Integer(28));
?
IUserDAO userDao = new UserDAO();
userDao.insert(user);
?
… …
●????
學(xué)習(xí)小結(jié)
?
由于依賴于接口,所以可以隨時(shí)替換IUserDAO的實(shí)現(xiàn)類,在IUserDAO接口聲明的操作方法上并沒有任何于底層數(shù)據(jù)庫存取的技術(shù)細(xì)節(jié),Spring的DAO框架這是基于這樣的原理,將應(yīng)用程序與底層存取技術(shù)隔離開來。
?