首页 > 其他分享 >jdbc

jdbc

时间:2022-12-01 10:57:22浏览次数:34  
标签:语句 jdbc SQL 参数 sql 执行

jdbc

1. 注册驱动
Class.forName("com.mysql.jdbc.Driver");
2. 获取连接
Connection conn = DriverManager.getConnection(url, username, password);
3. 定义SQL语句
String sql = “update…” ;
4. 获取执行SQL对象
Statement stmt = conn.createStatement();
5. 执行SQL
stmt.executeUpdate(sql);
6. 处理返回结果
7. 释放资源

DriverManager(驱动管理类)作用:
注册驱动
获取数据库连接

1. 注册驱动
Class.forName("com.mysql.jdbc.Driver");

查看 Driver 类源码

2. 获取连接

参数
1. url:连接路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2…
示例:jdbc:mysql://127.0.0.1:3306/db1
细节:
如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc:mysql:///数据库名称?参数键值对
配置 useSSL=false 参数,禁用安全连接方式,解决警告提示

2. user:用户名
3. password:密码

Connection(数据库连接对象)作用:
获取执行 SQL 的对象
管理事务

获取执行 SQL 的对象
普通执行SQL对象
Statement createStatement()
预编译SQL的执行SQL对象:防止SQL注入
PreparedStatement prepareStatement​ (sql)
执行存储过程的对象
CallableStatement prepareCall​​ (sql)

MySQL 事务管理
开启事务:BEGIN; / START TRANSACTION;
提交事务:COMMIT;
回滚事务:ROLLBACK;

MySQL默认自动提交事务
JDBC 事务管理:Connection接口中定义了3个对应的方法
开启事务:setAutoCommit(boolean autoCommit):true为自动提交事务;false为手动提交事务,即为开启事务
提交事务:commit()
回滚事务:rollback()

Statement作用:
执行SQL语句
int executeUpdate(sql):执行DML、DDL语句
返回值:(1) DML语句影响的行数 (2) DDL语句执行后,执行成功也可能返回 0
ResultSet executeQuery(sql):执行DQL 语句
返回值: ResultSet 结果集对象

ResultSet(结果集对象)作用:
封装了DQL查询语句的结果
ResultSet stmt.executeQuery(sql):执行DQL 语句,返回 ResultSet 对象
获取查询结果
boolean next():(1) 将光标从当前位置向前移动一行 (2)判断当前行是否为有效行
返回值:
true:有效行,当前行有数据
false:无效行,当前行没有数据
xxx getXxx(参数):获取数据
xxx:数据类型;如:int getInt(参数) ; String getString(参数)
参数:
int:列的编号,从1开始
String:列的名称

 

ResultSet
使用步骤:
游标向下移动一行,并判断该行否有数据:next()
获取数据:getXxx(参数)
//循环判断游标是否是最后一行末尾
while(rs.next()){
//获取数据
rs.getXxx(参数);
}

PreparedStatement
PreparedStatement作用:
预编译SQL语句并执行:预防SQL注入问题
SQL注入
SQL注入是通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的方法。
获取 PreparedStatement 对象
// SQL语句中的参数值,使用?占位符替代 String sql = "select * from user where username = ? and password = ?";
// 通过Connection对象获取,并传入对应的sql语句 PreparedStatement pstmt = conn.prepareStatement(sql);
设置参数值
PreparedStatement对象:setXxx(参数1,参数2):给 ? 赋值
Xxx:数据类型 ; 如 setInt (参数1,参数2)
参数:
参数1: ?的位置编号,从1 开始
参数2: ?的值
执行SQL
executeUpdate(); / executeQuery(); :不需要再传递sql

 

标签:语句,jdbc,SQL,参数,sql,执行
From: https://www.cnblogs.com/popopopopo/p/16940711.html

相关文章