每一年都奔走在自己热爱里

荣耀的背后刻着一道孤独

java操作JDBC实现增删改查工具类

代码实现

1.提取工具类

  • 建立一个utils包

image-20220208110302433

  • 建立一个配置文件,增加耦合度

image-20220208111352091

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3307/school?useUnicode=true&characterEncoding=utf8&useSSL=true
username=root
password=201314
  • 建立工具类加载配置文件

    package com.util;

    import com.sun.xml.internal.fastinfoset.algorithm.IEEE754FloatingPointEncodingAlgorithm;
    import jdk.nashorn.internal.ir.CatchNode;

    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.*;
    import java.util.Properties;

    public class jdbcutils {
       private  static  String driver=null;
       private  static  String url=null;
       private  static  String username=null;
       private  static  String password=null;

         static{
             try{
                 //读取配置文件中的输入流
               InputStream inputStream= jdbcutils.class.getClassLoader().getResourceAsStream("db.properties");
               Properties properties=new Properties();//拿到输入流
                 properties.load(inputStream);//读出输入流
                 driver=properties.getProperty(driver);//获取配置文件中的对象
                 url=properties.getProperty(url);//获取配置文件中的对象
                 username=properties.getProperty(username);//获取配置文件中的对象
                 password=properties.getProperty(password;//获取配置文件中的对象
                //驱动只要加载一次
                   Class.forName(driver);
                }catch (Exception e){
                 e.printStackTrace();
            }
        }
         //获取连接
        public static Connection getConnection()throws SQLException {
            return DriverManager.getConnection(url,username,password);
        }
         //释放资源
       public static void release(Connection com, Statement st, ResultSet rs){
             if(rs!=null){
                 try {
                     rs.close();
                }catch (SQLException e){
                     e.printStackTrace();
                }
            }
           if(st!=null){
               try {
                   st.close();
              }catch (SQLException e){
                   e.printStackTrace();
              }
                  if(com!=null){
               try {
                   com.close();
              }catch (SQLException e){
                   e.printStackTrace();
              }
          }
      }
          }
      }
    }

    这些都是固定的唯一要改的就是sql语句

  • 编写语句

    1. 插入语句

      package com;

      import com.sun.xml.internal.bind.v2.model.core.ID;
      import com.util.jdbcutils;

      import java.sql.Connection;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import java.sql.Statement;

      public class test {
         public static void main(String[] args) {
             Connection com=null;
             Statement st=null;
             ResultSet rs=null;
             try {
                 com= jdbcutils.getConnection();//获取数据库连接
                  st= com.createStatement();//获取SQL执行对象
                 String  sql="insert into user(`id`,`name`,`password`,`email`,`birthday`)" +
                         "values( `4`,`kai`,`123456`,`2537159362@qq.com`,`1998`)";
                 int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数
                 if(i>0){
                     System.out.println("插入成功!");
                }
            }catch (SQLException e){
                 e.printStackTrace();
            }finally {
                 jdbcutils.release(com,st,rs);//释放资源
            }
        }
      }
      1. 删除语句

        package com;

        import com.sun.xml.internal.bind.v2.model.core.ID;
        import com.util.jdbcutils;

        import java.sql.Connection;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.sql.Statement;

        public class test {
           public static void main(String[] args) {
               Connection com=null;
               Statement st=null;
               ResultSet rs=null;
               try {
                   com= jdbcutils.getConnection();//获取数据库连接
                    st= com.createStatement();//获取SQL执行对象
                   String  sql="delete from user ehere id=1";
                   int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数
                   if(i>0){
                       System.out.println("删除成功!");
                  }
              }catch (SQLException e){
                   e.printStackTrace();
              }finally {
                   jdbcutils.release(com,st,rs);//释放资源
              }
          }
        }

        和插入相比就变了一个sql,增删改都用的.executeUpdate,都只要修改sql语句就行

        1. 修改语句

        package com;

        import com.sun.xml.internal.bind.v2.model.core.ID;
        import com.util.jdbcutils;

        import java.sql.Connection;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.sql.Statement;

        public class test {
           public static void main(String[] args) {
               Connection com=null;
               Statement st=null;
               ResultSet rs=null;
               try {
                   com= jdbcutils.getConnection();//获取数据库连接
                    st= com.createStatement();//获取SQL执行对象
                   String  sql="update user set name=kai ehere id=1";
                   int i=st.executeUpdate(sql);//执行sql语句,i表示受影响的行数
                   if(i>0){
                       System.out.println("修改成功!");
                  }
              }catch (SQLException e){
                   e.printStackTrace();
              }finally {
                   jdbcutils.release(com,st,rs);//释放资源
              }
          }
        }
  • 查询


    package com;

    import com.sun.xml.internal.bind.v2.model.core.ID;
    import com.util.jdbcutils;

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    public class test {
       public static void main(String[] args) {
           Connection com=null;
           Statement st=null;
           ResultSet rs=null;
           try {
               com= jdbcutils.getConnection();//获取数据库连接
                st= com.createStatement();//获取SQL执行对象
               String  sql="select * from user   ehere id=1";
               rs==st.executeQuery(sql);//查询完毕,会返回结构集
            while(rs.next()){
                System.out.print(rs.getString(columnlabel:"name")//把结构集打印出来
            }
          }catch (SQLException e){
               e.printStackTrace();
          }finally {
               jdbcutils.release(com,st,rs);//释放资源
          }
      }
    }
posted @ 2022-02-08 15:21  学技术的小凯  阅读(373)  评论(0编辑  收藏  举报