dao与service中代码的区别,请大家注意是代码的区别,因为我现在看到的代码是dao中代码和service中代码是几乎一样,我想问问dao与service中代码是不是一般直接将dao中代码复制到service就可以了。谢谢!dao service
解决方案 »
- 在线等:myeclipse连接数据库sql server2000,在登录界面输入账号密码后控制台出现java.lang.NullPointerException
- 如何实现word文档下载(在线等)
- 项目突然出现很怪异的异常,希望大家进来看看!
- 有关struts中的提示功能
- Hibernate 如何处理带有投影和分组的结果集
- 明白webservice的大牛麻烦帮看下javax.xml.ws.WebServiceException:
- 代码改错,关键代码如下十几行,修改括号中的条件.
- 请问struts中的Action类中可以定义没有map、form、req、res四个参数的一般方法吗?
- 在sun one application server7里该把mssql的jdbc驱动jar文件拷到哪个目录!!!我已经往所以的lib目录都拷了一份了还是不行???
- 如何在.java文件中用request获得jsp页面中单选按钮传来的值?
- SSH整合问题
- 小弟求java读取tif图像文件问题,对高手来说很简单吧
service是处理业务逻辑的,如果业务不复杂,所以看起来没多大用,但是还是要遵循这种模式的开发。。
XXdao xx = new XXdaoimp();你的XXdaoimp类里有吗?能这样写吗 能一样吗
最主要的逻辑方面的都写在service里面。
如果你感觉两层代码写的都几乎一样的话,只能说明代码本身写的不规范。
serivce层只写逻辑判断的就好了
比如你有发表文章的功能, 在daoImpl 里面就是 xxxdaoImpl.addArticle(文章){添加文章到数据库代码}在serviceImpl里面就是 xxxserviceImpl.addArticle(文章){
验证用户登录, 验证用户是否有权限发表文章, 等等逻辑
然后再 掉xxxdaoImpl.addArticle(文章); 保存
保存完之后, 再其他逻辑, 比如,通知别人你发表了文章 等等. }
要考虑到可维护性,可拓展性!
一般dao是数据库访问层,和数据库直接打交道的。
service中引用dao,处理具体业务逻辑。
恩 说的很好 不过点成丢砖了 sorry
service是你的业务需求的代码实现,再service层的代码执行完之后有时候需要持久化数据或修改所以就要调用dao接口持久数据
public User load(String username) {
// TODO Auto-generated method stub
Connection con =null;
PreparedStatement ps=null; ResultSet rst=null;
User u=null;
try {
con=DbUtil.getCon();
String sql="select * from t_user where username=?";
ps=con.prepareStatement(sql);
ps.setString(1, username);
rst=ps.executeQuery();
while(rst.next()){
if(u==null) u=new User();
u.setName(rst.getString("username"));
u.setPassword(rst.getString("password"));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DbUtil.close(con);
DbUtil.close(ps);
DbUtil.close(rst);
}
return u;
}到了service就变成了
public User load(String username){
return userDao.load(username);
service是你的业务需求的代码实现,再service层的代码执行完之后有时候需要持久化数据或修改所以就要调用dao接口持久数据
service是服务的意思,主要是将数据提供给固定业务逻辑使用的代码如何理解一段代码放在哪个位置,不是说固定不变的,只能适合这个环境的。
dao只管处理数据库的逻辑,比如addObject,把一个对象写入库。
而sevice层和业务相关,比如addUser,把一个用户数据写入库。传参类型也是不一样的。这里传入的是业务对象User。
1、dao就是操作数据库,比如插入、删除等,很单一的功能;
2、service是针对某个业务
举例:有两张表,班级和学生,其中班级表中有该班学生人数的字段;如果新加一个学生,肯定是插入学生表后再修改班级表中的该班学生人数。
把这两个dao都放在一个servcie中并加事务,如果插入学生表时正常,修改班级人数时报异常了,那么插入学生表的记录会被回滚,保证一致性。如果是两个service中分别插入和修改,那么插入成功后,就算修改报异常事务也提交了,导致数据库不一致。小结:servcie对应一个操作,不一定是一个数据库操作。一般在servcie上加事务。
service里面写的是:把这条数据的状态改成‘1’
service封装业务逻辑对象。