博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019-06-12 Java学习日记之JDBC
阅读量:6451 次
发布时间:2019-06-23

本文共 4518 字,大约阅读时间需要 15 分钟。

使用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

你可能感兴趣的文章
flutter进行自动编译操作步骤
查看>>
4.6 直接插入排序法
查看>>
我的毕设总结所用的技术和只是要点 基于stm32F4的AGV嵌入式控制系统的设计
查看>>
盘点国内外那些有野心的BI公司
查看>>
JMeter—断言
查看>>
C++的新类创建:继承与组合
查看>>
m5-第9周作业
查看>>
odoo 权限设置
查看>>
asp操作access提示“无法从指定的数据表中删除”
查看>>
git bash 风格调整
查看>>
997D Cycles in product
查看>>
bzoj4589 Hard Nim
查看>>
java实现pdf旋转_基于Java实现PDF文本旋转倾斜
查看>>
java二维数组内存模型_C++二级指针第二种内存模型(二维数组)
查看>>
java static import 与 import_Java中的import和static import语句之间有什么区别?
查看>>
python time库3.8_python3中datetime库,time库以及pandas中的时间函数区别与详解
查看>>
java 代替Python_Java总是“沉沉浮浮”,替代者会是Python?
查看>>
贪吃蛇java程序简化版_JAVA简版贪吃蛇
查看>>
poi java web_WebPOI JavaWeb 项目 导出excel表格(.xls) Develop 238万源代码下载- www.pudn.com...
查看>>
java 顶点着色_金属顶点着色器绘制纹理点
查看>>