20201117_仵岩松

实习内容:1.学习了java的封装操作并利用昨天建立的数据库表格进行了封装
2.改进了原封装程序段,将增删改查四个功能封装在一起,使得调用关键词进行数据库表的增删改查操作更方便
3.在输入信息时,用占位符?来代表即将要输入的信息
4.封装的详细定义是:封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,
封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。
适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。
心得体会:为了灵活调用数据,我们可以用下面的程序来进行封装以达到随调随用的目的,有以下四个优点
1.提高代码的安全性
2.提高代码的复用性
3.“高内聚”:封装细节,便于修改内部代码,提高可维护性
4.“低耦合”:简化外部调用,便于调用者使用,便于扩展和写作。
代码如下:分为DBHelper,DBUtils和Text部分

DBHelper:package com.itlaobing.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

import org.junit.Test;

public class DBHelper {
    public static void main(String[] args) {
        DBHelper helper =new DBHelper();
        try {
            String sql="INSERT INTO cpidatamanagement(location,`date`,goodsname,price,units,goodstype,tips)";
                    Object []values= {"陕西省","2020/11/17","头孢克圬","30元","盒","药物类","非处方药"};
                    helper.save(sql,values);
        }catch (Exception e) {
            e.printStackTrace();
        }
    }
    //定义数据库的添加方法
    @Test
     public void save(String sql,Object...values) throws Exception {
        //1.加载数据库驱动
         Class.forName("com.mysql.jdbc.Driver");
        //2.连接数据库
         Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cpi", "root", "");
        //3.发送sql语句
         PreparedStatement psts = conn.prepareStatement(sql);
        //给占位符赋值
         for(int i=0;i<values.length;i++) {
             psts.setObject(i+1,values[i]);
         }
         int i = psts.executeUpdate();
         if(i > 0) {
             System.out.println("添加成功");
             
         }else {
             System.out.println("添加失败");
         }
         psts.close();
         conn.close();
    }
DBUtils:
package com.itlaobing.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBUtils{
    Connection conn=null;
    PreparedStatement psts=null;
    ResultSet rs=null;
    //连接数据库
    public void getConnection() throws Exception{
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cpi","root","");
    }
//增删改的方法
    public int executeUpdate(String sql,Object...values)throws Exception{
        getConnection();
        psts= conn.prepareStatement(sql);
        setObject(values);
        int i=psts.executeUpdate();
        return i;
    }
    //查询方法
    public ResultSet executeQuery(String sql,Object...values)throws Exception{
        getConnection();
        psts= conn.prepareStatement(sql);
        setObject(values);
        ResultSet rs =psts.executeQuery();
        return rs;
    }
    
    //给占位符赋值
    public void setObject(Object...values) throws Exception {
      if(values !=null && values.length>0) {
        for(int i=0;i<values.length;i++) {
            psts.setObject(i+1,values[i]);
        }
    }
}     
    //关闭资源
      public void close() throws Exception{
          if(rs !=null || rs.isClosed()==false){
              rs.close();
      }
          if(psts != null || psts.isClosed()==false) {
              psts.close();
      }
          if(conn != null || conn.isClosed()==false) {
              conn.close();
          }
      }

          }
Texts:
package com.itlaobing.jdbc;

import java.sql.ResultSet;

public class Text{
    public static void main(String[] args) {
        DBUtils utils =new DBUtils;
        try {
            String sql="SELECT *FROM cpidatamanagement where cpiID=?";
            Object[]values= {1};
            ResultSet rs =utils.executeQuery(sql, values);
            while(rs.next()) {
                System.out.println(rs.getObject("goodstype"))
            }
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
    

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1