package com.jxnu.dao;import java.io.Serializable;public interface DaoT {void add(T t);void update(T t);void delete(Serializable id);T findOne(Serializable id);} Serializable id参数使用了 多态思想 ,因为integer、String等等都实现了Serializab
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | package com.jxnu.dao;
import java.io.Serializable;
public interface Dao<T> {
void add(T t);
void update(T t);
void delete (Serializable id);
T findOne(Serializable id);
}
|
Nach dem Login kopieren
Serializable id参数使用了多态思想,因为integer、String等等都实现了Serializable接口,我们数据库存储的id类型是不定的。
1 2 3 4 5 6 7 8 9 10 | package com.jxnu.dao;
import java.util.List;
import com.itheima.domain.User;
public interface UserDao extends Dao<User> {
List<User> findAll();
}
|
Nach dem Login kopieren
1 2 3 4 5 6 7 8 9 | package com.jxnu.dao;
import java.util.List;
import com.itheima.domain.Customer;
public interface CustomerDao extends Dao<Customer> {
List<Customer> findRecords(int startIndex,int pageSize);
}
|
Nach dem Login kopieren
借助了hibernate中的一个jar包hibernate3.jar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | package com.jxnu.dao.impl;
import java.io.Serializable;
import org.hibernate.Session;
import com.itheima.dao.Dao;
public class BaseDao<T> implements Dao<T> {
private Session session = null;
private Class clazz;
public BaseDao(Class clazz)
{
this.clazz=clazz;
}
public void add(T t) {
session.save(t);
}
public void update(T t) {
session.update(t);
}
public void delete (Serializable id) {
}
public T findOne(Serializable id) {
return (T) session.get(clazz, id);
}
}
|
Nach dem Login kopieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.jxnu.dao.impl;
import java.util.List;
import com.itheima.dao.UserDao;
import com.itheima.domain.User;
public class UserDaoImpl extends BaseDao<User> implements UserDao {
public UserDaoImpl(){
super(User. class );
}
@Override
public List<User> findAll() {
return null;
}
}
|
Nach dem Login kopieren
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | package com.jxnu.dao.impl;
import java.util.List;
import com.itheima.dao.CustomerDao;
import com.itheima.domain.Customer;
public class CustomerDaoImpl extends BaseDao<Customer> implements CustomerDao {
public CustomerDaoImpl(){
super(Customer. class );
}
public List<Customer> findRecords(int startIndex, int pageSize) {
return null;
}
}
|
Nach dem Login kopieren
以上就是dao的模板,简化了很多代码,很精简,不是代码多就好,而是要好,要清晰。