• JDBC课程2--实现Statement(用于执行SQL语句)--使用自定义的JDBCTools的工具类静态方法,包括insert/update/delete三合一


    /**JDBC课程2--实现Statement(用于执行SQL语句)
     *  1.Statement :用于执行SQL语句的对象;
     *      1): 通过Connection 的createStatement()方法获取;
     *      2): 通过executeUpdate(sql) 可以执行SQL语句;
     *      3): 通过传入的sql 可以是insert、update或者delete ;但不能使select;
     *  2.connection 和 Statement 都是服务器和应用程序的连接资源,需要及时关闭;
     *      需要在finally 中最终关闭.
     *  3.关闭的顺序,先关闭后获取的,即先关闭Statement ,后关闭connection
     */
    
    1.try/catch 代码块里的变量进行初始化成null 即可;

    封装好的 testStatement 程序代码:

    public class testStatement {
        /*  一个通用的版本的三个方法: 包括insert、update、delete  */
        @Test
        public void test01(){    //测试JDBCTools的工具类,包括insert、update、delete
            update3("update customers set name='Alix' where id='1' ");   //成功
    
            update3("INSERT INTO customers(NAME,EMAIL,BIRTH)" +" VALUES('name4','WWW.ssssss.com','2008-9-8');");   //成功
            update3("delete from customers where  id=2 ");   //成功
    
        }
    
        public void update3(String sql){
            Connection conn=null;
            Statement statement=null;
            try {
                conn=JDBCTools.getConnection();    //调用静态类,获取连接
    
                statement=conn.createStatement();   //调用静态类,执行sql语句
                statement.executeUpdate(sql);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
              JDBCTools.release(statement, conn);
            }
        }
    }

    操纵JDBC的工具类

    /**操纵JDBC的工具类, 其中封装了一些工具方法
     * Version 1 : getConnection() : 通过读取配置文件从数据库服务器获取一个连接;
     * Version 2 :  release() : 关闭数据库资源的
     */
    public class JDBCTools {
        public static void release(Statement statement,Connection conn){
            if(statement!=null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e2) {
                    e2.printStackTrace();
                }
            }
        }
        public static Connection getConnection() throws Exception{
            //1.准备数据库的连接的四个字符串
            String driverClass=null,jdbcUrl=null,user=null,password=null;
            //jdbc:mysql:///books   ;也可以将localhost省略掉!
            //2.读取类路径下的jdbc.properties 文件
            InputStream in=
                    JDBCTools.class.getClassLoader().getResourceAsStream("jdbc.properties");
            Properties properties =new Properties();
            properties.load(in);
            driverClass =properties.getProperty("driver");
            jdbcUrl=properties.getProperty("jdbcUrl");
            user = properties.getProperty("user");
            password = properties.getProperty("password");
            //3.加载数据库驱动程序(注册驱动),driver对应的实现类中有注册驱动的静态代码块
            // Class.forName(driverClass);  //
            //或这么手动加载,也可以注册多个数据库连接的代码块
            //DriverManager.registerDriver( Class.forName(driverClass).newInstance());
    
            //4.通过DriverManager 的getConnection()方法获取数据库连接。
            Connection connection=DriverManager.getConnection(jdbcUrl,user,password);
            System.out.print(connection);   //com.mysql.jdbc.JDBC4Connection@19e1023e
    
            return connection;
        }
    
    }

    mysql数据库books 的信息:

     jdbc.properties  同一src资源库下

     

    driver = com.mysql.jdbc.Driver
    jdbcUrl=jdbc:mysql://localhost:3306/books
    user=root
    password=123456
    View Code
  • 相关阅读:
    Python入门--14--字典
    Python入门--13--爬虫一
    Python入门--13--递归
    Python入门--12--函数与变量
    Python入门--11--自定义函数
    Python入门--10--序列
    mysql 删除重复记录
    Java 不可编辑的Map
    mysql left join
    mysql 超过5名学生的课
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/9965122.html
Copyright © 2020-2023  润新知