• JdbcUtils


    JdbcUtils

    项目结构

     
    db.properties
    driverClass=com.mysql.jdbc.Driver
    url=jdbc:mysql:///myTest
    username=root
    password=root
    JdbcUtils
    package com.pers.jdbc.utils;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    /** 
    * @author liangyadong 
    * @date 2016年10月13日 下午3:23:22 
    * @version 1.0 
    */
    public class JdbcUtils {
    
        public static final String DRIVERCLASS;
        public static final String URL;
        public static final String USERNAME;
        public static final String PASSWORD;
        
        /**
         * 静态代码块
         * 
         * 步骤
         * 1.创建properties对象
         * 2.获取db配置文件的输入流
         * 3.properties对象加载配置文件
         * 4.properties对象通过key获取值
         */
        static{
            // 读取配置文件,将值赋给常量
            // 创建properties对象
            Properties pro = new Properties();
            
            // 获取db.properties文件的输入流
            InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("com/pers/jdbc/utils/db.properties");
            
            // 加载配置文件
            try {
                pro.load(in);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            // 通过key获取值
            DRIVERCLASS = pro.getProperty("driverClass");
            URL = pro.getProperty("url");
            USERNAME = pro.getProperty("username");
            PASSWORD = pro.getProperty("password");
            
        }
        
        /**
         * 加载驱动
         */
        public static void loadDriver(){
            try {
                Class.forName(DRIVERCLASS);
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        /**
         * 获取连接
         * @return
         */
        public static Connection getConnection() {
            // TODO Auto-generated method stub
            // 加载驱动
            loadDriver();
            try {
                // 获取连接
                return DriverManager.getConnection(URL,USERNAME,PASSWORD);
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            return null;
        }
        
        /**
         * 释放资源
         * 
         * 查询的释放资源方法
         * @param conn
         * @param sta
         * @param rs
         */
        public static void release(Connection conn,Statement sta,ResultSet rs){
            if (rs!=null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                rs = null;
            }
            if (sta!=null) {
                try {
                    sta.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                sta = null;
            }
            if (conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                conn = null;
            }
        }
        
        /**
         * 释放资源
         * 
         * 增删改的释放资源方法
         * @param conn
         * @param sta
         */
        public static void release(Connection conn,Statement sta){
            if (sta!=null) {
                try {
                    sta.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                sta = null;
            }
            if (conn!=null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                conn = null;
            }
        }
        
    
    }

    JdbcTest

    package com.pers.jdbc.demo;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import org.junit.Test;
    
    import com.pers.jdbc.utils.JdbcUtils;
    
    /** 
    * @author liangyadong 
    * @date 2016年10月13日 上午11:01:22 
    * @version 1.0 
    */
    public class JdbcTest2 {
    
        /**
         * 测试添加数据
         */
        @Test
        public void InsertTest(){
            /**
             * 步骤
             * 1.加载驱动
             * 2.获取连接
             * 3.编写sql
             * 4.获取执行sql的对象
             * 5.执行sql
             * 6.释放资源
             */
            Connection conn = null;
            Statement sta = null;
            
            try {
                // 加载驱动
                Class.forName("com.mysql.jdbc.Driver");
                
                // 获取连接
                conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root");
                
                // 编写插入sql
                String sql = "insert into t_user values (null,'ddd','123','ddd@163.com')";
                
                // 获取执行sql的对象
                sta = conn.createStatement();
                
                // 执行sql
                /*boolean b = sta.execute(sql);
                if (b=true) {
                    System.out.println("添加数据成功!");
                }*/
                //
                int i = sta.executeUpdate(sql);
                if (i>0) {
                    System.out.println("添加数据成功!");
                }
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                /**
                 * 释放资源
                 */
                if (sta!=null) {
                    try {
                        sta.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    sta=null;
                }
                if (conn!=null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    conn=null;
                }
            }
        }
        
        
        /**
         * 修改第四条数据名称为eee
         */
        @Test
        public void UpdateTest(){
            /**
             * 步骤
             * 1.加载驱动
             * 2.获取连接
             * 3.编写修改数据的sql
             * 4.创建执行sql的对象
             * 5.执行sql
             * 6.释放资源
             */
            
            Connection conn = null;
            Statement sta = null;
            
            try {
                // 加载驱动
                Class.forName("com.mysql.jdbc.Driver");
            
                // 获取连接
                conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root");
                
                // 编写修改数据的sql
                String sql = "update t_user set username='eee' where id = '4'";
                
                // 创建执行sql的对象
                sta = conn.createStatement();
                
                // 执行sql
                int i = sta.executeUpdate(sql);
                if (i>0) {
                    System.out.println("修改数据成功!");
                }
    
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                /**
                 * 释放资源
                 */
                if (sta!=null) {
                    try {
                        sta.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    sta=null;
                }
                if (conn!=null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    conn=null;
                }
            }
            
        }
        
        /**
         * 删除数据测试
         * 删除第四条数据
         */
        @Test
        public void DeleteTest(){
            /**
             * 步骤
             * 1.加载驱动
             * 2.获取连接
             * 3.编写sql
             * 4.创建执行sql的对象
             * 5.执行sql
             * 6.释放资源
             */
            
            Connection conn = null;
            Statement sta = null;
            
            try {
                // 加载驱动
                Class.forName("com.mysql.jdbc.Driver");
    
                // 获取连接
                conn = DriverManager.getConnection("jdbc:mysql:///myTest","root","root");
            
                // 编写sql
                String sql = "delete from t_user where id = '4'";
                
                // 创建执行sql的对象
                sta = conn.createStatement();
                
                // 执行sql
                int i = sta.executeUpdate(sql);
                if (i>0) {
                    System.out.println("删除数据成功!");
                }
            
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                /**
                 * 释放资源
                 */
                if (sta!=null) {
                    try {
                        sta.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    sta = null;
                }
                if (conn!=null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    conn=null;
                }
            }
        }
        
        /**
         * 测试查询数据
         * 使用jdbc工具类
         */
        @Test
        public void query(){
            /**
             * 步骤
             * 1.加载驱动
             * 2.获取连接
             * 3.编写sql
             * 4.创建执行sql的对象
             * 5.执行sql
             * 6.遍历结果
             * 7.释放资源
             */
            Connection conn = null;
            Statement sta = null;
            ResultSet rs = null;
            
            try {
                // 加载驱动获取连接
                conn = JdbcUtils.getConnection();
                
                // 编写sql
                String sql = "select * from t_user";
                
                // 创建执行sql的对象
                sta = conn.createStatement();
                
                // 执行sql
                rs = sta.executeQuery(sql);
                
                // 遍历结果
                while(rs.next()){
                    int id = rs.getInt("id");
                    String username = rs.getString("username");
                    String email = rs.getString("email");
                    
                    System.out.println(id+"-"+username+"-"+email);
                }
                
                
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                JdbcUtils.release(conn, sta, rs);
            }
        }
        
        
    }

    输入流路径: 包名/文件名

    *注意:相对路径开头是没有斜杠的

  • 相关阅读:
    全网首发|阿里资深技术专家数仓调优经验分享(上)
    用跨进程子类化技术实现对其它进程消息的拦载
    字符串与16进制互转
    Windows消息前缀
    Delphi 关于钩子函数HOOK (二)
    ACCESS SQL语法参考
    从内存中加载并运行exe
    浅谈Delphi中进程间的数据共享
    字符串排序等算法
    利用内存映射文件在两个进程间共享数据
  • 原文地址:https://www.cnblogs.com/yadongliang/p/5967600.html
Copyright © 2020-2023  润新知