DiverManager:
驱动管理类的作用:
- 注册驱动
- 获取数据库连接
Connection
数据库连接对象的作用:
- 获取执行SQL的对象
- 管理事务
package com.itheima.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
//jdbc快速入门
public class JDBCDemo2_connection {
public static void main(String[] args) throws Exception {
//1、注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2、获取连接
//对应ip,端口,数据库名称,加“?useSSL=false”不会报错
String url ="jdbc:mysql://127.0.0.1:3306/db1?useSSL=false";
String username = "root";
String password = "";
Connection conn = DriverManager.getConnection(url,username,password);
//3、定义sql语句
String sql1 = "updata account set money=3000 where id=1";
String sql2 = "updata account set money=3000 where id=2";
//4、获取执行sql的对象statement。
Statement stmt = conn.createStatement();
try {
//开启事物
conn.setAutoCommit(false);
//5、执行sql
int count1 =stmt.executeUpdate(sql1); //返回受影响的行数。
//5、执行sql
int count2 =stmt.executeUpdate(sql2); //返回受影响的行数。
//6、处理结果
System.out.println(count1);
System.out.println(count2);
//提交事务
conn.commit();
} catch (Exception e) {
//有异常回滚事务
conn.rollback();
e.printStackTrace();
}
//7、释放资源
stmt.close();
conn.close();
}
}
Statement:
1.DDL(DataDefinitionLanguage):数据定义语言,用来定义数据库对象:库、表、列等;
2.DML(DataManipulationLanguage):数据操作语言,用来定义数据库记录(数据);
3.DQL(DataQueryLanguage):数据查询语言,用来查询记录(数据);
4.DCL(DataControlLanguage):数据控制语言,用来定义访问权限和安全级别。
作用:
- 执行SQL语句
ResultSet:
ResultSet(结果集对象)作用:
- 封装了DQL查询语句的结果,获取查询结果。
boolean next()
-
将光标从当前位置向前移动一行判断当前行是否为有效行
方法返回值说明:
- true : 有效航,当前行有数据
- false : 无效行,当前行没有数据
xxx getXxx(参数):获取数据
- xxx : 数据类型;如: int getInt(参数) ;String getString(参
数)
- 参数
int类型的参数:
列的编号,从1开始
String类型的参数: 列的名称
通常使用的格式
PreparedStatement
继承自Statement类,作用: 预编译sql语句并执行:预防SQL注入问题
SQL注入:通过操作输入来修改事先定义好的SQL语句,用以达到执行代码对服务器进行攻击的行为。
String name = "sjdljfld";
String pwd = "' or '1' = '1";
当接受用户输入的用户名和密码时,sql语句为:
select * from tb_user where username = 'sjdljfld' and password = ''or '1' = '1'
--会查询所有的数据