20201117_槐军

知识总结:

今天我们学习对函数进行封装,对函数进行封装可以避免我们因为输入不同的数据而改变原程序,使程序发生错误。

对函数封装分为五步:
1,连接数据库
2,增,删,改的方法
3,查的方法
4,给占位符赋值
5,关闭资源
下面是程序的具体实现:
(DBUtils)
package com.itlaobing.jdbc;

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



public class DBUtils{
    java.sql.Connection conn=null;
    PreparedStatement psts=null;
    ResultSet rs=null;
    //连接数据库
    public void  getConnection() throws Exception {
        Class.forName("com.mysql.jdbc.Driver"); 
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/cpid","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();
            }
        }
}
对数据库的删除调用DBUtils
package com.itlaobing.jdbc;

public class text {
public static void main(String[] args) {
    DBUtils utils =new DBUtils();
    try {
        String sql = "DELETE FROM cpidatemanage WHERE cpiid = ?";
        Object []values= {13};
       int i=utils.executeUpdate(sql, values);
        if (i>0) {
            System.out.print("删除指定项成功");
        }else {
            System.out.print("删除指定项失败");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
  }
}
查询数据库调用DBUtils
package com.itlaobing.jdbc;

import java.sql.ResultSet;

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

学习心得:

通过今天的学习,昨天的情况有了比较大的改变。虽然还是有点跟不上老师的进度,
但是通过我自己慢慢的做,大部分情况已经得到了改变。虽然自己写出来的代码仍然会发生错误,但通过自己的细心已经得到了正确的答案,昨天把第一次接触到错了都不会发现是哪块出现了问题,今天已经可以发现那块出了问题并解决这个问题。

标签

评论

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