mybatis注解

第四章 事务(MYBatis)

本秂侑毒 提交于 2020-03-20 15:15:36
一个使用 MyBatis-Spring 的主要原因是它允许 MyBatis 参与到 Spring 的事务管理中。而不是给 MyBatis 创建一个新的特定的事务管理器,MyBatis-Spring 利用了存在于 Spring 中的 DataSourceTransactionManager。 一旦 Spring 的 PlatformTransactionManager 配置好了,你可以在 Spring 中以你通常的做法来配置事务。@Transactional 注解和 AOP(Aspect-Oriented Program,面向切面编程,译者注)样式的配置都是支持的。在事务处理期间,一个单独的 SqlSession 对象将会被创建和使用。当事务完成时,这个 session 会以合适的方式提交或回滚。 一旦事务创建之后,MyBatis-Spring 将会透明的管理事务。在你的 DAO 类中就不需要额外的代码了。 标准配置 要 开 启 Spring 的 事 务 处 理 , 在 Spring 的 XML 配 置 文 件 中 简 单 创 建 一 个 DataSourceTransactionManager 对象: <bean id="transactionManager" class="org.springframework.jdbc.datasource

一、Mybatis与JDBC的区别

放肆的年华 提交于 2020-03-19 07:16:32
1、什么是MyBatis?   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。   iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。   MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。 回到顶部 2、为什么会有 MyBatis?   通过上面的介绍,我们知道 MyBatis 是来和数据库打交道。那么在这之前,我们是使用 JDBC 来对数据库进行增删改查等一系列操作的,而我们之所以会放弃使用 JDBC,转而使用 MyBatis 框架,这是为什么呢?或者说使用 MyBatis 对比 JDBC 有什么好处?   下面我们通过一段 JDBC 对 Person

mybatis 详解(一)

纵然是瞬间 提交于 2020-03-19 04:33:09
http://www.cnblogs.com/ysocean/p/7271600.html 1、什么是MyBatis?   MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。   iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。   MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。 2、为什么会有 MyBatis?   通过上面的介绍,我们知道 MyBatis 是来和数据库打交道。那么在这之前,我们是使用 JDBC 来对数据库进行增删改查等一系列操作的,而我们之所以会放弃使用 JDBC,转而使用 MyBatis 框架,这是为什么呢?或者说使用 MyBatis

mybatis报错:Invalid bound statement (not found)

岁酱吖の 提交于 2020-03-15 01:59:17
mybatis报错:Invalid bound statement (not found)的原因很多,但是正如报错提示一样,找不到xml中的sql语句,报错的情况分为三种: 第一种:语法错误 Java DAO层接口 public void delete(@Param("id")String id); Java 对应的mapper.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="xxx.xxx.xxx.Mapper"> <!-- 删除数据 --> <delete id="delete" parameterType="java.lang.String"> DELETE FROM xxx WHERE id=#{id} </delete> </mapper> 检查: 接口中方法名(delete)与xml文件中 id="delete" 是否一致 xml文件中的 namespace="xxx.xxx.xxx.Mapper" 中的路径是否与接口文件路径一致 parameterType 类型 与

SSM的基本知识点

六眼飞鱼酱① 提交于 2020-03-13 09:11:34
### Spring Spring框架是一个容器,它的主要作用是创建和管理对象。 Spring框架实现了解耦。 Spring框架通过DI实现了IoC。 关于Spring框架,必须掌握和理解的: 1. Spring的基本概念与特性; 2. 常用的注解:通用的4个注解,自动装配的注解; 3. 关于`@Autowired`和`@Resource`的区别; 4. Spring表达式,建议课余找时间学习ONGL。 ### SpringMVC SpringMVC主要解决接收请求与处理响应的问题。 关于SpringMVC框架,必须掌握和理解的: 1. 创建SpringMVC项目,并完成配置; 2. 掌握常用注解:`@RequestMapping`、`@ResponseBody`、`@RequestParam`、`@RestController`、`@GetMapping`、`@PostMapping`、`@ExceptionHandler`; 3. 掌握转发与重定向,及转发时封装转发的数据; 4. 掌握响应JSON正文的方式; 5. 掌握拦截器的使用; 6. 掌握异常的处理。 ### MyBatis MyBatis解决了传统模式下持久层开发比较繁琐的问题。 关于MyBatis框架,必须掌握和理解的: 1. 基本的增删改查功能开发; 2. 查询时,什么时候需要自定义别名; 3.

MyBatis 源码分析-项目总览

筅森魡賤 提交于 2020-03-12 02:43:33
MyBatis 源码分析-项目总览 1.概述 本文主要大致介绍一下MyBatis的项目结构。 引用参考资料《MyBatis技术内幕》 此外, https://mybatis.org/mybatis-3/zh/index.html MyBatis官方也提供了很不错的中文文档。对于使用中有碰到一些问题,可以参考一下。 2.模块划分 MyBatis在项目模块划分还是很清晰的。各个模块层次以及具体作用,如下: 模块 层次 定义 session 接口层 提供给外部使用的接口API scripting 核心处理层 解析映射文件中的动态SQL节点。并形成数据库可执行的SQL语句。 mapping 核心处理层 映射 builder 核心处理层 配置解析 executor 核心处理层 执行器模块,串联整个执行流程。 plugin 核心处理层 插件模块:提供插件接口,通过自定义插件方式对MyBatis进行拓展 cursor 核心处理层 游标模块 reflection 基础支持层 反射模块:mybatis专门对反射模块进行封装。提供更加简单易用的API type 基础支持层 类型转换模块:Mybatis为简化配置提供了别名机制。提供java类型与JDBC类型转换 logging 基础支持层 日志模块:主要是集成第三方日志 io 基础支持层 资源加载模块:对类加载器进行了封装。确定类加载器顺序

Spring Boot 自动装配流程

天涯浪子 提交于 2020-03-11 20:10:37
Spring Boot 自动装配流程 本文以 mybatis-spring-boot-starter 为例简单分析 Spring Boot 的自动装配流程。 Spring Boot 发现自动配置类 这里说的自动配置类指的是在 META-INF/spring.factories 文件中声明的 XXXAutoConfiguration 类。 首先,我们从 @SpringBootApplication 注解的定义中,我们可以发现有一个叫做 @EnableAutoConfiguration 的注解,这也是 SpringBoot 实现自动装配最关键的注解。 //@EnableAutoConfiguration 注解的定义 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration { String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration"; Class<?>[]

MyBatis面试题(二)

*爱你&永不变心* 提交于 2020-03-11 02:32:04
说说什么是MyBatis的接口绑定? 答:在MyBatis项目中定义任意的接口,并将接口里面的方法和sql语句进行绑定,这样可以直接通过接口方法来调用相应的sql语句,这就是接口绑定。 MyBatis的接口绑定有哪些实现方式? 答:一种是通过注解来绑定,在接口的方法上加上@Select、@Update这些注解,注解里面的参数就是要运行的sql语句。另外一种就是直接在xml文件里写sql,通过xml文件里namespace这个标签的值来确定对应的到底是哪个接口,所以namespace要是接口的全限定名。 什么情况下用注解绑定,什么情况下用xml绑定? 答:当SQL语句比较简单时候,用注解绑定,当SQL语句比较复杂时候,用xml绑定。但是个人建议还是用xml绑定的好,因为在业务的发展中,SQL只会越来越复杂,就没见过几个SQL由繁入简的例子,所以不如一开始就写在xml文件里,省事。 使用MyBatis的mapper接口调用时有哪些要求? 答:首先xml文件里的namespace要和mapper接口的全路径一样,这样才能一一对应,其次mapper接口的方法名要和xml文件中定义的每个sql的id一样,这样方法才能对应,最后就是mapper接口中方法的返回值和参数要和其在xml文件中对应sql的parameterType以及resultType的类型相同。 Mybatis是否支持延迟加载?

(四)Mybatis 面试题

房东的猫 提交于 2020-03-10 13:52:51
Mybatis 86、Mybatis是什么? mybatis是一个持久层ORM框架。它内部封装了jdbc,使得开发更简洁,更高效。 Mybatis使开发者只需要关注sql语句本身,简化JDBC操作,不需要在关注加载驱动、创建连接、处理SQL语句等繁杂的过程。 MyBatis可以通过xml或注解完成ORM映射关系配置。 87、Mybatis和JDBC的关系? (标红) JDBC是Java提供的一个操作数据库的API; MyBatis是一个持久层ORM框架,底层是对JDBC的封装。 MyBatis对JDBC操作数据库做了一系列的优化: (1)mybatis使用已有的连接池管理,避免浪费资源,提高程序可靠性。 (2)mybatis提供插件自动生成DAO层代码,提高编码效率和准确性。 (3)mybatis 提供了一级和二级缓存,提高了程序性能。 (4)mybatis使用动态SQL语句,提高了SQL维护。(此优势是基于XML配置) (5)mybatis对数据库操作结果进行自动映射 88、什么是ORM?(标红) ORM的全称是Object Relational Mapping,即对象关系映射。 描述的是对象和表之间的映射。操作Java对象,通过映射关系,就可以自动操作数据库。 在ORM关系中,数据库表对应Java中的类,一条记录对应一个对象,一个属性对应一个列。 常见的ORM框架

mybatis(一)

僤鯓⒐⒋嵵緔 提交于 2020-03-09 21:53:21
三层架构图解: 入门案例:05-08:(学会其基本的使用,以及注解方式,文件的搭配对应) 代码不用写dao的实现接口: 配置文件必须说名返回值类型到哪里: 09.mybatis注解开发和编写dao实现类的方式: 10. mybatis入门案例中的设计模式分析:(看到这即可,11以后都是自定义分析) 11.自定义Mybatis的分析-执行查询所有分析: 查询所有的分析: 12.Mybatis的分析-创建代理对象的分析 13----------------17 自定义mybatis 都是源码方法实现。 主要讲解了底层原理,建议不要直接看底层,先学会用mybatis实现小项目和demo对具体步骤有了了解再进行底层的学习。 来源: CSDN 作者: 李圣经언니 链接: https://blog.csdn.net/qq_34519470/article/details/104666908