MyBatis

【java框架】MyBatis(1)—MyBatis入门

北城余情 提交于 2020-03-20 23:24:20
1. MyBatis认识 MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis可以使用简单的XML配置或注解来配置和映射原生信息,将接口和Java的POJO(Plain Ordinary Java Object,普通Java对象)映射成数据库中的数据。 2. 使用MyBatis完成基础的CRUD 2.1.导入对应MyBatis及数据库连接jar包 asm-3.3.1.jar cglib-2.2.2.jar commons-logging-1.1.1.jar javassist-3.17.1-GA.jar log4j-1.2.17.jar mybatis-3.2.1.jar mysql-connector-java-5.1.26-bin.jar slf4j-api-1.7.2.jar slf4j-log4j12-1.7.2.jar 2.2.建立数据库的表 2.3. 对应数据库表创建Domain类 public class Product { private Long id; private Long dir_id; // 商品分类编号 private String productName;// 商品名称 private String supplier; // 供应商 private String brand; // 品牌 private

Mybatis3.3.x技术内幕(三):Mybatis事务管理(将颠覆你心中目前对事务的理解)

那年仲夏 提交于 2020-03-20 20:53:40
3 月,跳不动了?>>> 1.说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性、四大隔离级别、七大传播特性。四大还好说,问题是七大传播特性是哪儿来的?是Spring在当前线程内,处理多个数据库操作方法事务时所做的一种事务应用策略。事务本身并不存在什么传播特性,不要混淆事务本身和Spring的事务应用策略。(当然,找工作面试时,还是可以巧妙的描述传播特性的) 2.一说到事务,人们可能又会想起create、begin、commit、rollback、close、suspend。可实际上,只有commit、rollback是实际存在的,剩下的create、begin、close、suspend都是虚幻的,是业务层或数据库底层应用语意,而非JDBC事务的真实命令。 create(事务创建):不存在。 begin(事务开始):姑且认为存在于DB的命令行中,比如Mysql的start transaction命令,以及其他数据库中的begin transaction命令。JDBC中不存在。 close(事务关闭):不存在。应用程序接口中的close()方法,是为了把connection放回数据库连接池中,供下一次使用,与事务毫无关系。 suspend(事务挂起):不存在。Spring中事务挂起的含义是,需要新事务时,将现有的connection1保存起来(它还有尚未提交的事务)

Spring + Spring MVC + MyBatis 整合

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-20 15:16:14
1.所需要 Jar包 ? <!-- Spring3. 0.1 包 --> org.springframework.web- 3.0 . 1 系列 <!-- 公共包 --> slf4j-api- 1.5 . 6 .jar slf4j-log4j12- 1.5 . 6 .jar log4j- 1.2 . 13 .jar commons-logging- 1.1 . 1 .jar asm- 3.1 .jar cglib- 2.2 .jar <!-- mybatis与Spring的整合所需的包 --> mybatis- 3.0 . 5 .jar aopalliance- 1.0 .jar mybatis-spring- 1.0 . 1 .jar mybatis-generator-core- 1.3 . 1 .jar(mybatis代码生成器包) <!-- jdbc driven --> mysql-connector-java- 3.1 . 6 -bin.jar <!-- JSR验证-Hibernate validate 4.1 --> hibernate-validator- 4.1 . 0 .Final.jar validation-api- 1.0 . 0 .GA.jar <!-- Spring Json 支持包 --> jackson-all- 1.8 . 1 .jar 2.

第四章 事务(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 学习!

纵然是瞬间 提交于 2020-03-20 14:55:09
参考链接 http://www.mybatis.org/spring/zh/mappers.html http://www.cnblogs.com/fangjian0423/p/spring-mybatis-MapperScannerConfigurer-analysis.html http://www.tuicool.com/articles/iuemAn http://fhd001.iteye.com/blog/1125528 http://www.cnblogs.com/yjmyzz/p/4261024.html http://www.blogjava.net/stevenjohn/archive/2012/05/25/379220.html ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 在Mybatis中,SqlSessionFactoryBuilder用于创建SqlSessionFactory。而在Mybatis-Spring中SqlSessionFactoryBean将取而代之。

业务层遍历单表查询与使用mybatis的collection实现一对多查询的效率对比总结

那年仲夏 提交于 2020-03-19 21:26:24
3 月,跳不动了?>>> 开始前先上个demo: https://blog.csdn.net/yuruixin_china/article/details/78834516 (业务层遍历单表查询与使用mybatis的collection实现一对多查询的效率对比) 毫无疑问,在一般情况下使用连表查询执行一条sql和单表查询多条sql下,前者总是占点便宜的,然而这是在没有考虑到小表驱动大表的情况,当你连接一张大表,一旦索引又失效,非常容易出现慢sql,继而导致拖垮数据库。在一般不求高并发又没有做分库分表小型项目中,用单表查询是最保险的做法,当然如果是连表目的需要的数据只是一两个字段,那直接建表阶段冗余就更好了。。。。未完待续 来源: oschina 链接: https://my.oschina.net/u/4247262/blog/3206656

mybatis中mapUnderscoreToCamelCase自动驼峰命名转换

邮差的信 提交于 2020-03-19 15:00:20
3 月,跳不动了?>>> ssm项目中在mybatis配置文件中添加以下配置,可以将数据库中user_name转化成userName与实体类属性对应,如果数据库使用如user_name的命名方式,实体类采用驼峰命名。配置后无需写resultMapper将数据库字段和实体类属性对应 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="mapUnderscoreToCamelCase" value="true" /> </settings> </configuration> 在spring boot项目中没有mybatis.xml文件,配置文件application.properties中,加入配置项: 1 mybatis.configuration.mapUnderscoreToCamelCase=true 2 或 3 mybatis.configuration.map-underscore-to-camel-case=true

一、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

Spring和Mybatis整合异常:expected at least 1 bean which qualifies as autowire candidate for this dependency.

五迷三道 提交于 2020-03-19 00:14:50
记录一下    —— 当 Mapper(dao) 接口与 Mapper.xml 文件不在同一文件下时 , 需要在 Spring 配置文件中配置将 Mapper(dao) 接口加到 MapperScannerConfigurer 中 。 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.xxw.dao" /> </bean> 异常截图 异常源码 [org.springframework.web.context.ContextLoader] - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com