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及配置解析的更多相关文章

  1. MyBatis源码 核心配置解析 properties元素

    XMLConfigBuilder的parseConfiguration(XNode)方法,用于解析配置文件 XMLConfigBuilder的propertiesElement(XNode)方法,用于 ...

  2. MyBatis(3)——配置解析

    MyBatis中文参考指南:MyBatis用户指南 //------------核心配置文件说明------------// //*在注释中进行说明 <configuration> < ...

  3. MyBatis学习02(配置解析)

    配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configur ...

  4. Mybatis源码解析,一步一步从浅入深(三):实例化xml配置解析器(XMLConfigBuilder)

    在上一篇文章:Mybatis源码解析,一步一步从浅入深(二):按步骤解析源码 ,中我们看到 代码:XMLConfigBuilder parser = new XMLConfigBuilder(read ...

  5. Mybatis:配置解析

    配置解析  mybatis-config.xml(Mybatis核心配置文件)深深影响了Mybatis行为的设置和属性信息. 能配置的的内容 当然,并不是所有都是我们经常使用到的,下面选择经常使用的配 ...

  6. MyBatis:配置解析

    配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configur ...

  7. 深入Mybatis源码——配置解析

    @ 目录 前言 正文 配置解析 1. cacheRefElement/cacheElement 2. resultMapElements 3. sqlElement 4. buildStatement ...

  8. 4、MyBatis教程之配置解析

    5.配置解析 核心配置文件 mybatis-config.xml 系统核心配置文件 MyBatis 的配置文件会深深影响 MyBatis 行为的设置和属性信息. 能配置的内容如下: configura ...

  9. Mybatis配置解析(核心配置文件)

    4.配置解析 4.1.核心配置文件 Mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息 mybatis-config.xml properties(属性)重点 settings ...

  10. 后端框架的学习----mybatis框架(3、配置解析)

    3.配置解析 1.核心配置文件 2.环境配置(environment) 3.属性(properties) 可以通过properties属性来实现引用配置文件 这些属性可以在外部进行配置,并可以进行动态 ...

随机推荐

  1. 题解 CF1359B 【New Theatre Square】

    题意 有一个 n×m 的广场,其中一部分要铺地砖,地砖有两种, 1 × 1 和 1×2 的,后者只能横着铺,其中, 1 × 1的单价为 x , 1 × 2 的单价为 y , 输入这个广场," ...

  2. 利用tox打造自动自动化测试框架

    什么是tox tox官方文档的第一句话 standardize testing in Python,意思就是说标准化python中的测试,那是不是很适合测试人员来使用呢,我们来看看他究竟是什么? 根据 ...

  3. C++语法小记---异常处理

    异常处理(C语言) 异常是对代码中可以预知的问题进行处理:代码中不可以预知的问题叫Bug: if () { ... } else { ... } setjmp和longjmp #include < ...

  4. italic和oblique的区别

    italic和oblique都是向右倾斜的文字, 但区别在于Italic是指斜体字,而Oblique是倾斜的文字(让没有斜体属性的文字倾斜), 对于没有斜体的字体应该使用Oblique属性值来实现倾斜 ...

  5. LGV定理

    LGV定理用于解决路径不相交问题. 定理 有 \(n\) 个起点 \(1, 2, 3, ..., n\),它们 分别对应 要到 \(n\) 个终点 \(A, B, C, ..., X\),并且要求路径 ...

  6. 关系型数据库查询语言 SQL 和图数据库查询语言 nGQL 对比

    摘要:这篇文章将介绍图数据库 Nebula Graph 的查询语言 nGQL 和 SQL 的区别. 本文首发于 Nebula Graph 官方博客:https://nebula-graph.com.c ...

  7. 借鉴一个比较标准的后端RESTful API

    我们制定的 API 规范,使用了微服务架构所以做了一些改进,我们更偏向使用 http code 标识,不然需要自己处理成功或失败的逻辑,在 200 内再包一层显得啰嗦:并且微服务系列都不支持,Feig ...

  8. Java基础之常用知识点博客汇总

    正则: 正则表达式 :https://www.cnblogs.com/lzq198754/p/5780340.html 正则表达式大全:https://blog.csdn.net/zpz2411232 ...

  9. springboot(七)JavaMail发送邮件

    JavaMail简介: JavaMail是SUN提供给广大Java开发人员的一款邮件发送和接受的一款开源类库,支持常用的邮件协议,如:SMTP.POP3.IMAP,开发人员使用JavaMail编写邮件 ...

  10. xctf-pwn pwn200

    刚看完题目觉得和前面的level3差不多,只是没有给libc而已... 看完大佬的exp之后整个人都不好了.....果然我还是太菜了 32位开了NX sub_8048484,read函数,明显的栈溢出 ...