Dao设计模式: pojo(领域对象层):由普通的Java对象组成; dao(数据访问层):dao层实现了对数据库的增、删、改、查等原子操作; 业务逻辑层:此层由一系列的业务对象组成,实现了所需要的业务逻辑方法。依赖Dao层实现业务逻辑方法 控制器层:用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用于请求,并根据处理结果转发到不同的表现层组件 表现层:负责收集 用户请求,并显示处理结果
Dao接口:定义表的“增、删、改、查”方法名 Dao接口的实现类:对应接口的实现类,对应JDBC的实现 Service接口:接口,实现业务逻辑,定义实现系统功能的方法名 Service实现类:对应接口的实现类,调用Dao中的方法,外加某些业务逻辑判断 Model:对应数据库表的实体类(属性与表中的字段对应) 表中的列名 必须 和 类的属性名 保持一致
实体类:(pojo层代码)
package com.iflysse.ceshi.pojo; public class Users { private int id; private String name; private String account; private String psw; private int money; public Users(){} public Users(int id, String name, String account, String psw, int money) { super(); this.id = id; this.name = name; this.account = account; this.psw = psw; this.money = money; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPsw() { return psw; } public void setPsw(String psw) { this.psw = psw; } public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } }Dao层接口代码:
package com.iflysse.ceshi.dao; import java.util.List; import com.iflysse.ceshi.pojo.Users; public interface UsersDao { //注册 向数据库添加一条对象 public void addUsers(Users u); //登陆 根据账户和密码 查询一天信息 封装成一个对象 public Users login(String account,String psw); //查询所有 返回一个list集合 public List<Users> getAllUsers(); }Dao接口实现类的代码:
package com.iflysee.ceshi.dao.impl; import jdbc_util.*; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.iflysse.ceshi.dao.UsersDao; import com.iflysse.ceshi.pojo.Users; public class UsersDaoImpl implements UsersDao{ private Connection conn = null; private PreparedStatement ps = null; private ResultSet rs = null; @Override public void addUsers(Users u) { // TODO Auto-generated method stub try { String sql = "insert into userinfo values(null,?,?,?,?)"; conn = JdbcUtil01.getConnection(); ps = conn.prepareStatement(sql); ps.setString(1, u.getName()); ps.setString(2, u.getAccount()); ps.setString(3, u.getPsw()); ps.setInt(4, u.getMoney()); ps.executeUpdate(); JdbcUtil01.close(conn, ps, rs); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public Users login(String account, String psw) { // TODO Auto-generated method stub Users u = null; try { String sql = "select * from userinfo where account = ? and psw = ?"; conn = JdbcUtil01.getConnection(); ps = conn.prepareStatement(sql); ps.setString(1, account); ps.setString(2, psw); rs = ps.executeQuery(); //将结果集封装成一个对象 while(rs.next()){ u = new Users(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } JdbcUtil01.close(conn, ps, rs); return u; } @Override public List<Users> getAllUsers() { // TODO Auto-generated method stub List<Users> lst = new ArrayList<Users>(); try { String sql = "select * from userinfo"; conn = JdbcUtil01.getConnection(); ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()){ Users u = new Users(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getInt(5)); lst.add(u); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } JdbcUtil01.close(conn, ps, rs); return lst; } }Service层接口代码:
package com.iflysse.ceshi.service; import java.util.List; import com.iflysse.ceshi.pojo.Users; public interface UsersService { //注册 向数据库添加一条对象 public void addUsers(Users u); //登陆 根据账户和密码 查询一天信息 封装成一个对象 public Users login(String account,String psw); //查询所有 返回一个list集合 public List<Users> getAllUsers(); }Service层接口实现类的代码:
package com.iflysse.ceshi.service.impl; import java.util.List; import com.iflysee.ceshi.dao.impl.UsersDaoImpl; import com.iflysse.ceshi.dao.UsersDao; import com.iflysse.ceshi.pojo.Users; import com.iflysse.ceshi.service.UsersService; public class UsersServiceImpl implements UsersService{ UsersDao ud = new UsersDaoImpl(); @Override public void addUsers(Users u) { // TODO Auto-generated method stub ud.addUsers(u); } @Override public Users login(String account, String psw) { // TODO Auto-generated method stub return ud.login(account, psw); } @Override public List<Users> getAllUsers() { // TODO Auto-generated method stub return ud.getAllUsers(); } }测试类代码:
package com.iflysse.ceshi.test; import java.util.List; import com.iflysse.ceshi.pojo.Users; import com.iflysse.ceshi.service.UsersService; import com.iflysse.ceshi.service.impl.UsersServiceImpl; public class TestMain { @SuppressWarnings("unused") public static void main(String[] args) { Users u = new Users(0, "小花", "621", "456", 3); UsersService us = new UsersServiceImpl(); //us.addUsers(u); Users u1 = us.login("6222", "123"); System.out.println(u1.getName()); List<Users> lst = us.getAllUsers(); for(Users ele:lst){ System.out.println(ele.getName()+" 的账户余额为: "+ele.getMoney()); } } }所应用的数据库为: