Mybatis-02-CRUD及配置解析
CRUD
1.namespace
namespace中的包名要和Dao/Mapper接口的包名一致!
2.select
选择,查询语句; id:对应的namespace中的方法名 resultType:Sql语句执行的返回值 parameterType:参数类型
步骤:
1. 编写接口
2. 编写对应的mapper中的sql语句
3. 测试 增删改需要提交事务
3.insert
## 4.update
5.delete
6.分析错误
- 便签不要匹配错
- resource绑定mapper,需要使用路径
- 程序配置文件必须符合规范
- NullPointerException,没有注册到资源
- 输出的xml文件中存在乱码
- maven资源没有导出的问题
7.万能Map
如果实体类的字段或参数过多,可以考虑使用map。
map传递参数,直接在sql中取出key即可; 而对象传递参数,直接在sql中取出属性即可。
多个参数用Map,或者注解!
8.思考题
模糊查询怎么写? 1.java代码执行的时候,参数中包含通配符‘%’ 2.在sql拼接中使用通配符
-------------------------正片开始
配置解析(重要)
1.核心配置文件
mybatis-config.xml configuration(配置): properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器)
2.环境配置(environments)
Mybatis可以配置适应多种环境,不过每个sqlSessionFactory实例只能选择一种环境。 其中,Mybatis默认的事务管理器是JDBC,默认的连接池是POOLED。
3.属性(properties)
我们可以通过propertis属性来实现引用配置文件 编写一个配置文件 db.properties 在核心配置文件中映入 可以直接引用外部文件,也可以在其中增加一些属性配置,外部文件优先级大。
4.类型别名(typeAliases)
只和xml配置相关,用于减少完全限定名的冗余
typeAlias / package=在类名上加注解 @Alias(别名)
5.设置(setting)
6.其他配置
typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件)
7.映射器(mappers)
MapperRegistry:注册绑定我们的Mapper文件; 1.resource绑定mapper 2.class 注意点:接口和mapper配置文件同名且在一个包下 3.package: 注意点:扫描包下的接口和mapper配置文件必须同名且在一个包下。
8.生命周期和作用域(Scope)
错误的使用导致并发问题。 SqlSessionFactoryBuild: 一旦创造SqlSessionFactory,就不再需要了。 局部变量 SqlSessionFactory: 一旦被创建,运行期间就一直存在,没必要丢弃或重建。 最佳作用域:应用作用域。 SqlSession: 连接到连接池的一个请求,需要开启和关闭。 不是线程安全的,最佳作用域是方法作用域。
解决属性名和字段名不一致的问题
引出结果集映射:resultMap
resultMap元素是Mybatis中最强大的元素
Mybatis-02-CRUD及配置解析的更多相关文章
- MyBatis源码 核心配置解析 properties元素
XMLConfigBuilder的parseConfiguration(XNode)方法,用于解析配置文件 XMLConfigBuilder的propertiesElement(XNode)方法,用于 ...
- MyBatis(3)——配置解析
MyBatis中文参考指南:MyBatis用户指南 //------------核心配置文件说明------------// //*在注释中进行说明 <configuration> < ...
- MyBatis学习02(配置解析)
配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configur ...
- Mybatis源码解析,一步一步从浅入深(三):实例化xml配置解析器(XMLConfigBuilder)
在上一篇文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码 ,中我们看到 代码:XMLConfigBuilder parser = new XMLConfigBuilder(read ...
- Mybatis:配置解析
配置解析 mybatis-config.xml(Mybatis核心配置文件)深深影响了Mybatis行为的设置和属性信息. 能配置的的内容 当然,并不是所有都是我们经常使用到的,下面选择经常使用的配 ...
- MyBatis:配置解析
配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configur ...
- 深入Mybatis源码——配置解析
@ 目录 前言 正文 配置解析 1. cacheRefElement/cacheElement 2. resultMapElements 3. sqlElement 4. buildStatement ...
- 4、MyBatis教程之配置解析
5.配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configura ...
- Mybatis配置解析(核心配置文件)
4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...
- 后端框架的学习----mybatis框架(3、配置解析)
3.配置解析 1.核心配置文件 2.环境配置(environment) 3.属性(properties) 可以通过properties属性来实现引用配置文件 这些属性可以在外部进行配置,并可以进行动态 ...
随机推荐
- java消除整型数组中重复的元素,排序后输出新数组
法一: import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(S ...
- Android Studio(Kotlin)之RecyclerView
RecyclerView应该是ListView的增强版. RecyclerView与ListView的区别(我认为的): RecyclerView的性能比ListView高 RecyclerView支 ...
- Java中goto标签的使用
编写此文仅为以后可以复习. 最近在自学Java核心技术(很好的书,推荐!!),也是第一次从上面了解了goto,或许只是浅层了解. 错误之处希望大佬们给予批评与建议!!谢谢!!! Java核心技术中就提 ...
- 扩展BSGS
\(BSGS\) 求解\(a^x\equiv b\pmod p\),且\(a\)与\(p\)互质 由\(a^{φ(p)}\equiv1 \pmod p\)和\(a^0\equiv 1\pmod p\) ...
- ContiPerf
概述 ContiPerf 是一个轻量级的单元测试工具,基于JUnit 4二次开发,使用它基于注解的方式,快速在本地进行单元压测并提供详细的报告. Example 1. 新建 SpringBoot 工程 ...
- Python学习手册(第4版)PDF高清完整版免费下载|百度云盘
Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...
- 微服务迁移记(五):WEB层搭建(2)-SpringSecurity集成
一.redis搭建 二.WEB层主要依赖包 三.FeignClient通用接口 以上三项,参考<微服务迁移记(五):WEB层搭建(1)> 接下来,集成SpringSecruity,实现用户 ...
- Spring纯注解配置
待改造的问题 我们发现,之所以我们现在离不开 xml 配置文件,是因为我们有一句很关键的配置: <!-- 告知spring框架在,读取配置文件,创建容器时,扫描注解,依据注解创建对象,并存入容器 ...
- 【Python】利用递归函数调用方式,将所输入的字符串,以相反的顺序显示出来
源代码: """ 利用递归函数调用方式,将所输入的字符串,以相反的顺序显示出来 string_reverse_output():反向输出字符串的自定义函数 pending ...
- ECMAScript6新增数据类型symbol数据类型
25.Symbol目的:为了解决对象之间属性名冲突的问题,Symbol它是引用数据类型. Symbol( ),它代表着一个独一无二的值 [name]: '小红',//加中括号代表默认创建了一个Symb ...