自学内容网 自学内容网

JDBC介绍

JDBC简介

    JDBC是Java DataBase Connectivity的缩写,意为用Java语言来操作数据库 。JDBC是用Java语言向数据库发送SQL语句。

     为了Java语言能够连接数据库,SUN公司与数据库厂商们讨论后得出结果。由SUN提供一套访问数据库的规范(一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范,提供一套访问自己公司的数据库服务器的API。SUN提供的规范命名为JDBC,而各个厂商提供的遵循JDBC规范的可以访问自己数据库的API,称之为驱动。

    JDBC是接口,JDBC驱动是接口的实现,没有驱动无法使Java程序连接数据库。每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。

    下面是程序、JDBC、和数据库之间的关系。

 JDBC核心API

     在JDBC中常用的类有:

     DriverManager、Connection、Statement、ResultSet

DriverManager

    DiverManager主要用于加载驱动。在普通的JDBC连接中,主要就是getConnection()方法。

    加载驱动的完整代码:

Class.forName(“com.mysql.jdbc.Driver”);//加载驱动类

String url = "jdbc:mysql://localhost:3306/dataName?useSSL=false"

String username = “数据库用户名”;
String password = “对应密码”;
Connection con = DriverManager.getConnection(url, username, password);

    其中,Class.forName(String s);的作用是加载数据库驱动到JVM(Java虚拟机)中。

    url里的 "dataName"填写想要使用的数据库的名字。 

    使用Class.forName()可以通过配置文件或环境变量来指定要使用的驱动,从而简化了应用程序的配置和部署。程序可以在运行时根据配置或用户输入来指定要加载的驱动程序。对于需要使用多种数据库的应用程序十分有用。

    通过配置文件来指定驱动后面我会再写一个文章讲。

Connection

    Connection最为主要的方法就是获取Statement对象

Statement stmt = con.createStatement();

Statement

    主要会用到Statement类三种方法:

int executeUpdate(String sql);
/*执行更新操作,即执行insert、update、delete语句,其实这个方法也可以执行create table、alter table,以及drop table等语句,但我们很少会使用JDBC来执行这些语句*/

ResultSet executeQuery(String sql);
/*执行查询select操作,执行查询操作会返回ResultSet,即结果集。*/

boolean execute();
/*这个方法可以用来执行增、删、改、查所有SQL语句。该方法返回的是boolean类型,表示SQL语句是否有结果集。*/

ResultSet

    ResultSet表示结果集,它的数据表现一个二维的表格。ResultSet内部维护一个行光标,并提供了一系列的方法来移动行标和获取数据。

   移动行标:

void beforeFirst():把光标放到第一行的前面,这也是光标默认的位置, 默认的结果集是无效的;
void afterLast():把光标放到最后一行的后面, 默认的结果集是无效的;
boolean first():把光标放到第一行的位置上,返回值表示调控光标是否成功, 默认的结果集是无效的;
boolean last():把光标放到最后一行的位置上, 默认的结果集是无效的;
boolean isBeforeFirst():当前光标位置是否在第一行前面;
boolean isAfterLast():当前光标位置是否在最后一行的后面;
boolean isFirst():当前光标位置是否在第一行上;
boolean isLast():当前光标位置是否在最后一行上;
boolean previous():把光标向上挪一行;默认的结果集是无效的
boolean next():把光标向下挪一行;
boolean relative(int row):相对位移,当row为正数时,表示向下移动row行,为负数时表示向上移动row行, 默认的结果集是无效的;
boolean absolute(int row):绝对位移,把光标移动到指定的行上, 默认的结果集是无效的;
int getRow():返回当前光标所有行。
>- 获取结果集元数据!
> - 得到元数据:rs.getMetaData(),返回值为ResultSetMetaData;
> - 获取结果集列数:int getColumnCount()
> - 获取指定列的列名:String getColumnName(int colIndex)

### 2.6 ResultSet之获取列数据

JDBC连接数据库完整流程 

1. 加载驱动类
2.得到Connection连接对象
3.编写sql
4.创建Statement对象
5.通知数据库执行sql ResultSet executeQuery(sql)   int  executeUpdate(sql)
6.如果查询,解析ResultSet
7.关闭资源

//加载驱动
Class.forName("com.mysql.jdbc.Driver");

//得到Connection连接对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mystu?useSSL=false","root","123456");

//编写sql语句
String sql = "select * from student";

//用sql语句创建对应的Statement对象
Statement stmt = conn.prepareCall(sql);

//通知数据库执行sql
//ResultSet executeQuery(sql)
//int  executeUpdate(sql)
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
        //解析内容...
}

//关闭资源
conn.close();
stmt.close();
rs.close();


原文地址:https://blog.csdn.net/m0_74217128/article/details/143634580

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!