zoukankan      html  css  js  c++  java
  • 2019-06-12 Java学习日记之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/student", "root", "root");

    3. 创建statement

    //3. 创建statement , 跟数据库打交道,一定需要这个对象

    st = conn.createStatement();

    4. 执行sql ,得到ResultSet

    //4. 执行查询 , 得到结果集

    String sql = "select * from t_stu";

    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;

    }

    package com.test;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    import com.mysql.jdbc.Driver;
    import com.util.JDBCUtil;
    
    public class MainTest {
    
        public static void main(String[] args) {
            Connection conn = null;
            Statement st = null;
            ResultSet rs = null;
            try {
                // 1、注册驱动
                DriverManager.registerDriver(new Driver());
    
                // DriverManager.getConnection("jdbc:mysql://localhost/test?user=test&password=test");
                // 2、建立连接
                conn = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "root");
    
                // 3、创建Statement,跟数据库打交道,一定需要这个对象
                st = conn.createStatement();
    
                // 4、执行查询
                String sql = "select * from t_stu";
                rs = st.executeQuery(sql);
    
                // 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);
                }
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            } finally {
                JDBCUtil.release(conn, st, rs);
            }
    
        }
    }

    JDBCUtil.java

    package com.util;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class JDBCUtil {
        /**
         * 释放资源
         * @param conn
         * @param st
         * @param rs
         */
        public static void release(Connection conn, Statement st, ResultSet rs){
            closeRs(rs);
            closeSt(st);
            closeCoon(conn);
        }
        
        private static void closeRs(ResultSet rs) {
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }finally {
                rs = null;
            }
        }
        private static void closeSt(Statement st) {
            try {
                if (st != null) {
                    st.close();
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }finally {
                st = null;
            }
        }
        private static void closeCoon(Connection conn) {
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }finally {
                conn = null;
            }
        }
    }

     JDBC工具类构建:

    1、资源释放工作的整合

    2、驱动防二次注册

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

      Driver 这个类里面有静态代码块,一上来就执行了,所以等同于我们注册了两次驱动。其实没必要

      改动成以下代码即可

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

     3、使用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();
                }
            }
  • 相关阅读:
    python笔记1
    git笔记
    手撸一个简陋直播系统
    spring-boot学习笔记1
    设计模式1--简单工厂模式
    网联:第一章:浏览器生成消息
    php线上预览日志--4.websocket客户端
    php线上预览日志--3.websocket服务部署
    php线上预览日志--2.谷歌插件开发
    php线上预览日志--1.概述
  • 原文地址:https://www.cnblogs.com/clqbolg/p/11037390.html
Copyright © 2011-2022 走看看