美文网首页
黑猴子的家:JDBC -> 自己封装 JDBCUtils,

黑猴子的家:JDBC -> 自己封装 JDBCUtils,

作者: 黑猴子的家 | 来源:发表于2019-03-01 10:02 被阅读0次
    1、JDBCUtils
    package com.yinggu.demo1;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
     * 一定要加文档注释
     * 彰显我们出身高贵,曾拜高人为师
     * 此类用于演示jdbc的连接的工具类 方法1:获取连接 方法2:关闭资源
     * 
     * @author:黑猴子的家
     * @博客 :https://www.jianshu.com/u/37fd8e2dff4c
    
    public class JDBCUtils {
        static String driverClass;
        static String url;
        static String user;
        static String password;
        static {
            try {
                // 加载配置文件
                Properties pro = new Properties();
                pro.load(new FileInputStream("src/db.properties"));
                //反射加载读取项目配置文件
                //pro.load(JDBCUtils.class.getClassLoader().
                //         getResourceAsStream("db.properties"));
                // 读取配置文件
                driverClass = pro.getProperty("driverClass");
                url = pro.getProperty("url");
                user = pro.getProperty("user");
                password = pro.getProperty("password");
                // 1.加载驱动
                Class.forName(driverClass);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        /**
         * 功能:获取连接
         * 异常抛就行,可根据自己的方式处理异常
         * @return 可用的连接对象
         * @throws IOException
         * @throws FileNotFoundException
         */
        public static Connection getConnection() throws Exception {
            return DriverManager.getConnection(url, user, password);
        }
        /**
         * 功能:关闭资源
         * @param set
         * @param statement
         * @param connection
         * @throws SQLException
         */
        public static void closeConnection(
                                    ResultSet set, 
                                    Statement statement, 
                                    Connection connection) throws SQLException {
            if (set != null)
                set.close();
            if (statement != null)
                statement.close();
            if (connection != null)
                connection.close();
        }
    }
    
    2、TestConnection4 抽取冗余代码
    package com.yinggu.demo1;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import org.junit.Test;
    
     * 此类用于演示访问数据库,执行增删改查操作,使用JDBCUtils
     * 
     * @author:黑猴子的家
     * @博客 :https://www.jianshu.com/u/37fd8e2dff4c
    
    public class TestConnection4 {
        /*
         * 执行查询
         */
        @Test
        public void testQuery() throws Exception {
            // 1.获取连接
            Connection connection = JDBCUtils.getConnection(); 
            // 2.访问数据库,执行查询
            // 2-1.获取命令对象
            Statement statement = connection.createStatement(); 
            // 2-2.执行查询
            ResultSet set = statement.executeQuery("select * from beauty");            
            // set.afterLast();
            while (set.next()) {
                // 方式一:根据列索引获取该列的值
                int id = set.getInt(1);// 获取该1列的值
                String name = set.getString(2);// 获取该2列的值
                String sex = set.getString("sex");
                // 方式二:根据列名获取该列的值
                int id2 = set.getInt("id");
                String name2 = set.getString("Name");
                // 方式三:根据列名获取该列的值,返回Object类型
                Object id3 = set.getObject("id");
                Object name3 = set.getObject("Name");
                System.out.println(id + "\t" + name + "\t" + sex);
            }
            // 3.关闭连接
            JDBCUtils.closeConnection(set, statement, connection);
        }
        /*
         * 执行增删改
         */
        @Test
        public void testUpdate() throws Exception {
            // 1.获取连接
            Connection connection = JDBCUtils.getConnection();
            // 3.访问数据库,执行增删改的操作 ★
            // 3-1. 获取命令对象
            Statement statement = connection.createStatement();
            // 3-2.执行sql命令并返回
            // statement.execute(sql);//执行任何sql语句,返回是否结果为结果集
            // statement.executeQuery(sql);//执行查询语句,返回结果集对象
            // 执行增删改语句,返回受影响的行数
            int update = statement.executeUpdate(
                    "update beauty set sex='女' where name='小明明'");
            // 3-3.处理结果
            System.out.println(update);
            // 4.关闭连接
            JDBCUtils.closeConnection(null, statement, connection);
        }
    }
    

    相关文章

      网友评论

          本文标题:黑猴子的家:JDBC -> 自己封装 JDBCUtils,

          本文链接:https://www.haomeiwen.com/subject/urmruqtx.html