从左到右调用方法,从右往左通过返回值。
view层作用: 视图层,即项目中的界面
controller层作用: 控制层, 获取界面上的数据,为界面设置数据; 将要实现的功能交给业务层处理,接收数据,封装属性。
service层作用: 业务层, 功能的实现, 与controller控制层和数据访问层DAO交互, 将对数据库的操作交给DAO数据访问层来处理
dao层作用: 数据访问层, 用来操作数据库表的数据
db数据库: 这里指MySQL
domain 实体包: 存放JavaBean
tools工具包:存放项目中使用到的工具类
test 测试包: 存放项目功能测试的代码
首先需要导入7个包:
com.oracle.view 有几个表格需要创建几个类,类名用表格明+View命明
包下的代码:
public class MainView { //主页面 public void MainPage(){ System.out.println("-----欢迎进入XXX系统------"); System.out.println("1:注册"); System.out.println("2:登录"); System.out.println("3:退出"); System.out.println("请输入您的选择:"); } //主菜单 public void MainView(){ Scanner sc=new Scanner(System.in); while(true){ //调用主页面 MainPage(); //让用户输入选择 int choose=sc.nextInt(); switch(choose){ case 1://注册 break; case 2://登录 new SortView().view();; break; case 3: return; default: System.out.println("你的输入有误,请重新输入"); break; } } } } 主页面视图 public class SortView { //管理页面 private SortController sortController=new SortController(); public void sortMain(){ System.out.println("----分类管理"); System.out.println("1:新增分类"); System.out.println("2:修改分类"); System.out.println("3:删除分类"); System.out.println("4:查询所有分类"); System.out.println("5:返回上一级"); System.out.println("请输入你的选择"); } //管理菜单 public void view(){ Scanner sc=new Scanner(System.in); while(true){ sortMain(); int choose=sc.nextInt(); switch(choose){ case 1://新增方法 add(); break; case 2://修改方法 update(); break; case 3://删除方法 delete(); break; case 4://查询所有方法 get(); break; case 5://返回上一级 return; default: System.out.println("您的输入有误,请重新输入"); break; } } public void add(){
System.out.println("---新增分类----");
Scanner sc=new Scanner(System.in);
System.out.println("请输入分类名称");
String sname=sc.next();
System.out.println("请输入分类描述:");
String sdesc=sc.next();
//调用Controller层的新增分类方法
int row=sortController.add(sname,sdesc);
if(row>0){
System.out.println("新增成功");
}else{
System.out.println("新增失败");
}
}
//修改分类
public void update(){
Scanner sc=new Scanner(System.in);
System.out.println("---修改分类页面---");
System.out.println("请输入您要修改的商品编号");
int sid=sc.nextInt();
System.out.println("请输入您要修改的分类名称");
String sname=sc.next();
System.out.println("请输入您要修改的分类描述");
String sdesc=sc.next();
int row=sortController.update(sid, sname, sdesc);
if(row>0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
}
//删除分类
public void delete(){
Scanner sc=new Scanner(System.in);
System.out.println("---删除分类页面---");
System.out.println("请输入删除编号");
int sid=sc.nextInt();
//调用Controller层的删除方法
int row=sortController.delete(sid);
if(row>0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
}
//查询所有分类
public void get(){
//获取所有分类集合
List<Sort> list=sortController.get();
System.out.println("---查询所有分类---");
System.out.println("分类编号 分类名称 发类描述");
for(Sort sort:list){
System.out.println(sort.getSid()+" "+sort.getSname()+" "+sort.getSdesc());
}
} public class UserView { }
第二个包:
com.oracle.controller
1:获取注册用户的信息封装成User对象
2:调用用户注册的功能
3:获取注册结果
4:根据注册结果,给用户提示是否注册成功
包下代码:
public class SortController { //新增分类的方法 private SortService sortService=new SortService(); public int add(String sname,String sdesc){ return sortService.add(sname,sdesc); } //修改分类 public int update(int sid,String sname,String sdesc){ //将前台数据封装到Sort对象中 Sort sort=new Sort(); sort.setSid(sid); sort.setSname(sname); sort.setSdesc(sdesc); return sortService.update(sort); } //删除分类 public int delete(int sid){ return sortService.delete(sid); } //查询所有分类 public List<Sort> get(){ return sortService.get(); } } }
第三个包:
com.oracle.service
1:获取已存在的所有用户
2:通过遍历得到每一个用户信息,然后与新用户进行比较
3:结果:用户存在,不注册,用户不存在,注册新用户
包下代码:
//业务逻辑处理,解决异常
public class SortService { private SortDao sortDao=new SortDao(); //新增分类 public int add(String sname,String sdesc){ int row=0; try { row=sortDao.add(sname, sdesc); } catch (SQLException e) { e.printStackTrace(); } return row; } //修改分类 public int update(Sort sort){ int row=0; try { row=sortDao.update(sort); } catch (SQLException e) { e.printStackTrace(); } return row; } //删除分类 public int delete(int sid){ int row=0; try { row=sortDao.delete(sid); } catch (SQLException e) { e.printStackTrace(); } return row; } public List<Sort> get(){ List<Sort> list=null; try { list=sortDao.get(); } catch (SQLException e) { e.printStackTrace(); } return list; } }
第四个包:
com.oracle.dao
数据层访问
1:查询用户信息方法
2:添加用户方法
包下代码:
//负责连接数据库,进行增删改查 public class SortDao { //新增分类 public int add(String sname,String sdesc) throws SQLException{ //1:获取连接对象 Connection conn=JDBCUtils.getConn(); //2:获取语句执行对象 String sql="insert into sort(sname,sdesc) values(?,?)"; PreparedStatement pst=conn.prepareStatement(sql); //执行sql语句 pst.setString(1,sname); pst.setString(2,sdesc); int row=pst.executeUpdate(); JDBCUtils.close(conn, pst); return row; }
//修改分类 public int update(Sort sort) throws SQLException{ Connection conn=JDBCUtils.getConn(); String sql="update sort set sname=?,sdesc=? where sid=?"; PreparedStatement pst=conn.prepareStatement(sql); pst.setString(1,sort.getSname()); pst.setString(2,sort.getSdesc()); pst.setInt(3, sort.getSid()); int row =pst.executeUpdate(); JDBCUtils.close(conn, pst); return row; } //删除分类 public int delete(int sid) throws SQLException{ Connection conn=JDBCUtils.getConn(); String sql="delete from sort where sid=?"; PreparedStatement pst=conn.prepareStatement(sql); pst.setInt(1, sid); int row=pst.executeUpdate(); JDBCUtils.close(conn, pst); return row; } //查询所有分类 public List<Sort> get() throws SQLException{ Connection conn=JDBCUtils.getConn(); String sql="select * from sort"; PreparedStatement pst=conn.prepareStatement(sql); ResultSet rs=pst.executeQuery(); List<Sort> list=new ArrayList<Sort>(); while(rs.next()){ Sort sort=new Sort(); sort.setSid(rs.getInt("sid")); sort.setSname(rs.getString("sname")); sort.setSdesc(rs.getString("sdesc")); list.add(sort); } JDBCUtils.close(conn, pst, rs); return list; } }
第五个包:
com.oracle.tools
包下代码:
。。。
第六个包:
com.oracle.test
包下代码:
public class Demo { public static void main(String[] args) { new MainView().MainView(); } }
第七个包:
com.oracle.domain
包下代码:
public class Sort { private int sid; private String sname; private String sdesc; public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSdesc() { return sdesc; } public void setSdesc(String sdesc) { this.sdesc = sdesc; } @Override public String toString() { return "Sort [sid=" + sid + ", sname=" + sname + ", sdesc=" + sdesc + "]"; } }
登录功能:
public class UserView { //登录功能 private UserController userController=new UserController(); public void login(){ Scanner sc=new Scanner(System.in); System.out.println("---登录页面----"); System.out.println("请输入用户名"); String uname=sc.next(); System.out.println("请输入密码:"); String pwd=sc.next(); //调用Controller层的方法 int count=userController.login(uname, pwd); if(count>0){ new SortView().view(); }else{ System.out.println("用户名或密码错误"); } } }
public class UserController { //登录功能 private UserService userService=new UserService(); public int login(String uname,String pwd){ //参数进行封装 User user=new User(); user.setUname(uname); user.setPwd(pwd); return userService.login(user); } }
public class UserService { private UserDao userDao=new UserDao(); //登录功能 public int login(User user){ int count=0; try { count=userDao.login(user); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return count; } }
public class User { private int uid; private String uname; private String pwd; public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User [uid=" + uid + ", uname=" + uname + ", pwd=" + pwd + "]"; } }
public class UserDao { //登录功能 public int login(User user) throws SQLException{ Connection conn=JDBCUtils.getConn(); String sql="select count(*) from user where uname=? and pwd=?"; PreparedStatement pst=conn.prepareStatement(sql); pst.setString(1,user.getUname()); pst.setString(2, user.getPwd()); ResultSet rs=pst.executeQuery(); int count=0; while(rs.next()){ count=rs.getInt(1); } JDBCUtils.close(conn, pst,rs); return count; } }