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();
            }
        }
     
  • 相关阅读:
    oracle 10g 免安装客户端在windows下配置
    sql2005 sa密码
    使用windows live writer 有感
    windows xp SNMP安装包提取
    汉化groove2007
    迁移SQL server 2005 Reporting Services到SQL server 2008 Reporting Services全程截图操作指南
    foxmail 6在使用中的问题
    AGPM客户端连接不上服务器解决一例
    SpringSource Tool Suite add CloudFoundry service
    Java 之 SWing
  • 原文地址:https://www.cnblogs.com/whu-2017/p/10094073.html
Copyright © 2011-2022 走看看