sevice层和dao层的简单理解

来源:互联网 发布:vm虚拟机破解版 mac 编辑:程序博客网 时间:2024/05/29 14:16
    今天从自己的实际运用中谈谈对service和dao层的理解,希望各位神指点。
dao层式和service层在接口方面是一样的,两种层的理解与区别就在实现类中,1.dao层是直接与数据库联系,在实现中有具体的sql语句,执行和结果返回结果。抽象来说就是与数据库连接的逻辑层,即数据访问层。2.service层,从字面上来说是服务层,也就是业务层,业务在java开发中是很重要的,功能实现就是实现各个业务,在业务层中不需要直接连接数据库,可以直接调用其它封装的数据可连接的类,实现数据的增删改查,当然在sevice中也调用其它类,个人理解,业务层主要是调用其它方法,不需要具体实现,这也是MVC模式把一个应用分层很细的层,各司其职。sevice层是业务,当然加上事物操作就有利于实际开发了 ,我平时用的是spring的aop,下面是我的代码,帮助大家理解,也希望指点。
1.dao接口
public interface IAdminDao {
 /**
  * 申明方法实现类具体实现
  */
 public Admin login(Admin admin);}
1.1.dao接口实现类
public class AdminDaoImpl implements IAdminDao {
 private DBHelper db = new DBHelper();//自己写的DBHelper数据库操作的工具类
 //方法具体实现,包含有sql语句,执行和结果返回
 public Admin login(Admin admin) {
  String sql="select * from admin where aname=? and pwd=? and status!=0";
  List<Object> params=new ArrayList<Object>();
  params.add(admin.getAname());
  params.add(admin.getPwd());
  List<Admin> login=db.find(sql, params, Admin.class);//调用工具类执行获得值
  if(login!=null && login.size()>0){
   return login.get(0);
  }
  return null;
 }
}
2.service接口
public interface FilmService {
   //申明方法实现类具体实现
 public List<Filminfo> getFilmsByFilmBean(FilmBean filmBean) ;
}
2.1service接口实现
public class FilmServiceImpl implements FilmService {
 @Autowired//spring_ioc的自动注解方式,此处不重要
 private FilminfoMapper filminfoMapper; //运用mybatis数据库访问层的映射生成的访问数据库的类(dao层)

 @Override
 public List<Filminfo> getFilmsByFilmBean(FilmBean filmBean) {
  List<Filminfo>  ls=filminfoMapper.getFilmsByFilmBean(filmBean);//调用数据访问的类(dao层)实现具体的业务返回数据
  return ls;
 }
0 0
原创粉丝点击