• 项目思路过程


                      

       从左到右调用方法,从右往左通过返回值。

       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;
    }
    }
  • 相关阅读:
    Java学习之集合(HashSet)
    Java学习之集合(LinkedList链表集合)
    Java学习之集合(List接口)
    Java学习之集合(Collection接口)
    【Spring Session】和 Redis 结合实现 Session 共享
    【NodeJS】nvm
    【Html JS】使用问题记录
    【VUE】使用问题记录
    【RabbitMQ】显示耗时处理进度
    【CentOS7】开发环境配置
  • 原文地址:https://www.cnblogs.com/maxuefeng/p/13843315.html
Copyright © 2020-2023  润新知