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();
            }
        }

 

转载于:https://www.cnblogs.com/clqbolg/p/11037390.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值