数据库 IV

发布于:2022-12-15 ⋅ 阅读:(193) ⋅ 点赞:(0)

数据库 IV

1.数据库连接池DBCP

DataBaseConnectionPool, 数据库连接池
 作用: 将连接重用,从而提高执行效率
在这里插入图片描述
 如何使用数据库连接池?

//创建连接池对象
DruidDataSource ds = new DruidDataSource();
//设置数据库连接信息 url 用户名 密码
ds.setUrl("jdbc:mysql://localhost:3306/empdb?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false");
ds.setUsername("root");
ds.setPassword("root");
//设置初始连接数量
ds.setInitialSize(3);
//设置最大连接数量
ds.setMaxActive(5);
//从连接池中获取连接   异常抛出
Connection conn = ds.getConnection();
System.out.println("连接对象:"+conn);

2.注册登录

 创建用户表
use empdb;
create table user(id int primary key auto_increment,username varchar(50),password varchar(50),nick varchar(50))charset=utf8;

select count(*) from user where username=‘tom’ and password=‘123456’;

SQL注入: 往本应该传值的地方,传递进来的SQL语句,导致原有SQL语句的逻辑发生改变, 这个过程称为SQL注入

select count(*) from user
where username=‘abcd’ and password=‘’ or ‘1’=‘1’

PreparedStatement预编译的SQL执行对象

 此对象可以将编译SQL语句的时间点提前,提前后可以将SQL语句逻辑部分提前锁死, 用户输入的内容将不能影响原有SQL语句的逻辑部分,从而解决了SQL注入的问题
 如果SQL语句中存在变量,则必须使用PreparedStatement,解决SQL注入问题, 而且可以提高开发效率(避免了拼接字符串)
 如果SQL语句中没有变量,可以使用StatementPreparedStatement

3.数据库常见错误

  1. 用户名或密码错误: 检查用户名或密码
    在这里插入图片描述

  2. 值的数量 和字段数量不匹配, 检查表的字段是否正确,检查插入的值是否正确
    在这里插入图片描述

  3. 主键值重复了
    在这里插入图片描述

  4. 值不能为null
    在这里插入图片描述

  5. JDBC链接数据库时的报错: 代表没有启动MySQL服务, 在我的电脑上右键管理 找到Mysql服务右键开启即可
    在这里插入图片描述

  6. 个别MySQL版本出现的SSL异常, 在连接数据库的url上面添加&useSSL=false 即可解决
    在这里插入图片描述

  7. SQL语句拼写错误
    在这里插入图片描述

  8. 参数位置超出范围, ?的数量和替换问号时?的位置不匹配

在这里插入图片描述

我是将军;我一直都在,。!


网站公告

今日签到

点亮在社区的每一天
去签到