JDBC*

*JDBC数据库连接步骤

1.将JDBC驱动的jar添加到项目的依赖中。

2.加载JDBC驱动

例如: Class.forName("com.mysql.jdbc.Driver");

3.连接数据库

例如:

Connection con = DriverManager.getConnection(URL,username,password);

4.获取Statement【PreparedStatement】对象,执行SQL语句

例如:

String sql = "SELECT * FROM `stu`";

Statement stm = con.createStatement();

ResultSet rs= stm.executeQuery(sql);

例如:

String sql = "SELECT * FROM `user` WHERE `username` = ? AND `password` = ?";

PreparedStatement pstm = con.prepareStatement(sql);

pstm.setObject(1,username);

pstm.setObject(2,password);

ResultSet rs= pstm.executeQuery();

5.处理结果

例如:List<Student> studentList = new ArrayList<>();

while(rs.next()){

Student student = new Student();

student.setSid(rs.getString("sid"));

student.setSname(rs.getString("sname"));

student.setAge(rs.getInt("age"));

student.setGender(rs.getString("gender"));

studentList.add(student);

}

6.释放资源

注意:SQL对象资源如IO对象资源一样,不会被垃圾回收器回收。

*JDBC-API

  • DriverManger(驱动管理器)的作用有两个:

> 1. 注册驱动:这可以让JDBC知道要使用的是哪个驱动;

> 2. 获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。

  • Connection对象表示连接,与数据库的通讯都是通过这个对象展开的.

> 1.负责Java程序与Mysql数据库之间的数据传输(通讯)

-- Statement是用来向数据库发送SQL语句的,这样数据库就会执行发送过来的SQL语句:

>1. int executeUpdate(String sql):执行更新操作(insert、update、delete等);

>2. ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;

  • ResultSet对象表示查询结果集,只有在执行查询操作后才会有结果集的产生。

结果集是一个二维的表格,有行有列。操作结果集要学习移动ResultSet内部的"行光标",

以及获取当前行上的每一列上的数据:

>1. boolean next():使"行光标"移动到下一行,并返回移动后的行是否存在;

>2. XXX getXXX(int col):获取当前行指定列上的值,参数就是列数,列数从1开始,而不是0。

-PreparedStatement的使用

>1. 使用Connection的prepareStatement(String sql):即创建它时就让它与一条SQL模板绑定;

>2. 调用PreparedStatement的setXXX()系列方法为问号设置值

>3. 调用executeUpdate()或executeQuery()方法,但要注意,调用没有参数的方法;

优点:

  • 防止SQL攻击;

  • 提高代码的可读性,以可维护性;

  • 提高效率。

相关推荐
广州灵眸科技有限公司8 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Cloud云卷云舒10 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手10 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh12 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
z1234567898613 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD13 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo14 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
TlSfoward14 小时前
抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具
数据库·爬虫·网络协议·搜索引擎·php
数智化管理手记15 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘