zoukankan      html  css  js  c++  java
  • 抽取JDBC工具类并增删改查

    抽取工具类:

    package demo;
    /*
     * 工具类
     */
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    public class JDBCUtils1 {
    
        public static Connection getConnection() {
            Connection conn = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/mybase";
                String username = "root";
                String password = "xuyiqing";
                conn = DriverManager.getConnection(url, username, password);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return conn;
        }
    
        public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (pstmt != null) {
                try {
                    pstmt.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
        }
    }
    View Code

    数据准备:

    CREATE DATABASE mybase;
    USE mybase;
    CREATE TABLE users(
    uid INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(64),
    upassword VARCHAR(64)
    );
    INSERT INTO users (username,upassword) VALUES("zhangsan","123"),("lisi","456"),("wangwu","789");
    SELECT * FROM users;
    View Code

    根据主键id查询:

    package demo;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    
    import org.junit.Test;
    
    public class TestUtils {
    
        @Test
        public void testFindUserById() {
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            try {
                conn = JDBCUtils1.getConnection();
                String sql = "select * from users where uid=?";
                pstmt = conn.prepareStatement(sql);
                pstmt.setInt(1, 2);
                rs = pstmt.executeQuery();
                while (rs.next()) {
                    System.out.println(rs.getString(2) + "----" + rs.getString("upassword"));
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                JDBCUtils1.release(conn, pstmt, rs);
            }
        }
    }
    View Code

    第二种抽取工具类方式:

    配置文件(src目录下):db.properties

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mybase
    username=root
    password=xuyiqing
    View Code

    工具类:

    package demo;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ResourceBundle;
    
    public class JDBCUtils2 {
        
        public static String driver;
        public static String url;
        public static String username;
        public static String password;
        
        static{
            ResourceBundle bundle = ResourceBundle.getBundle("db");
            driver = bundle.getString("driver");
            url = bundle.getString("url");
            username = bundle.getString("username");
            password = bundle.getString("password");
        }
        
        public static Connection getConnection() {
            Connection conn = null;
            try {
                Class.forName(driver);
                conn = DriverManager.getConnection(url, username, password);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return conn;
        }
    
        public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (pstmt != null) {
                try {
                    pstmt.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
        }
    }
    View Code

    插入数据:

    package demo;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    
    import org.junit.Test;
    
    public class TestUtils {
        @Test
        public void testAdd() {
            Connection conn = null;
            PreparedStatement pstmt = null;
            try {
                conn = JDBCUtils2.getConnection();
                String sql = "insert into users values(null,?,?)";
                pstmt = conn.prepareStatement(sql);
                pstmt.setString(1, "xiaoming");
                pstmt.setString(2, "666");
                int row = pstmt.executeUpdate();
                if (row > 0) {
                    System.out.println("添加成功");
                } else {
                    System.out.println("添加失败");
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtils2.release(conn, pstmt, null);
            }
        }
    }
    View Code

    第三种抽取工具类方式:

    依然使用db.properties配置文件:

    package demo;
    
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.Properties;
    
    public class JDBCUtils3 {
        public static String driver;
        public static String url;
        public static String username;
        public static String password;
    
        static {
            try {
                ClassLoader classLoader = JDBCUtils3.class.getClassLoader();
                InputStream is = classLoader.getResourceAsStream("db.properties");
                Properties props = new Properties();
                props.load(is);
                driver = props.getProperty("driver");
                url = props.getProperty("url");
                username = props.getProperty("username");
                password = props.getProperty("password");
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    
        public static Connection getConnection() {
            Connection conn = null;
            try {
                Class.forName(driver);
                conn = DriverManager.getConnection(url, username, password);
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return conn;
        }
    
        public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (pstmt != null) {
                try {
                    pstmt.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
    
        }
    }
    View Code

    删除和修改数据:

    package demo;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    
    import org.junit.Test;
    
    public class TestUtils {
    
        /*
         * 删除
         */
        @Test
        public void testDelete() {
            Connection conn = null;
            PreparedStatement pstmt = null;
            try {
                conn = JDBCUtils3.getConnection();
                String sql = "delete from users where uid=?";
                pstmt = conn.prepareStatement(sql);
                pstmt.setInt(1, 3);
                int row = pstmt.executeUpdate();
                if (row > 0) {
                    System.out.println("删除成功");
                } else {
                    System.out.println("删除失败");
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtils3.release(conn, pstmt, null);
            }
        }
    
        /*
         * 修改
         */
        @Test
        public void testUpdate() {
            Connection conn = null;
            PreparedStatement pstmt = null;
            try {
                conn = JDBCUtils3.getConnection();
                String sql = "update users set upassword=? where uid=?";
                pstmt = conn.prepareStatement(sql);
                pstmt.setString(1, "123456789");
                pstmt.setInt(2, 2);
                int row = pstmt.executeUpdate();
                if (row > 0) {
                    System.out.println("修改成功");
                } else {
                    System.out.println("修改失败");
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            } finally {
                JDBCUtils3.release(conn, pstmt, null);
            }
        }
    }
    View Code
  • 相关阅读:
    [AU3]技巧
    [AU3]Windows 10 Update message DETELEDER Win10更新通知删除助手
    vue多选框选择后显示选中的内容
    计算object的长度
    关于苹果手机点击事件无效的解决办法
    vue中将汉字按照首字母排序,也适用于其他地方,但不适用多音字
    关于json数据格式错误
    Java下使用Swing来进行图形界面开发
    数字与静态
    Java中的内存机制及管理
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/8390807.html
Copyright © 2011-2022 走看看