栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDBC的连接步骤和状态通道、“预”状态通道的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDBC的连接步骤和状态通道、“预”状态通道的区别

JDBC的连接步骤 导入连接MySQL的jar包 代码实现

1.加载驱动

Class.forName("com.mysql.cj.jdbc.Driver");

2.连接数据库(MySQL的数据库的路径及其相关配置信息,root(用户名,MySQL数据库一般默认为root),MySQL数据库的密码)

String URL = "jdbc:mysql://localhost:3306/数据库的名称?serverTimezone=UTC";
String USER = "root"; 
String PASS = "password" 
Connection conn = DriverManager.getConnection(URL, USER, PASS);

3.创建状态通道(进行SQL语句的发送),并获得结果集(针对查询操作),查询操作返回的结果集使用ResultSet类进行接收。对于增删改操作返回的是int类型的数字,表示受影响的行数

//1.通过连接数据库创建的对象,创建Statement对象
Statement statement = conn.createStatement();
//2.通过Statement对象的方法执行SQL语句
//2.1 SQL查询的方法,获得结果集
ResultSet rs = statement.executeQuery("SQL查询语句");
//2.2 SQL增删改操作的方法
int i = statement.executeUpdate("SQL增删改语句");

4.遍历结果集/取出结果集(增删改操作省略此步骤)

while(rs.next()){//判断是否有下一条数据
//通过ResultSet类下的方法获得相应字段下的信息
//例如:rs.getXxx("字段名/字段的相对位置"),Xxx代表字段对应的数据类型
}

5.释放资源

//结果集对象.close();
//状态通道对象.close();
//数据库连接对象.close();
状态通道

状态通道:使用数据库连接对象创建的Statement对象

Statement statement = conn.createStatement();

在执行SQL语句的方法中,可以实现SQL注入,即可以实现字符串与SQL语句的任意拼接。

预状态通道

1.预状态通道:使用数据库连接对象创建的PreparedStatement对象

Prepared pps = conn.preparedStatement("SQL语句");

2.在预状态通道内的SQL语句中可以使用占位符:?,占位符的操作只能传入对应的一个参数
3.使用预状态通道对象的方法给占位符进行赋值

pps.setXxx(下标,内容)//Xxx为要传入数据的数据类型,下标从1开始

4.在预状态通道内执行SQL语句

ResultSet rs = pps.executeQuery();//此处为无参的查询方法
状态通道和预状态通道的区别总结

(1)statement属于状态通道,PreparedStatement属于预状态通道
(2)预状态通道会先编译sql语句,再去执行,比statement执行效率高
(3)预状态通道支持占位符?,给占位符赋值的时候,位置从1开始
(4)预状态通道可以防止sql注入,原因:预状态通道在处理值的时候以字符串的方式处理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号