java 中dao 层怎么设计

 我来答
要做坏孩子
2014-03-25 · TA获得超过335个赞
知道小有建树答主
回答量:182
采纳率:66%
帮助的人:79.5万
展开全部
dao--Data Access Object是这个设计模式的核心部分, DataAccessObject为BusinessObject抽象了底层的数据访问实现的细节,使得访问数据变得透明. BusinessObject还将数据的装载和储存交给了DataAccessObject进行代理.

使用数据访问对象来抽象和封装对数据源的所有访问。数据访问对象负责管理与数据源的连接,来获取和储存其中的数据。 数据访问对象实现与数据源相关的访问机制。 数据源可以是关系型数据库管理系统,可以是像B2B EXCHANGE这样的内部服务,可以是LDAP库,或者也可以是通过CORBA IIOP 或者是低层sockets来访问的商业服务. 依赖于DAO的商业组件只对他的客户端暴露一些非常简单的DAO外部接口. DAO将数据源的实现细节对客户端完全的隐藏了起来. 因为,暴露给客户端的DAO接口在低层数据源的实现发生改变时并不会随着改变,所以这种设计模式使得DAO可以适应不同的数据储存方式类型而不影响客户端和商业组件.最主要的, DAO还在组件和数据源之间扮演着协调者的角色.
百度网友8590d77
2014-03-25 · 超过17用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:48.4万
展开全部
最好设计为只完成bean相关的增删改差操作,不涉及业务逻辑。之后在service层完成业务逻辑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-12-07
展开全部
package dao;

import java.util.List;
import vo.*;

public interface IUsersDAO {
//按姓名查询
public List<Users> findUsersByName(String uname) throws Exception;
//查询所有用户
public List<Users> findAllUsers() throws Exception;
//按id查询
public Users findUsersById(int id)throws Exception;
//修改操作
public boolean UsersUpdate(Users usr)throws Exception;

//增加操作
//public boolean doInsert(Person per)throws Exception;
//修改操作
//public boolean doUpdate(Person per)throws Exception;
//删除操作
//public boolean doDelete(int id)throws Exception;
//按id查询
//public Person findById(int id)throws Exception;
//查询全部
//public List<Product> findAllProduct() throws Exception;
//模糊查询
//public List<Product> findByLike(String cond)throws Exception;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dy_bd1
2014-03-25 · TA获得超过243个赞
知道答主
回答量:195
采纳率:0%
帮助的人:91.6万
展开全部
DAO接口和DAOImpl实现类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐宝调皮萌萌哒
2017-12-06
知道答主
回答量:10
采纳率:0%
帮助的人:5.2万
展开全部
//希望对你有参考作用
public class Dao extends HttpServlet{
private static final long serialVersionUID = 1L;
public static Connection getconnectoin(){
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql:///shopping?useUnicode=true&characterEncoding=utf-8",
"root",
"123456");
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public void add(String ids){
String[] idss=ids.split(",");
try {
Connection conn= getconnectoin();
String sql = "insert into goo888 values(null,?)";
PreparedStatement ps = conn.prepareStatement(sql);
for (int i = 0; i < idss.length; i++) {
ps.setInt(1, Integer.parseInt(idss[i]));
ps.execute();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<Info> goolist(String name) {
Info info = null;
System.out.println("姓名:"+name);
List<Info> list = new ArrayList<Info>();
try {
Connection conn= getconnectoin();
String sql = "select b.id,a.name from wfp888 a join goo888 b on a.id=b.shop_id "
+ "where a.name like ? ";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "%"+name+"%");
ResultSet rs = ps.executeQuery();
while(rs.next()){
info = new Info();
info.setName(rs.getString("name"));
info.setId(rs.getInt("id"));
list.add(info);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public void delete(int id) {

try {
Connection conn= getconnectoin();
String sql = "delete from goo888 where id=? ";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ps.execute();
} catch (Exception e) {
e.printStackTrace();
}
}

public List<Info> findAllInfo() {
Info info = null;
List<Info> list = new ArrayList<Info>();
try {
Connection conn= getconnectoin();
String sql = "select * from wfp888 ";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()){
info = new Info();
info.setId(rs.getInt("id"));
info.setCode(rs.getString("code"));
info.setName(rs.getString("name"));
list.add(info);
}
} catch (Exception e) {
e.printStackTrace();
}

return list;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式