zoukankan      html  css  js  c++  java
  • JDBC的封装

    分离原则:

    界面——逻辑的分离

    数据——功能的分离

    对数据访问来说,对多个表的操作分离

    无论是数据类,还是数据操作类,都不负责输出 

    大体上分为三类:    1数据类(get  set)   2数据操作类(加载驱动,增删改查的方法)     3界面类(main函数)

    1.数据类  :成员变量,  get   set

    package com.maya.shuju;

    public
    class KuCun { private String WzName; private int Num; private String Unit; private int Price; public String getWzName() { return WzName; } public void setWzName(String wzName) { WzName = wzName; } public int getNum() { return Num; } public void setNum(int num) { Num = num; } public String getUnit() { return Unit; } public void setUnit(String unit) { Unit = unit; } public int getPrice() { return Price; } public void setPrice(int price) { Price = price; } }

    2.数据操作类:   (驱动类操作数据类

        【1】驱动类   四个成员变量,一个成员方法

    package com.maya.fangwen;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class DBConnection {
        public static String Driver="com.mysql.jdbc.Driver";
        public static String jdbc="jdbc:mysql://127.0.0.1:3306/myab?characterEncoding=GBK";
        public static String uid="root";
        public static String pwd="";
        
        public static Connection conn() throws Exception{
            
            Class.forName(Driver);
            
            Connection conn = DriverManager.getConnection(jdbc,uid,pwd);
            
            
            return conn;
        }
    }

        【2】数据操作类:一个构造函数,四种数据操作方法(增删改查)

    package com.maya.fangwen;
    
    import java.sql.*;
    import java.util.*;
    import com.maya.shuju.*;
    
    public class KuCunDao {
    
        
        private Connection conn;
        private PreparedStatement  stat;
        private ResultSet re;
        
        //构造函数
        public KuCunDao() throws Exception{
            
            conn=DBConnection.conn();
            
        }
        
        //增加项目
        public void insert(String name ,int shuliang,String danwei,int danjia){
            try{
            String sql="insert into kc values (?,?,?,?)";
            stat=conn.prepareStatement(sql);
            stat.setString(1, name);
            stat.setInt(2, shuliang);
            stat.setString(3, danwei);
            stat.setInt(4, danjia);
            stat.executeUpdate();
            }
            catch(Exception e){
                System.out.println("添加出错");
            }
            finally{
                    try {
                        conn.close();
                    } 
                    catch (SQLException e) {
                        e.printStackTrace();
                    }
            }
        }
    
        //增加更改物资的数量
        public void insert(String name ,int shuliang){
            try{
            String sql="update kc set Num=Num+? where WzName=? ";
            stat=conn.prepareStatement(sql);
            stat.setInt(1, shuliang);
            stat.setString(2, name);
            stat.executeUpdate();
            }
            catch(Exception e){
                System.out.println("更改数量出错");
            }
            finally{
                try {
                    conn.close();
                } 
                catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        //查询物资剩余数量
        public ArrayList<KuCun> select(){
            ArrayList<KuCun> list=new ArrayList<KuCun>();
            try{
            String sql="select * from kc";
            stat=conn.prepareStatement(sql);
            re=stat.executeQuery();
                
                while(re.next()){
                    KuCun s=new KuCun();
                    s.setWzName(re.getString(1));
                    s.setNum(re.getInt(2));
                    s.setUnit(re.getString(3));
                    s.setPrice(re.getInt(4));
                    
                    list.add(s);
                }
                
            }
            catch(Exception e){
                System.out.println("查询出错了!!!");
            }
            finally{
                    try {
                        
                        conn.close();
                        
                    } catch (SQLException e) {
                        
                        e.printStackTrace();
                    }
            }
            return list;
    
        }
        //查询2
        public ArrayList<KuCun> select(String mz) throws Exception{
            ArrayList<KuCun> list=new ArrayList<KuCun>();
            String sql="select * from kc where WzName=?";
            stat=conn.prepareStatement(sql);
            stat.setString(1, mz);
            re=stat.executeQuery();
            while(re.next()){
                KuCun kc=new KuCun();
                kc.setPrice(re.getInt(4));
                kc.setNum(re.getInt(2));
                kc.setUnit(re.getString(3));
                list.add(kc);
            }
            conn.close();
            return list;
            
        }
        
        
    }

    3.界面类,调用方法  

    package com.maya.jiemian;
    
    import java.sql.*;
    import java.text.*;
    import java.util.*;
    import com.maya.fangwen.*;
    import com.maya.shuju.*;
    
    
    public class JieMian {
    
        public static void main(String[] args) throws Exception {
            Calendar shijian=Calendar.getInstance();
            SimpleDateFormat gs=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            String sjzf=gs.format(shijian.getTime());
            
            
            
            Scanner sc=new Scanner(System.in);
            System.out.println("赈灾物资发放登记系统");
            System.out.println("1.物资库存维护");
            System.out.println("2物资库存列表");
            System.out.println("3物资发放");
            System.out.println("4物资发放统计");
            System.out.println("5退出系统");
            String s=sc.nextLine();
            
            if(s.equals("1")){
                System.out.println("添加项目还是添加库存?");
                String tj=sc.nextLine();
                if(tj.equals("添加项目")){
                    System.out.println("请输入名称");
                    String name=sc.nextLine();
                    System.out.println("请输入添加数量");
                    int shu=Integer.parseInt(sc.nextLine());
                    System.out.println("输入单位");
                    String dw=sc.nextLine();
                    System.out.println("添加商品单价");
                    int dj=Integer.parseInt(sc.nextLine());
                    new KuCunDao().insert(name, shu,dw , dj);
                    System.out.println("添加成功!!!");
                    
                    
                }
                else if(tj.equals("添加库存")){
                    System.out.println("请输入添加物资的名称");
                    String name=sc.nextLine();
                    System.out.println("请输入添加物资的数量");
                    int shuliang=Integer.parseInt(sc.nextLine());
                    new KuCunDao().insert(name, shuliang);
                    System.out.println("添加成功!!!");
                    
                    
                }
                 main(args);
            }
    
            else if(s.equals("2")){
                ArrayList<KuCun> cx=new KuCunDao().select();
                System.out.println("********************************");
                System.out.println("物资名称"+"	"+"库存数量"+"	"+"单价(元)");
                    for(int i=0; i<cx.size();i++){
                        System.out.println(cx.get(i).getWzName()+"	"+cx.get(i).getNum()+"	"+cx.get(i).getPrice());
                    }
                    System.out.println("********************************");
                    main(args);
                
            }
                   
            
            else if(s.equals("3")){
                
                System.out.println("物资发放");
                System.out.print("请输入发放物资");
                String mz=sc.nextLine();
                ArrayList<KuCun> ls= new KuCunDao().select(mz);
                System.out.println("当前单价"+ls.get(0).getPrice());
                System.out.println("当前库存"+ls.get(0).getNum());
                System.out.print("请输入发放数量");
                int sl=Integer.parseInt(sc.nextLine());
                System.out.print("请输入领取人的姓名");
                String xingming=sc.nextLine();
                new FaFangDao().insert(mz, sl, ls.get(0).getUnit(), ls.get(0).getPrice(), sjzf, xingming);
                new KuCunDao().insert(mz, (-sl));    
                main(args);
            }
                  
            
            else if(s.equals("4")){
                ArrayList<FaFang> f=new FaFangDao().select();
                System.out.println("************************************");
                System.out.println("物资名称"+"	"+"发放数量"+"	"+"单价(元)"+"	"+"接收人");
                for(int i=0;i<f.size();i++){
                    System.out.println(f.get(i).getWzName()+"	"+f.get(i).getFaNum()+"	"+f.get(i).getFaPrice()+"	"+f.get(i).getReceiver());
                }
                System.out.println("************************************");
                main(args);
                
            }
            else if(s.equals("5")){
                System.out.println("已退出");
            }
            else{
                System.out.println("请输入正确的数字");
                main(args);
            }
            
    
        }
    
    }
  • 相关阅读:
    sql server 的语句形式
    restful规范
    sql server 相对应的增删改查以及表的创建及修改
    简单介绍函数sorted
    简单介绍sql server
    Python中三种格式化输出的方式
    基于socket 数据传输的粘包问题
    Python socket 套接字实现通信
    Dapr-状态管理
    Dapr-服务调用
  • 原文地址:https://www.cnblogs.com/zhaotiancheng/p/6270870.html
Copyright © 2011-2022 走看看