java 中dao 层怎么设计
展开全部
dao--Data Access Object是这个设计模式的核心部分, DataAccessObject为BusinessObject抽象了底层的数据访问实现的细节,使得访问数据变得透明. BusinessObject还将数据的装载和储存交给了DataAccessObject进行代理.
使用数据访问对象来抽象和封装对数据源的所有访问。数据访问对象负责管理与数据源的连接,来获取和储存其中的数据。 数据访问对象实现与数据源相关的访问机制。 数据源可以是关系型数据库管理系统,可以是像B2B EXCHANGE这样的内部服务,可以是LDAP库,或者也可以是通过CORBA IIOP 或者是低层sockets来访问的商业服务. 依赖于DAO的商业组件只对他的客户端暴露一些非常简单的DAO外部接口. DAO将数据源的实现细节对客户端完全的隐藏了起来. 因为,暴露给客户端的DAO接口在低层数据源的实现发生改变时并不会随着改变,所以这种设计模式使得DAO可以适应不同的数据储存方式类型而不影响客户端和商业组件.最主要的, DAO还在组件和数据源之间扮演着协调者的角色.
使用数据访问对象来抽象和封装对数据源的所有访问。数据访问对象负责管理与数据源的连接,来获取和储存其中的数据。 数据访问对象实现与数据源相关的访问机制。 数据源可以是关系型数据库管理系统,可以是像B2B EXCHANGE这样的内部服务,可以是LDAP库,或者也可以是通过CORBA IIOP 或者是低层sockets来访问的商业服务. 依赖于DAO的商业组件只对他的客户端暴露一些非常简单的DAO外部接口. DAO将数据源的实现细节对客户端完全的隐藏了起来. 因为,暴露给客户端的DAO接口在低层数据源的实现发生改变时并不会随着改变,所以这种设计模式使得DAO可以适应不同的数据储存方式类型而不影响客户端和商业组件.最主要的, DAO还在组件和数据源之间扮演着协调者的角色.
展开全部
最好设计为只完成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;
}
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DAO接口和DAOImpl实现类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//希望对你有参考作用
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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询