JDBC-MyBatis简单入门
JDBC
简单了解,非重点
本质
就是一套规范、接口,实际运行需要引入驱动(jar包)
操作步骤
1 | // 1.注册驱动 |
执行DQL语句
执行调用
DQL:ResultSet rs = statement.executeQuery();
DML:int rowsAffected = statement.executeUpdate();
结果集ResultSet解析
- resultSet.next():光标往下移动一行
- resultSet.getXxx():获取字段数据
预编译SQL - 参数动态传递
优势
- 可以防止SQL注入,更安全
- 性能更高
执行预编译SQL(eg)
1 | PreparedStatement ps = conn.prepareStatement("SELECT * FROM user WHERE username = ? AND password = ?"); |
MyBatis - 持久层框架
准备与编写
准备工作
- 创建SpringBoot工程、引入Mybatis相关依赖-MySQL Driver + MyBatis Framework
勾选不了查看更换下springboot的版本,太新或者太旧都不行
- 准备数据库表user、实体类User
- 配置Mybatis(在application.properties中数据库连接信息)
编写Mybatis程序
- 编写Mybatis的持久层接口,定义SQL(注解/XML)
Mybatis的持久层接口命名规范为 XxxMapper,也称为 Mapper接口。
辅助配置
- 右键选择
show Context Actions->Inject language or reference->MySQL就可以配置SQL提示 - 配置Mybatis日志输出
1 | # mybatis的配置 |
数据库连接池
- 允许应用程序重复使用一个现有的数据库连接,而不是重新再建
- 释放空闲时间超过最大空闲时间的连接,避免没有释放连接而引起的数据库连接遗漏
优势
- 资源重用
- 提升系统响应速度
- 避免数据库连接遗漏
使用数据库连接池
- 标准接口:DataSource
已经不需要自己去添加数据库连接池了
- 常见产品:Hikari->Springboot默认、Druid
切换数据库连接池
- 第一步
1 | <dependency> |
- 第二步
1 | spring.datasource.type=com.alibaba.druid.pool.DruidDataSource |
增删改查
删除操作
删除用户-delete
- 需求:根据ID删除用户信息
- SQL: delete from user where id = 5;
- Mapper接口:
1 |
|
DML语句执行完毕的返回值,表示该DMl语句执行完毕影响的行数
意思也就是说,如果void改成Integer,打印输出1意味着影响了一行
- Mybatis中#号$号
- #{…}-占位符。执行会替换为?,生成预编译SQL-用于参数值传递-安全、性能高
- ${…}-拼接符。直接将参数拼接到SQL语句中,存在SQL注入问题-用于表名、字段名动态设置-不安全、性能低
新增操作
新增用户-insert
- 需求:添加一个用户
- SQL:insert into user(username,password,name,age) values(‘zhouyu’,’123456’,’周瑜’,20);
- Mapper接口:
1 | ; |
更新操作
修改用户-update
- 需求:根据ID更新用户信息
- SQL: uodate user username= ‘zhouyu’, password=’123456’ , name = ‘周瑜’, age = 20 where id = 1;
1 |
|
查询操作
查询用户-select
- 需求:根据用户名和密码查询用户信息
- SQL: select * from user where username = ‘zhouyu’ and password = ‘666888’;
1 |
|
@Param注解的作用是为接口的方法形参起名字的。
基于官方骨架创建的springboot项目中,接口编译时会保留方法形参名,@Param注解可以省略
参考如下
1 |
|
XML映射配置
功能与默认规则
- 通过XmL配置文件配置SQL语句
- 默认规则
- XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放在相同包下(同包同名)
- XML映射文件的namespace属性为Mapper接口全限定名一致
- XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致
辅助配置
- 在application.properties中配置XML映射文件位置
1 | mybatis.mapper-locations=classpath:mapper/*.xml |
- 推荐下载idea插件提升效率-MybatisX
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Blog of Sof!
评论








