zoukankan      html  css  js  c++  java
  • Java通过JDBC连接MySQL数据库(一)

    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();
            }
        }
     
  • 相关阅读:
    C#根据当前日期获取星期和阴历日期
    C#常用实例
    使用Open Live Writer在博客园发表博文随笔
    Excel公式中双引号和单引号输入和显示以及函数的选择确认
    outlook新邮件到达提醒设置以及outlook最小化到托盘设置
    Windows任务计划
    酷狗音乐盒缓存文件夹KuGouCache的设置方法
    Android SDK生成时,自定义文件名称,而非系统第一分配的app-release.apk
    android button text属性中英文大小写问题
    Diskpart使用说明
  • 原文地址:https://www.cnblogs.com/whu-2017/p/10094073.html
Copyright © 2011-2022 走看看