欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java通过JDBC连接MySQL数据库(一)

程序员文章站 2022-05-18 19:37:40
...

JDBC

JAVA Database Connectivity java 数据库连接

  • 为什么会出现JDBC

SUN公司提供的一种数据库访问规则、规范, 由于数据库种类较多,并且java语言使用比较广泛,sun公司就提供了一种规范,让其他的数据库提供商去实现底层的访问规则。 我们的java程序只要使用sun公司提供的jdbc驱动即可。

 

使用JDBC的基本步骤

  1. 注册驱动

    DriverManager.registerDriver(new com.mysql.jdbc.Driver());

  2. 建立连接

    //DriverManager.getConnection("jdbc:mysql://localhost/test?user=monty&password=greatsqldb");
    //2. 建立连接 参数一: 协议 + 访问的数据库 , 参数二: 用户名 , 参数三: 密码。
    conn = DriverManager.getConnection("jdbc:mysql://localhost/students", "root", "root");

  3. 创建statement

    //3. 创建statement , 跟数据库打交道,一定需要这个对象
    st = conn.createStatement();

  4. 执行sql ,得到ResultSet

    //4. 执行查询 , 得到结果集
    String sql = "select * from t_student1";
    rs = st.executeQuery(sql);

  5. 遍历结果集

    //5. 遍历查询每一条记录
    while(rs.next()){
      int id = rs.getInt("id");
      String name = rs.getString("name");
      int age = rs.getInt("age");
      System.out.println("id="+id + "===name="+name+"==age="+age);

     }
    
  6. 释放资源

    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException sqlEx) { } // ignore 
        rs = null;
    }

    ...

优化:

JDBC 工具类构建

  1. 资源释放工作的整合

  1. 驱动防二次注册

DriverManager.registerDriver(new com.mysql.jdbc.Driver());

Driver 这个类里面有静态代码块,一上来就执行了,所以等同于我们注册了两次驱动。 其实没这个必要的。
//静态代码块 ---> 类加载了,就执行。 java.sql.DriverManager.registerDriver(new Driver());


    最后形成以下代码即可。

    Class.forName("com.mysql.jdbc.Driver"); 
  1. 使用properties配置文件

    1. 在src底下声明一个文件 xxx.properties ,里面的内容吐下:

      driverClass=com.mysql.jdbc.Driver
      url=jdbc:mysql://localhost/student
      name=root
      password=root

    2. 在工具类里面,使用静态代码块,读取属性

    static{
        try {
            //1. 创建一个属性配置对象
            Properties properties = new Properties();
            InputStream is = new FileInputStream("jdbc.properties"); //对应文件位于工程根目录
             
            //使用类加载器,去读取src底下的资源文件。 后面在servlet  //对应文件位于src目录底下
            //InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
            //导入输入流。
            properties.load(is);
            
            //读取属性
            driverClass = properties.getProperty("driverClass");
            url = properties.getProperty("url");
            name = properties.getProperty("name");
            password = properties.getProperty("password");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }