zoukankan      html  css  js  c++  java
  • Java Web总结十二JDBC

    一、什么是JDBC?为什么使用JDBC?

      1、JDBC的全称是Java Data Base Connectivity(Java数据库连接)。SUN公司为使Java程序灵活的访问各种不同的关系型数据库提供的规则。

      2、使用JDBC的原因:

        1)降低Java程序操作数据库的成本。

        2)使Java程序灵活移植。

      3、开发JDBC需要导入相应JDBC的数据库实现(即数据库驱动)。MySql的数据库驱动包是mysql-connector-java-5.0.8-bin.jar。

    二、JDBC连接数据库的各个步骤

      1、注册驱动:DriverManager.registerDriver(new com.mysql.jdbc.Driver());

        注意:上述代码会向DriverManager注册二次相同的MySQL驱动,其中一次在Driver实现类中。推荐使用以下代码间接注册数据库驱动:

            Class.forName("com.mysql.jdbc.Driver");

           这种方式的优点是:1)只需注册一次。2)无需导入与具体数据库驱动相关的包。

      2、获取数据库连接对象:Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mydb2","root","root");

      3、关闭流:

        1)依次按ResultSet->Statement->Connection顺序关闭。

        2)在能完成业务的情况下尽早关闭。

    三、JDBC的六个固定步骤:

      1、注册数据库驱动[利用反射]

      2、取得数据库连接对象Connection

      3、创建SQL对象

      4、执行SQL命令,并返回结果集

      5、处理结果集

      6、依次关闭结果集

    四、MySql操作示例:

      1、db.properties文件内容如下:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mydb3
    user=root
    password=root

      2、JdbcUtil.java文件内容如下:

    package com.gnnuit.web.jdbc;
    
    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;
    
    /**
     * JDBC工具类:关闭流和取得连接
     * 
     * @author YLY
     * 
     */
    public final class JdbcUtil {
        private static String driver;
        private static String url;
        private static String user;
        private static String password;
    
        //静态块:加载配置文件
        static {
            Properties prop = new Properties();
            InputStream is = JdbcUtil.class.getClassLoader().getResourceAsStream(
                    "com/gnnuit/web/jdbc/db.properties");
            try {
                prop.load(is);
                driver = prop.getProperty("driver");
                url = prop.getProperty("url");
                user = prop.getProperty("user");
                password = prop.getProperty("password");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        //静态块:注册驱动
        static {
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        // 获取MySql数据库的连接
        public static Connection getMySqlConnection() {
            Connection conn = null;
            try {
                conn = DriverManager.getConnection(url, user, password);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return conn;
        }
    
        // 关闭数据库的连接
        public static void closeConnection(Connection conn) {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
        // 关闭数据库的连接
        public static void closeStatement(Statement stmt) {
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
        // 关闭数据库的连接
        public static void closeResultSet(ResultSet rs) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

      3、CRUD.java文件内容如下:

    package com.gnnuit.web.jdbc;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import org.junit.Test;
    
    public class CRUD {
        @Test
        public void create() {
            Connection conn = null;
            Statement stmt = null;
            String sql = "insert into student(id,name) values(14,'杨中科')";
            try {
                conn = JdbcUtil.getMySqlConnection();
                stmt = conn.createStatement();
                int rows = stmt.executeUpdate(sql);
                System.out.println(rows > 0 ? rows : "失败");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JdbcUtil.closeStatement(stmt);
                JdbcUtil.closeConnection(conn);
            }
        }
    
        @Test
        public void read() {
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            String sql = "select * from student";
            try {
                conn = JdbcUtil.getMySqlConnection();
                stmt = conn.createStatement();
                rs = stmt.executeQuery(sql);
                while (rs.next()) {
                    String name = rs.getString("name");
                    System.out.println(name);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JdbcUtil.closeResultSet(rs);
                JdbcUtil.closeStatement(stmt);
                JdbcUtil.closeConnection(conn);
            }
        }
    
        @Test
        public void update() {
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            String sql = "update student set name='样样' where id=14";
            try {
                conn = JdbcUtil.getMySqlConnection();
                stmt = conn.createStatement();
                int rows = stmt.executeUpdate(sql);
                System.out.println(rows > 0 ? rows : "失败");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JdbcUtil.closeResultSet(rs);
                JdbcUtil.closeStatement(stmt);
                JdbcUtil.closeConnection(conn);
            }
        }
    
        @Test
        public void delete() {
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            String sql = "delete from student where id=14";
            try {
                conn = JdbcUtil.getMySqlConnection();
                stmt = conn.createStatement();
                int rows = stmt.executeUpdate(sql);
                System.out.println(rows > 0 ? rows : "失败");
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                JdbcUtil.closeResultSet(rs);
                JdbcUtil.closeStatement(stmt);
                JdbcUtil.closeConnection(conn);
            }
        }
    }

        

  • 相关阅读:
    06_springboot热部署
    05_springboot多配置文件
    04_springBoot端口和上下文路径
    03_springboot错误处理.md
    02_springboot部署-jar和-war的方式
    01_idea创建springboot
    Vue学习笔记
    Java使用Swing实现五子棋。
    我的开源项目
    Java常用库和工具类
  • 原文地址:https://www.cnblogs.com/FlySheep/p/3655688.html
Copyright © 2011-2022 走看看