JDBC小结

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: JDBC1.简介JDBC : Java DateBase Connectivity    (1) Java程序用于连接数据库的一组接口规范     (2) 接口的具体实现由各个数据库厂商提供,简化了程序员在连接     不同数据库时所需要的编码。
JDBC
1.简介
JDBC : Java DateBase Connectivity
    (1) Java程序用于连接数据库的一组接口规范
     (2) 接口的具体实现由各个数据库厂商提供,简化了程序员在连接
     不同数据库时所需要的编码。
     (3) jdbc驱动:各个数据库厂商提供的具体实现类,用于取得与数据库的连接(mysql:connector.jar)
2.JDBC核心类
     (1) DriverManager:用于获取连接数据库的Connection对象
     (2) Connection:数据库连接对象,如果能成功获取,说明连接数据库成功
     (3) Statement:用于执行sql语句,操作数据库,可以从Connection对象获取
     (4) ResultSet:用于存储查询的结果集,提供了一系列获取查询结果的方法,通过Statement获取该对象
     注意:只有执行查询语句才有结果集
     增删改操作返回int状态值
3.核心步骤(mysql)
     (1).导入jar包 : mysql-connector-java-5.1.13-bin.jar(connectorJ)(可以从mysql官网下载)
     (2).获取Connection对象
     四大参数:
     [1] String driverClassName = "com.mysql.jdbc.Driver" --> 数据库连接驱动
     [2] String url = "jdbc:mysql://localhost:3306/databaseName" --> 数据库所在的位置 
     注: jdbc:mysql是协议, localhost代表本地IP,3306代表端口号
     (在url中可以追加数据库用户名和密码:?username:root&password:xxx)
     [3] String username="xxxx"; 连接数据库的用户名
     [4] String password="xxxx"; 用户密码
     Class.forName(driverClassName) : 反射方式加载驱动类
     Connection conn = DriverManager.getConnection(url,username,password) : 获取连接对象
     (3).得到Statement对象
     > Statement stmt = con.createStatement();
     (4).执行sql语句
     [1] 发送更新sql语句:int row = stmt.executeUpdate(String sql); --> 若执行增删改则到此结束
     [2] 发送查询sql语句:ResultSet rs = stmt.executeQuery(String sql); --> 执行查询请参照(5)
     (5).操作ResultSet获取数据:
     注: 
     ResultSet内部原理简介:ResultSet在内部持有一个行指针(游标),默认指向第一行之前
     因此在取出数据时要注意调用next()方法移动该指针使其指向下一行
     while(rs.next()){
     rs.getXxx(int colIndex); // 根据列标取得数据
     rs.getXxx(String colName); // 根据列名取得数据(较为方便)
     }
     以下四种获取列元素的方法可供选择,根据实际需求灵活使用:
     [1] int getInt(int i):获取第i列的数据,转换成int类型返回
     [2] int getInt(String colName):rs.getString("ename"),获取当前行,名为ename的列数据
     [3] String getString(int i):获取第i列的数据,转换成String类型返回
     [4] Object getObject(int i):获取第i列的数据,转换成Object类型返回
     (6).关闭资源
     rs.close(); // 关闭结果集资源
     stmt.close(); // 关闭Statement资源
     conn.close(); // 断开连接
    
4.代码示例
/* JDBCUtils: 获取连接,关闭资源的工具类 */
package com.itheima.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCUtils {
// 定义四个获取连接的必要参数,可以从配置文件获取,也可以自己给出
private static String driverClassName = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/dbtest1";
private static String username = "root";
private static String password = "zhoubowen";
// 静态代码块用于加载连接驱动
static{
try {
Class.forName(driverClassName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 获取数据库连接
public static Connection getConnection() throws SQLException{
Connection conn = DriverManager.getConnection(url, username, password);
return conn;
}
// 关闭资源
public static void closeAll(Connection conn, Statement stmt, ResultSet rs){
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
/* 测试Demo */ 
package com.itheima.jdbc;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Demo {
public static void main(String[] args) throws SQLException {
// 获取连接: 关键
Connection conn = JDBCUtils.getConnection();
// 获取执行语句的Statement对象
Statement stmt = conn.createStatement();
// 获取查询结果集对象
ResultSet rs = stmt.executeQuery("select * from test");
// 获取数据
while(rs.next()){
String t_name = rs.getString("t_name");
String t_sex = rs.getString("t_sex");
System.out.println(t_name + ":" + t_sex);
}
// 关闭资源
JDBCUtils.closeAll(conn, stmt, rs);
}
}
若转载请注明出处!若有疑问,请回复交流!
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
SQL Java 关系型数据库
JDBC详解
Java Database Connectivity(JDBC)是Java语言中用于访问关系型数据库的标准接口,定义了一组API,使Java程序能以统一方式连接、访问和操作不同关系型数据库,简化数据库操作,提高Java应用程序的可移植性和可维护性。使用JDBC进行数据库操作主要包括创建数据源对象、建立连接、构造和执行SQL语句及释放资源等步骤。此外,还可以使用Set系列方法设置值,并使用get系列方法获取查询结果。
18 2
JDBC详解
|
4月前
|
SQL Java 数据库连接
JDBC是真的啰里啰嗦啊-但是很重要!(下)
JDBC是真的啰里啰嗦啊-但是很重要!
23 1
|
4月前
|
Java 关系型数据库 MySQL
JDBC是真的啰里啰嗦啊-但是很重要!(上)
JDBC是真的啰里啰嗦啊-但是很重要!
27 1
|
SQL Oracle 数据可视化
|
SQL 人工智能 数据可视化
JDBC的“那些事“之应当注意的问题(上)
JDBC的“那些事“之应当注意的问题(上)
|
Java 关系型数据库 MySQL
JDBC1.0
JDBC是JAVA十三大规范之一,由JAVA定义顶级接口API,各个数据库厂商去实现。常用的四大接口——Driver,DriverManager,Connection,Statement。 这里先给出结论: 所谓的JAVA制定标准,就是指JAVA给出接口,厂家各自去实现。 比如Driver,Connection,Statement等都是有接口,有实现。 通过向DriverManager注册不同Driver来确定Connection,Statement的类型
59 0
|
SQL Java 关系型数据库
JDBC介绍
JDBC介绍
100 0
|
SQL 安全 Java
33 JDBC实用详解
info 💡 概念:JDBC是java提供的一套用于操作数据库的接口API:java程序员只需要面向这套接口编程即可;
87 0
|
SQL druid Java
|
API 数据库
JDBC
1.JDBC简介 2.JDBC快速入门 3.JDBC API详解 4.数据库连接池
111 0
JDBC