JDBC

JDBC
LeKJDBC
JDBC(Java DataBase Connectivity ,Java 数据库连接),即使用Java语言操作关系型数据库的一套API
本质:
- 官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口
- 各个数据库厂商去实现这套接口,提供数据库驱动jar包
- 我们可以使用这套接口(JDBC)编程,真正执行的代码是动iar包中的实现类
优势:
- 各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发
- 可随时替换底层数据库,访问数据库的Java代码基本不变
基础操作
导入驱动
将数据库对应驱动导入项目中,将jar包添加为库
注册驱动
1 | Class.forName("class_path"); |
- class_path
- MySQL:
"com.mysql.jdbc.Driver"
获取连接
1 | import java.sql.DriverManager; |
- url
- MySQL:
“jdbc:mysql://host:port/db_name”
定义SQL语句
1 | String sql_name = "statement"; |
字符串中不需要添加结束符“**;**”
获取执行SQL对象
1 | import java.sql.Statement; |
执行SQL
1 | ResultSet result = stmt.executeQuery(sql); //查询语句 |
处理返回结果
1 | //查询 |
释放资源
1 | stmt.close(); |
需要先关闭执行SQL对象再关闭连接
DriverManager
驱动管理类作用
- 注册驱动
- 获取数据库连接
注册驱动
1
Class.forName("class_path");
MySQL 5之后的驱动包可以省略注册驱动的步骤,其会自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类
获取连接
1
DriverManager.getConnection(url, username, password);
- url
- MySQL
jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2...
- 如果连接的是本机mysq服务器,并且mysql服务默认端口是3306,则url可以简写为: jdbc:mysql:///数据库名称?参数键值对
- 配置 useSSL=false 参数,禁用安全连接方式,解决警告提示
- PostgreSQL
jdbc:postgresql://host:port/postgres
- MySQL
- user:用户名
- passwor:密码
- url
Connection
数据库连接对象作用:
- 获取执行SQL的对象
- 管理事务
获取执行SQL的对象
普通的执行SQL对象
1
Statement createStatement()
预编译SQL的执行SQL对象:防止SQL注入
1
PreparedStatement prepareStatement(sql)
执行存储过程的对象
1
CallableStatement prepareCall(sql)
事务管理
1
2
3setAutoCommit(boolean) // 开启(true)|关闭(false) 自动提交事务
commit() // 提交事务
rollback() // 回滚事务
Statement
执行SQL语句
执行DML/DDL语句
1
int executeUpdate(sql)
返回值
- DML语句影响的行数
- DDL语句执行后,执行成功也可能返回0
执行DQL语句
1
ResultSet executeQuery(sql)
PreparedStatement
CallableStatement
ResultSet
封装了DQL语句的查询结果
next()
:将光标从当前位置向前移动一行,判断当前行是否为有效行返回值:true(有效行,当前行有数据) | false(无效行,当前行没数据)
String getString(arg) int getInt(arg)
arg
- int:列的编号,从1开始
- String:列名
评论
匿名评论隐私政策
✅ 评论时留下您的邮箱号可以获取相关评论的回复,欢迎您的指正与互动~