JDBC

JDBC
虹色轨迹🌠JDBC
- Java DataBase Connectivity: Java数据库连接
- 学习JDBC主要学习的就是如何通过Java语言和数据库软件进行连接并执行SQL语句
- JDBC是Sun公司提供的一套用于Java语言和数据库软件进行连接的API (Application Programma Interface)
- 为什么Sun公司定义JDBC系列接口?
Sun公司为了避免Java程序员 , 每一种数据库软件都学习一套全新的方法 , 通过JDBC接口将方法名定义好, 让各个数据库厂商根据此接口中的方法名写各自的实现类(就是一个jar文件, 称为数据库的驱动) , 这样Java程序员只需要掌握JDBC接口中方法的调用 , 即可访问任何数据库软件 - 如何通过JDBC连接数据库并执行SQL语句
- 创建module , Maven工程名为JDBC01
- 复制以下MySQL驱动的依赖
<!-- 连接MySQL数据库的依赖 --> |
- 刷新maven
- 检查工程目录中 external Libraries 里面是否出现了mysql相关的资源
添加cn.tedu.Demo01
package cn.tedu; |
创建Demo02
package cn.tedu; |
Statement执行SQL语句的对象
- execute(sql); 此方法可以执行任意SQL语句,推荐执行DDL(数据库相关和表相关的SQL语句)
- int rows = executeUpdate(sql); 此方法执行增删改相关的SQL语句 , 方法返回值是一个整数 , 表示影响的行数
- ResultSet rs = executeQuery(sql); 此方法执行查询相关的SQL语句 , 方法的返回值为结果集对象 , 里面装着查询回来的所有数据
创建Demo03
package cn.tedu; |
创建DBUtils
package cn.tedu; |
创建Demo04
package cn.tedu; |
创建Demo05
package cn.tedu; |
创建Demo06
package cn.tedu; |
创建Demo07
package cn.tedu; |
数据库连接池DBCP
DataBaseConnectionPool , 数据库连接池
作用 : 将连接重用 , 从而提高执行效率
如何使用数据库连接池?
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
创建Demo08
package cn.tedu; |
DBUtils优化1
package cn.tedu; |
DBUtils优化2
package cn.tedu; |
注册登录
创建用户表
use empdb;
create table user(id int primary key auto_increment,username varchar(50),password varchar(50),nickname varchar(50))charset=utf8;
创建Demo09
package cn.tedu; |
创建Demo10
package cn.tedu; |
SQL注入 : 往本应该传值的地方,传递进的SQL语句,导致原有SQL语句的逻辑发生改变, 这个过程称为SQL注入
PreparedStatement预编译的SQL执行对象 , 此对象可以将编译SQL语句的时间点提前,提前后可以将SQL语句逻辑部分提前锁死, 用户输入的内容将不能影响原有SQL语句的逻辑部分,从而解决了SQL注入的问题
如果SQL语句中存在变量,则必须使用PreparedStatement,解决SQL注入问题, 而且可以提高开发效率(避免了拼接字符串)
如果SQL语句中没有变量,可以使用Statement或PreparedStatement
Demo10优化
package cn.tedu; |
创建Demo11
package cn.tedu; |
创建Demo12
package cn.tedu; |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果