概念:java database connectivity,用java操作数据库
JDBC:定义了一套所有的关系型数据库的规则,即接口。
入门步骤:
1.导入驱动jar包
复制java包到目录下
add as library
2.注册驱动
3.获取数据库连接对象
4.定义sql
5.获取sql语句的对象
6.执行sql,接收返回结果
7.处理结果
8.释放资源
//导入驱动java包
//注册驱动
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象
Connection conn= DriverManager.getConnection("jdbd:mysql://localhost:3306/db3","root","root");
//定义sql语句
String sql="updata account set balance = 500 where id=1";
//获取执行对象
Statement stmt = conn.createStatement();
//执行sql
int count = stmt.executeUpdate(sql);
//处理结果
System.out.println(count);
//释放资源
stmt.close();
conn.close();
JDBC各个对象
1. DriverManager:驱动管理对象
2.Connection:数据库连接对象
1.获取sql对象
2.管理事务
3.Statement:执行sql的对象
执行静态sql语句并返回对象
executeUpdate执行dml、ddl 返回值是影响行数
executeQuery :执行DQL 返回值是结果集
4.ResultSet:结果集对象
next:游标向下移动一行,判断是否是最后一行末尾,是返回false
getXxx():获取数据
Xxx数据类型
使用步骤:
游标下移、判断是否有数据,获取数据
5.PreparedStatement:执行sql的对象
1.sql注入问题:在拼接sql时有一些关键字参与字符串的拼接,会造成一些安全性问题。
select * from user where username='sadasd' and password='a' or 'a'='a'
2.解决注入问题,使用preparedstatement处理
1.导入驱动jar包
复制java包到目录下
add as library
2.注册驱动
3.获取数据库连接对象
4.定义sql
使用?做占位符
5.获取sql语句的对象.PreparedStatement
使用setXxx(参数1参数2)
6.执行sql,接收返回结果
7.处理结果
8.释放资源
3.预编译的SQL:参数使用?作为占位符