jdbc基本使用详解
admin
2023-04-17 20:41:56
0

JDBC全称Java DataBase Connectivity / java数据库连接,是使用java连接和操作数据库的最基本驱动工具。

sun公司的javasoft部门开发

最早的JDBC 1.0 随JDK1.1发布

  • 由一组用Java语言编写的类和接口组成

  • 用于执行SQL语句的Java API

  • 可以为多种关系数据库提供统一访问


使用JDBC驱动的最大的好处就是可以访问不同的数据库,因为不同数据库本身提供不同的驱动以迎合JDBC驱动

流程

  • 导入jar包:驱动jar包!

  • 加载驱动类:Class.forname(类名)

  • 给出urlusernamepassword

  • 使用DriverManager类得到Connection对象

jdbc基本使用详解

JDBC使用流程

  • 导入jar包:驱动jar包!

  • 加载驱动类:Class.forname(类名)

  • 给出urlusernamepassword

  • 使用DriverManager类得到Connection对象

四大参数:

  1. driverClassName--com.mysql.jdbc.DriverMySql数据库)

  2. url--jdbc:mysql://localhost:3306/数据库名称(MySql数据库)

  3. Uesrname

  4. Password


一、加载驱动类(注册驱动)

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

反射机制创建驱动类对象

forName静态方法:返回与给定字符串名称的类或接口相关联的类对象

com.mysql.jdbc.Driver

所有java.sql.driver的实现类都提供了static代码块,代码块中代码把自己注册到DriverManage

(向 DriverManager 注册给定驱动程序: 新加载的驱动程序类应该调用 registerDriver 方法让 DriverManager 知道自己)

public class Driver extends NonRegisteringDriver implements java.sql.Driver {

static {

try {

java.sql.DriverManager.registerDriver(new Driver());

} catch (SQLException E) {

throw new RuntimeException("Can't register driver!");

}

}

public Driver() throws SQLException {

// Required for Class.forName().newInstance()

}

}

 

二、获取连接(通过DBUrl、UserName、PassWord)

Connection conn = DriverManager.getConnection( DB_URL, USER, PASS );

java.sql.DriverManager
用于管理一组 JDBC 驱动程序的基本服务

注意: JDBC 2.0 API中新增的DataSource接口提供了另一种连接到数据源的方法。 使用DataSource对象是连接到数据源的首选方法。

java.sql.Connection

与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。


三、操作数据库(CURD)

 

  1. 获取Statement

Statement stmt = con.createStatement();

java.sql .Statement

用于执行静态SQL语句并返回其生成的结果的对象

在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象

 

      2、执行execute方法(executeUpdate、executeQuery)

         executeUpdate(String sql)

          执行给定SQL 语句,该语句可能为 INSERTUPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如   SQL DDL 语句)

  方法返回值:

SQL语句执行后影响的数据行数

(1) 对于 SQL 数据操作语言 (DML) 语句,返回行计数

(2) 对于什么都不返回的 SQL 语句,返回 0

        executeQuery(String sql)

          执行给定的Query 语句语句,该语句返回单个ResultSet 对象(结果集)

  ResultSet 
    表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。

    需解析返回的结果集

 

      3、解析ResultSet对象(一般查询操作才存在)

ResoultSet对象中的数据存储格式:二维表格

遍历结果集方法

ResultSet 对象具有指向其当前数据行的行光标

最初,光标被置于第一行之前。

next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集

jdbc基本使用详解

       next()

              将光标从当前位置向下移一行。

       两种获取列值方法:

                        1、列编号

                             getInt(int columnIndex)

                        2、列名

                             getInt(String columnLabel)



4、关闭连接(Connection、Statement、ResultSet)     

  • connection.close();——必须关闭

  • statement.close();

  • resultset.close();

节省资源

在不使用数据库连接池情况下,connection.close()关闭时,statement和resoultset也会随之自动关闭

但是如果使用了数据库连接池,connection.close()不会关闭连接,只会归还给连接池,statement和resoultset对象就会不断持有

所以最好将ResultSet、Statement、Connection按顺序close



    


相关内容

热门资讯

徐巧芯剖析赖清德:最怕自己丢掉... 海峡导报综合报道 大罢免投票一周年纪念活动26日举行,台北市长蒋万安出席并怒轰,民进党一年过后仍没有...
中国红十字会总会紧急向广东调拨... 记者从中国红十字会总会了解到,针对台风“红霞”给广东造成的灾情,中国红十字会总会启动四级应急响应,紧...
这些少年,正被“毒蛋”围猎 李梦抽了几口电子烟,吐出了白色的烟雾,有一股浓烈的水果香味。随后,她看着自己握电子烟的手,跟身边人说...
蒋万安号召“倒阁”,卢秀燕认为... 海峡导报综合报道 台北市长蒋万安27日抛出震撼议题,表示多名民代向他提议推动“倒阁”,要求台行政机构...
特朗普将在白宫会见两位重要客人 俄乌战争仍未结束,美伊冲突又有升级风险。在此背景下,美国总统特朗普将在白宫接见乌克兰和以色列领导人。...
新租客打扫卧室柜子上掉落4万元... 近日,莲前西路某小区内,张倩签下一套房子的租赁合同。当天上午,她带着12岁的大女儿周馨怡和11岁的小...
六部门通告:禁止涉军队退役报废... 关于禁止涉军队退役报废装备销售活动的通告近年来,部分经营者在线上线下公开销售涉及我军退役报废装备(指...
九寨沟景区发生泥石流,部分道路... 7月26日,九寨沟风景名胜区管理局发布泥石流灾害通报:2026年7月26日15时50分,九寨沟景区局...
空调26度不凉是什么原因 从空调内部元器件来说,不凉的原因有可能是温度传感器出现故障了,也有可能是空调压缩机或者铜管出现问题,...
鲸鸿动能携手香港国际机场、鸿蒙...   2026 年 7 月 25 日,十余位鸿蒙车主组成的车队从珠海出发,经港珠澳大桥通关抵达香港国际...