从0到1使用MyBatis
MyBatis作为最流行的数据中间层,成为企业Java软件开发中非常重要的软件。
一、基本配置
1、首先需要导入Maven
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
2、配置Mapper扫描配置器
然后在Spring容器加载bean时指定的配置文件中定义MapperScannerConfigurer,指定sqlSessionFactoryBeanName和basePackage
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="basePackage" value="com.test.mapper" />
</bean>
其中sqlSessionFactoryBeanName的值sqlSessionFactory指定一个Session工厂实现Bean
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource" />
<property name="typeAliasesPackage" value="com.test.entities" />
<property name="mapperLocations" value="classpath*:mapper/*Mapper.xml" />
</bean>
SqlSessionFactoryBean的第一个属性是dataSource,他的类型是javax.sql.DataSource,可以配置任意一个实现了该接口的类。比如连接池com.mchange.v2.c3p0.ComboPooledDataSource。
比如使用c3p0的datasource案例如下:
<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.uid}" />
<property name="password" value="${jdbc.pwd}" />
<property name="acquireIncrement" value="5" />
<property name="initialPoolSize" value="10" />
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="20" />
</bean>
其中的配置信息,可以在引用的db.properties中指定
<context:property-placeholder location="classpath*:db.properties" />
db.properites定义如下
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.9.51:3306/testdb
jdbc.uid=root
jdbc.pwd=123456
3、新建接口
接着在basePackage定义的目录com.test.mapper下添加接口
/**
* 根据图书编号获得图书对象
*/
public Book getBookById(@Param("id") int id);
4、新建实现xml
最后在mapperLocations定义的classpath:mapper/Mapper.xml中实现sql语句,需要注意的是方法名和id要一致
<mapper namespace="com.test.mapper.BookMapper">
<select id="getBookById" resultType="com.newqur.entities.Book">
select id, title, price, publishDate from books where id = #{id}
</select>
</mapper>
二、在SpringBoot中的使用方式
2.1、使用如下pom
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
如果使用了pagehelper的starter,则可以只导入如下的Maven库即可
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
2.2、在配置类中定义接口扫描范围
@Configuration
@EnableTransactionManagement
@MapperScan({"com.test.mapper","com.test.portal.dao"})
public class MyBatisConfig {
}
@Configuration用于指定该类为配置入口类
可以在MappderScan中定义多个接口包名
@EnableTransactionManagement是用于开启事务的
2.3、在yml中配置Scanner扫描器
mybatis:
mapper-locations:
- classpath:dao/*.xml
- classpath*:com/**/mapper/*.xml
可以配置多个扫描路径
2.4、配置jdbc数据源
可以是c3p0、dbcp或者druid、HikariCP等任意数据源
spring:
datasource:
url: jdbc:mysql://192.168.9.51:3306/testdb
username: root
password: 123456
druid:
initial-size: 5 #连接池初始化大小
min-idle: 10 #最小空闲连接数
max-active: 20 #最大连接数
从0到1使用MyBatis的更多相关文章
- SpringBoot2.0之四 简单整合MyBatis
从最开始的SSH(Struts+Spring+Hibernate),到后来的SMM(SpringMVC+Spring+MyBatis),到目前的S(SpringBoot),随着框架的不断更新换代,也为 ...
- SpringBoot(十一):springboot2.0.2下配置mybatis generator环境,并自定义字段/getter/settetr注释
Mybatis Generator是供开发者在mybatis开发时,快速构建mapper xml,mapper类,model类的一个插件工具.它相对来说对开发者是有很大的帮助的,但是它也有不足之处,比 ...
- 构建第一个Spring Boot2.0应用之集成mybatis(六)
一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.步骤 方式一:利用配置文件配 ...
- 构建第一个Spring Boot2.0应用之集成mybatis、Druid(七)
一.环境: IDE:IntelliJ IDEA 2017.1.1 JDK:1.8.0_161 Maven:3.3.9 springboot:2.0.2.RELEASE 二.说明: 本文综合之 ...
- 基于 SpringBoot2.0+优雅整合 SpringBoot+Mybatis
SpringBoot 整合 Mybatis 有两种常用的方式,一种就是我们常见的 xml 的方式 ,还有一种是全注解的方式.我觉得这两者没有谁比谁好,在 SQL 语句不太长的情况下,我觉得全注解的方式 ...
- springboot学习入门简易版九---springboot2.0整合多数据源mybatis mysql8+(22)
一个项目中配置多个数据源(链接不同库jdbc),无限大,具体多少根据内存大小 项目中多数据源如何划分:分包名(业务)或注解方式.分包名方式类似多个不同的jar,同业务需求放一个包中. 分包方式配置多数 ...
- 从0开始完成SpringBoot+Mybatis实现增删改查
1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...
- 问题-MyBatis不识别Integer值为0的数据
问题-MyBatis不识别Integer值为0的数据 问题:使用MyBatis的过程中,发现一个值为0的数据,Mybatis所识别,最后定位才发现,是自己的写法有问题, <if test=&qu ...
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0'
七月 05, 2018 10:26:54 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRul ...
随机推荐
- Spring Cloud服务的注册与发现(Eureka)
一.spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运 ...
- day11-random模块-随机
import random # 一.随机小数: print(random.random()) # 0.848972270116501结果是0-1之间的随机小数 print(random.uniform ...
- 关于k8s资源类型和缩写
资源类型 缩写 描述 clusters componentstatuses cs configmaps cm daemonsets ds deployments deploy ...
- demo4j解析xml
1//先加入dom4j.jar包 2import java.util.HashMap; 3import java.util.Iterator; 4import java.util.Map; 5 6im ...
- HTTP Status 400,400 (Bad Request)
400 (Bad Request) 点击添加按钮转跳没反应,控制台没报错,然后在Chrome上检查发现报错了 百度了一下,发现http Status 400这个错误大多是因为,jsp的form表单提交 ...
- DAG Optimal Coin Change
题目描述 In a 10-dollar shop, everything is worthy 10 dollars or less. In order to serve customers more ...
- python3下scrapy爬虫(第十二卷:解决scrapy数据存储大量数据时阻塞问题)
之前我们使用scrapy爬取数据,用的存储方式是直接引入PYMYSQL,或者MYSQLDB,案例中数据量并不大,这种数据存储方式属于同步过程,也就是上一条语句执行完才能执行下一条语句,当数据量变大时, ...
- iOS传感器集锦、飞机大战、开发调试工具、强制更新、Swift仿QQ空间头部等源码
iOS精选源码 飞机大作战 MUPhotoPreview -简单易用的图片浏览器 LLDebugTool是一款针对开发者和测试者的调试工具,它可以帮... 多个UIScrollView.UITable ...
- 吴裕雄--天生自然python学习笔记:pandas模块删除 DataFrame 数据
Pandas 通过 drop 函数删除 DataFrarne 数据,语法为: 例如,删除陈聪明(行标题)的成绩: import pandas as pd datas = [[65,92,78,83,7 ...
- Spring第一课:IOC控制反转,什么是反转,什么又是控制?
前言 学习Spring第一课,就是认识IOC控制反转,要了解它还真得花一些功夫.今天主要理解透彻它的真谛,而不仅限于表面. 上道小菜 public class BusinessService { pr ...