当前位置:网站首页>JDBC各个类的解释
JDBC各个类的解释
2022-07-28 10:27:00 【Camellia——】
JDBC的操作步骤:
1)注册驱动
java.sql.DriverManager:驱动管理类(管理一组JDBC服务的)
注册驱动的方法:
public static void registerDriver(Driver driver):
形参传递 是接口,需要改接口的子实现类对象
提供的驱动Jar包:com.mysql.jdbc.Driver implements java.sql.Driver接口
正常的格式: (弊端:相当于注册了两次)
Driver driver = new com.mysql.jdbc.Driver() ;
// DriverManager.registerDriver(driver);
底层源码:
包名:com.mysql.jdbc
public class Driver implements java.sql.Driver {
静态代码块:加载该Driver类的同时,跟静态相关的代码先执行!
static {
try {
//使用驱动管理了注册该驱动
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
}
优化之后:使用了反射的思想:只需要加载com.mysql.jdbc.Driver该类即可!
Class.forName("com.mysql.jdbc.Driver") ;//保证版本的向下兼容,建议永远给出这句话!
2)通过驱动管理DriverManager获取数据库的连接对象:Connection(java.sql)
驱动管理类的DriverManger :管理一组JDBC服务的
public static Connection getConnection(
String url,String user,String password):获取连接
url:统一资源定位符:就是uri的一个子集
使用url:
jdbc:mysql://域名:端口号/数据库名(该库一定要存在!)
协议很多:
ftp://
http:// 域名:端口号/访问的具体请求地址
mail:邮件协议
thunder://迅雷协...
file://本地文件协议
...
uri:网络资源一种统称!
http://localhost:8080/login :URL
/login: uri
user:用户名:连接数据库的用户名称 :root
password:连接数据库的使用的密码
3)Connection:连接对象 java.sql.Connection
表示与数据库的会话(连接),可以获取当前链接数据库的元数据信息(表的结构/表的字段类型..)
成员方法:
Statement createStatement():创建Statement执行对象
并且将指定的sql发送到指定数据库中
PreparedStatement prepareStatement(String sql):将参数sql语句进行执行
发送到数据库中,并且获取预编译对象
DatabaseMetaData getMetaData():获取该数据库相关的元数据信息
包含了一些数据库以及表的结构....
4)Statement:java.sql.Statement
执行对象
执行静态的sql语句
举例:
"update account set balance = balance + 500 where id = 1;
id的值,给balance+500的值,(硬编码)
成员方法:
int executeUpdate(String sql):通用方法
针对DML语句:insert,update,delete,有返回结果的
可以执行最基本DDL语句,没有返回内容的!
ResultSet executeQuery(String sql):专门执行DQL语句:select..
返回的结果:结果集对象(数据库结果集的数据表)
5)PreparedStatement 执行对象(预编译对象) extends Statement
预编译的 SQL 语句的对象。
给参数化的sql进行赋值
sql:
insert into 表名 (name,age,gender) values(?,?,?) ; 占位符号
publi void setXXX(第几个参数,实际值) ;
ResultSet executeQuery():执行DQL语句
int executeUpdate():执行DML语句会返回结果:影响了行数
指定DDL语句,返回结果是0
6)ResultSet:查询后生成的结果集的数据表 (java.sql.xx)
边栏推荐
- AP Autosar平台设计 1-2 导言、技术范围与方法
- ICML 2022 | 图表示学习的结构感知Transformer模型
- GKCircleObstacle
- Machine learning -- handwritten English alphabet 3 -- engineering features
- 20200229 training match L1 - 2 delete the substring in the string (20 points)
- Go json. Decoder Considered Harmful
- 试题 历届试题 发现环
- SQL Server 2016 learning records - single table query
- Redis-day01-常识补充及redis介绍
- GKPerlinNoiseSource
猜你喜欢
随机推荐
GKPolygonObstacle
GKRandomSource
GKConstantNoiseSource
GKRidgedNoiseSource
Excel word simple skills sorting (continuous update ~)
粒子群实现最优解的求解
乱打日志的男孩运气怎么样我不知道,加班肯定很多
Andorid 开发三 (Intent)
Pyqt5 rapid development and practice 4.13 menu bar, toolbar and status bar and 4.14 qprinter
Configuring raspberry pie, process and problems encountered
Use of Ogg parameter filter [urgent]
GKARC4RandomSource
Shortest path topic
GKNoiseSource
Idea packages jar packages and runs jar package commands
ICML 2022 | 图表示学习的结构感知Transformer模型
Batch Normlization
PyQt5快速开发与实战 4.11 拖曳与剪贴板
Go memory model (version on May 31st, 2014)
PyQt5快速开发与实战 4.12 日历与时间








![[application of stack] - infix expression to suffix expression](/img/c1/879716342f6dd5eaa8b79c752eca16.png)
