mybatis注解

MyBatis(一):MyBatis入门

南楼画角 提交于 2020-02-01 15:11:54
MyBatis概述 1.什么是M yBatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. 每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。 用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。 2.ORM 工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 从配置文件(通常是XML配置文件中)得到 sessionfactory.

IDEA在写Mybatis时遇到了Could not autowire. No beans of 'xxxx' type found 的错误提示

╄→尐↘猪︶ㄣ 提交于 2020-02-01 14:54:05
在用Spring Boot整合Mybatis时,遇到了一个这样的报错 但是在后台还是可以运行查看到json字符串 但是对于这个报错,看上去还是感觉不满意,于是查找资料之后,找到了下面几种解决办法 (1)在注解上加上:required = fales (2)使用 @Resource 替换 @Autowired (3)在 MyBatis 接口上加上 @Repository 注解 (4)使用 Lombok,@RequireArgsContructor (5)降低 Autowired 检测的级别,将 Severity 的级别由之前的 error 改成 warning 或其它可以忽略的级别。 (6)安装 MyBatis 插件 (7)构造器注入 来源: CSDN 作者: qq_41688840 链接: https://blog.csdn.net/qq_41688840/article/details/104132951

为什么国内很多互联网公司不用Hibernate,而去采用Mybatis框架?

可紊 提交于 2020-01-29 04:51:04
为什么国内很多互联网公司不用Hibernate,而去采用Mybatis框架? 首先,我们来简单看一下MyBatis的优势 MyBatis 是一款非常优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。不仅避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。还可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录。 我们在使用传统JDBC时,往往需要写很多JDBC代码,需要自己写SQL语句以及自己装配参数,然后自己对结果集进行封装处理。 而Mybatis则帮我们简化了以上功能,只需要一些配置文件(xml)或是注解的方式即可完成对数据库的查询以及结果的映射封装。 为什么MyBatis能在国内大厂里这么流行? Mybatis之所以流行的一个原因是上手快,当学完JDBC之后,再去学习Mybatis,上手时间要比Hibernate快。一个技术学习成本低,也是一个优势。 另外一个原因就是sql优化上了,业务复杂的sql语句通常需要进行优化,此时操作Mybatis更加容易一些。 现在spring boot和Mybatis plus的出现,使Mybatis使用起来更加简单了。所以在大多数场景里,MyBatis更适合。 为什么阿里巴巴的持久层抛弃Hibernate,采用MyBatis框架? 原因大概有以下4点: 1

【深入学习Mybatis】Chapter1源码调试环境搭建

微笑、不失礼 提交于 2020-01-28 07:55:26
Mybatis简介 Mybatis 是一个一流的持久化框架,支持自定义SQL,存储过程和高级映射。 Mybatis几乎消除了所有的JDBC代码以及参数的手动设置和结果检索。Mybatis可以使用简单的XML或注释进行配置,并将原函数,映射接口和Java Pojo 映射到数据库记录。 MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records. 环境信息 macOS Catalina Git JDK8 Maven3 Intellij 克隆源码到本地 git clone https://github

mybatis框架学习

耗尽温柔 提交于 2020-01-27 08:15:44
1.mybatis入门知识 mybatis是一个持久层框架,所以在使用的时候一定要导入mybatis和mysql依赖。 在使用映射文件开发的时候要在配置文件中告知 mybatis 映射配置的位置,在使用注解开发的时候除了告知 mybatis 映射配置的位置,还要把IUserDao.xml文件删掉,否则会出现包扫描错误。 注解直接添加在持久层就可以 mybatis映射文件中的parameterType和resultType分别为持久层中的参数类型和返回值 2.resultMap 结果类型 返回值类型可以用resultMap进行封装,resultMap 可以实现将查询结果映射为复杂类型的 pojo,比如在查询结果映射对象中包括 pojo 和 list 实现一对一查询和一对多查询。 在使用resultMap进行封装时,映射文件也要用resultMap封装时设置的id 3.mybatis连接池 连接池就是用于存储连接的一个容器。 容器其实就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到统一连接。(该集合还必须能实现队列的特性:先进先出) 在 Mybatis 的 SqlMapConfig.xml 配置文件中,通过来实现 Mybatis 中连接池的配置。 4.mybatis的动态sql 动态sql的if标签 ,if就是对其进行判断,需要注意的是空字符串要用“ ”用单引号包双引号

spring注解详解

六眼飞鱼酱① 提交于 2020-01-25 10:25:09
(1)声明bean的注解 @Component:泛指组件,Springboot分为@Controller、@Service、@Repository标注控制层组件、业务层组件、数据层组件(DAO层),当创建的类不好归类时,可添加该注解。Spring会通过IOC容器自动实例话该类。 @Service在业务逻辑层使用 @Repository在数据访问层使用(dao层) @Controller在展现层使用,控制器的声明 (2)注入bean的注解 @Autowired与@Resource,自动注入注解,@Autowired默认按照type查找bean,由Spring提供 @Resource默认按照name来查找bean,由JSR提供 (3)java配置类相关注解 @Configuration声明当前类为配置类,相当于xml文件形式的Spring配置(作用在类上) @Bean注解在方法上,声明当前方法的返回值为一个bean,代替xml的方式(作用在方法上) @ComponentScan组件扫描,可自动发现和装配一些bean。创建一个配置类,在配置类上添加该注解,默认会扫描该类所在包及其子包。相当于xml中的 context:component-scan 详细解释: 链接 (4)、切面(aop)相关注解 Spring支持AspectJ的注解式切面编程 @AspectJ声明一个切面(作用在类上)

Mybatis基础入门案例

╄→гoц情女王★ 提交于 2020-01-24 10:54:20
1. MyBatis简介 1.1mybatis的历史 MyBatis是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation 迁移到了Google Code,随着开 发团队转投Google Code旗下, iBatis3.x 正式更名为MyBatis ,代码于2013年11月迁移到Github。 1.2什么是MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和 手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 1.3为什么要使用mybatis 相对于JDBC将SQL内置,mybatis可以手动编写自己想要的SQL语句,虽然核心SQL需要自己优化,但是也增加了他的灵活性 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集,也就是将JDBC代码进行了封装,降低了使用难度。 相比于JDBC将SQL夹在java代码中,mybatis将SQL与代码分离,功能边界清晰,一个专注业务、一个专注数据。

1、mybatis源码学习@Mapper注解

我的梦境 提交于 2020-01-24 04:58:44
1、@Mapper自动配置的程序入口在 MybatisAutoConfiguration类的最下面, (mybatis-spring-boot-autoconfigure-x.x.x.jar,org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration中的内部类实现) 根据名字可以看出,这个是自动配置,用到了spring-boot的自动配置相关注解 @org . springframework . context . annotation . Configuration //Import注解引入 @Mapper扫描类 @ Import ( { AutoConfiguredMapperScannerRegistrar . class } ) @ ConditionalOnMissingBean ( MapperFactoryBean . class ) public static class MapperScannerRegistrarNotFoundConfiguration { @PostConstruct public void afterPropertiesSet ( ) { logger . debug ( "No {} found." , MapperFactoryBean . class . getName

[转帖]Mybatis十八连环问!这谁顶得住?

落花浮王杯 提交于 2020-01-24 01:24:04
Mybatis十八连环问!这谁顶得住? http://www.itpub.net/2020/01/19/5130/ 1、#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdbc.Driver。#{}是sql的参数占位符,Mybatis会将sql中的#{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值,比如ps.setInt(0, parameterValue),#{item.name}的取值方式为使用反射从参数对象中获取item对象的name属性值,相当于param.getItem().getName()。 2、Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签? 答:还有很多其他的标签,<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中<sql>为sql片段标签,通过<include>标签引入sql片段,<selectKey

Mybatis入门

依然范特西╮ 提交于 2020-01-23 23:53:58
Mybatis入门 Mybatis简介 Mybatis中文官网: http://www.mybatis.cn/82.html Mybatis前身 Mybatis的前身是Apache的开源框架iBatis,与Hibernate一样是一个Java持久层的框架。 Mybatis的优势在于灵活,它几乎可以替代JDBC,同时提供了接口编程。目前Mybatis的数据访问层DAO(Data Access Object)是不需要实习类的,它只需要一个接口和XML(或者注解),建议使用注解来实现。Mybatis提供自动映射,动态SQL,级联,缓存,注解,代码和SQL分离等特性,使用方便,同时也对SQL进行优化。因为其具有封装少,映射多样化,支持存储过程,可以进行SQL优化等特点,是的它取代了Hibernate成为Java互联网中首选持久层框架。 Mybatis的三个优点 1.不屏蔽SQL,意味着可以更为精确定位SQL语句,可以对其进行优化和改造,这有利于互联网系统性能的提高,符合互联网需要性能优化的特点。 2.提供强大、灵活的映射机制,方便Java开发者使用。提供动态SQL的功能,允许我们根据不同组装SQL,这个功能远比其他工具或者Java编码的可读性和可维护性高得多,满足各种应用系统的同时也满足了需求经常变化的互联网应用的要求。 3.在Mybatis中,提供了使用Mapper的接口编程