分包

个人理解:

  项目分层分包适合多人开发合作的,最好一个界面设置一个view,同时注释一定设置好,按照顺序:从前向后进行传递参数,从后向前进行传递返回值来进行判断是否真正的执行了sql语句(可以不返回),异常是在Service层处理,若是处理多个sql语句则也在Service层进行整合处理到一起。

 

 

 

 

view层作用: 视图层,即项目中的界面

controller层作用: 控制层, 获取界面上的数据,为界面设置数据; 将要实现的功能交给业务层处理

service层作用: 业务层, 功能的实现, 与controller控制层和数据访问层DAO交互, 将对数据库的操作交给DAO数据访问层来处理(java逻辑)

dao层作用: 数据访问层, 用来操作数据库表的数据

db数据库: 这里指MySQL

domain 实体包: 存放JavaBean

tools工具包:存放项目中使用到的工具类

test 测试包: 存放项目功能测试的代码

 

经验:

1.类的封装是在controller封装

2.在dao里要想得到表中的数据,就在类里封装数据,并get,set。toString

3在判断 不同身份人的登入时,用equsls方法比较

4.错误类型:异常处理,后边处理后,前边就不用处理了

5.用传入的数据作为查询条件时 可在Service层返回接一下,并在本层进行获得并返回

建表是要注意事项

 

 

view层:

 

复制代码
package com.oracle.view;

import java.util.ArrayList;
import java.util.Scanner; import com.oracle.controller.GoodsController; import com.oracle.controller.UserController; import com.oracle.domain.Goods; public class MainView { private GoodsController goodsController=new GoodsController(); private UserController userController=new UserController(); //一级菜单 public void firstshow(){ System.out.println("========欢迎光临超市========"); System.out.println("1.用户注册"); System.out.println("2.用户登录"); System.out.println("3.退出"); System.out.println("请输入您的选择:"); } //一级菜单功能 public void show1(){ while(true){ firstshow(); Scanner sc=new Scanner(System.in); int choose=sc.nextInt(); //对用户输入的选择进行判断 switch(choose){ case 1://用户注册 break; case 2://用户登录  login(); break; case 3: return; default: System.out.println("您的输入有误,请重新输入:"); break; } } } //二级菜单页面 public void secondshow(){ 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 show2(){ while(true){ secondshow(); Scanner sc=new Scanner(System.in); int choose=sc.nextInt(); switch(choose){ case 1://新增商品  addGoods(); break; case 2://修改商品  updateGoods(); break; case 3://删除商品  deleteGoods(); break; case 4://查询商品  getGoods(); break; case 5: return;//不能用exit default: System.out.println("您的输入有误,请重新输入:"); break; } } } //新增商品页面 public void addGoods(){ System.out.println("========新增商品页面========"); System.out.println("请输入新增商品的名称:"); Scanner sc=new Scanner(System.in); String gname=sc.next(); System.out.println("请输入商品价格:"); double price=sc.nextDouble(); System.out.println("请输入生产日期(XXXX-XX-XX):"); String date=sc.next(); //调用Controller层的add方法新增商品 int row=goodsController.addGoods(gname, price, date); if(row>0){ System.out.println("新增成功!"); }else{ System.out.println("新增失败!"); } } //修改页面 public void updateGoods(){ System.out.println("========修改页面========"); //查询所有商品  getGoods(); System.out.println("请输入您要修改的商品编号:"); Scanner sc=new Scanner(System.in); int gid=sc.nextInt(); System.out.println("请输入您要修改后的商品名称:"); String gname=sc.next(); System.out.println("请输入您要修改后的商品价格:"); Double price=sc.nextDouble(); System.out.println("请输入您要修改后的商品的生产日期(XXXX-XX-XX):"); String gdate=sc.next(); //调用Controller方法修改商品 int row=goodsController.updateGoods(gid, gname, price, gdate); if(row>0){ System.out.println("修改成功!"); }else{ System.out.println("修改失败!"); } } //查询页面 public void getGoods(){ System.out.println("========所有商品页面========"); System.out.println("商品编号\t商品名称\t商品价格\t生产日期"); //调用Controller方法getGoods()获取集合 ArrayList<Goods> arr=goodsController.getGoods(); for(Goods g:arr){ System.out.println(g.getGid()+"\t"+g.getGname()+"\t"+g.getPrice()+"\t"+g.getGdate()); } } //删除商品 public void deleteGoods(){ System.out.println("========删除商品页面========"); getGoods(); System.out.println("请输入您要删除的商品编号:"); Scanner sc=new Scanner(System.in); int gid=sc.nextInt(); //调用Controller方法删除商品 int row=goodsController.deleteGoods(gid); if(row>0){ System.out.println("删除成功!"); }else{ System.out.println("删除失败!"); } } // 用户登录 public void login(){ System.out.println("用户登录页面"); System.out.println("请输入用户名:"); Scanner sc=new Scanner(System.in); String uname=sc.next(); System.out.println("请输入密码:"); String pwd=sc.next(); //调用UserController方法登录 int count=userController.login(uname,pwd); if(count>0){ System.out.println("登录成功!"); show2(); }else{ System.out.println("用户名或密码错误,请重新登录!"); } } }
复制代码

 

controller层:

 

复制代码
package com.oracle.controller;

import java.text.ParseException;
import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import com.oracle.domain.Goods; import com.oracle.service.GoodsService; public class GoodsController { private GoodsService goodsService=new GoodsService();//掉方法需要创建对象 //新增商品 public int addGoods(String gname,double price,String date){ //封装Goods对象 Goods goods=new Goods(); goods.setGname(gname); goods.setGdate(date); goods.setPrice(price); //调用Service层的新增方法 int row=goodsService.addGoods(goods); return row; } //查询所有商品 public ArrayList<Goods> getGoods(){ return goodsService.getGoods(); } //修改商品 public int updateGoods(int gid,String gname,double price,String gdate){ //封装Goods对象 Goods goods=new Goods(); goods.setGid(gid); goods.setGdate(gdate); goods.setGname(gname); goods.setPrice(price); //调用Service方法修改商品 int row=goodsService.updateGoods(goods); return row; } //删除商品 public int deleteGoods(int gid){ //封装Goods对象 Goods goods=new Goods(); goods.setGid(gid); //调用Service方法删除商品 int row=goodsService.deleteGoods(goods); return row; } }
复制代码

 

service层:

 

复制代码
package com.oracle.service;

import java.sql.SQLException;
import java.util.ArrayList; import com.oracle.dao.GoodsDao; import com.oracle.domain.Goods; public class GoodsService { private GoodsDao goodsDao=new GoodsDao();//私有化是只能Service层调用Dao层,不能跨层 //新增商品 public int addGoods(Goods goods){ int row=0; try { row=goodsDao.addGoods(goods); } catch (SQLException e) { // TODO Auto-generated catch block  e.printStackTrace(); } return row; } //查询所有商品 public ArrayList<Goods> getGoods(){ ArrayList<Goods> arr=null; try { arr=goodsDao.getGoods(); } catch (SQLException e) { // TODO Auto-generated catch block  e.printStackTrace(); } return arr; } //修改商品 public int updateGoods(Goods goods){ int row=0; try { row=goodsDao.updateGoods(goods); } catch (SQLException e) { // TODO Auto-generated catch block  e.printStackTrace(); } return row; } //删除商品 public int deleteGoods(Goods goods){ int row=0; try { row=goodsDao.deleteGoods(goods); } catch (SQLException e) { // TODO Auto-generated catch block  e.printStackTrace(); } return row; } }
复制代码

 

Dao层:

 

复制代码

 

package com.oracle.dao;

import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import com.oracle.domain.Goods; import com.oracle.tools.JDBCUtils; public class GoodsDao { //新增商品 public int addGoods(Goods goods) throws SQLException{ //获取连接对象 Connection conn=JDBCUtils.getConn(); //获取语句执行平台 String sql="insert into goods(gname,price,gdate) values(?,?,?)"; PreparedStatement pst=conn.prepareStatement(sql); //执行sql pst.setString(1, goods.getGname()); pst.setDouble(2, goods.getPrice()); pst.setString(3, goods.getGdate()); int row=pst.executeUpdate(); //释放资源  JDBCUtils.close(conn, pst); return row; } //查询所有商品 public ArrayList<Goods> getGoods() throws SQLException{ //获取连接对象 Connection conn=JDBCUtils.getConn(); //获取语句连接平台 String sql="select * from goods"; PreparedStatement pst=conn.prepareStatement(sql); //执行sql; ResultSet rs=pst.executeQuery(); //处理结果集 ArrayList<Goods> arr=new ArrayList<Goods>(); while(rs.next()){ Goods goods=new Goods(); goods.setGid(rs.getInt("gid")); goods.setGname(rs.getString("gname")); goods.setPrice(rs.getDouble("price")); goods.setGdate(rs.getString("gdate")); arr.add(goods); } //释放资源  JDBCUtils.close(conn, pst,rs); return arr; } //修改商品 public int updateGoods(Goods goods) throws SQLException{ //获取连接对象 Connection conn=JDBCUtils.getConn(); //获取语句平台 String sql="update goods set gname=?,price=?,gdate=?where gid=?"; PreparedStatement pst=conn.prepareStatement(sql); //执行sql语句 pst.setString(1, goods.getGname()); pst.setDouble(2, goods.getPrice()); pst.setString(3, goods.getGdate()); pst.setInt(4, goods.getGid()); int row=pst.executeUpdate(); //释放资源  JDBCUtils.close(conn, pst); return row; } //删除商品 public int deleteGoods(Goods goods) throws SQLException{ //获取连接对象 Connection conn=JDBCUtils.getConn(); //获取语句平台 String sql="delete from goods where gid=?"; PreparedStatement pst=conn.prepareStatement(sql); //执行sql语句 pst.setInt(1, goods.getGid()); int row=pst.executeUpdate(); //释放资源  JDBCUtils.close(conn, pst); return row; } }

 

转载于:https://www.cnblogs.com/layuechuquwan/p/11456928.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值