springboot整合mybatis

来源:互联网 发布:红家 蓝家 知乎 编辑:程序博客网 时间:2024/06/05 07:50
开发环境eclipse,java 1.8。eclipse已经配置好spring boot,mvn等各种插件
一、新建spring boot项目
new project -> Spring Boot -> Spring Starter Project

填写项目的基本信息

选择使用的组件 MyBatis 和Web 。点击Finish完成新建项目

打开pom.xml 添加Mysql链接驱动,这里用了5.x版本的驱动包
<!-- mysql 连接驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency>

二、配置数据库连接信息。
在application.properties 文件中添加以下配置:
spring.datasource.url=jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useSSL=falsespring.datasource.username=rootspring.datasource.password=wzy123456spring.datasource.max-active=20spring.datasource.max-idle=20spring.datasource.min-idle=1
以上配置仅供参考,毕竟我也是从其他地方拷来的。

三、配置数据源
打开spring boot的启动类 SpringbootMybatisApplication.java,添加以下代码:

@Bean      @ConfigurationProperties(prefix="spring.datasource")      public DataSource dataSource() {          return new org.apache.tomcat.jdbc.pool.DataSource();      }

spring boot 会根据第二步的数据库配置自动加载数据源

四、配置Mybatis的sqlSessionFactoryBean
数据源配置完成后要配置Mybatis的sqlSessionFactoryBean进行扫描mapper文件。SpringbootMybatisApplication.java,添加以下代码:
@Beanpublic SqlSessionFactory sqlSessionFactoryBean() throws Exception{SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();          sqlSessionFactoryBean.setDataSource(dataSource());            PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();            sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath:com/wzy/db/mapper/*.xml"));            return sqlSessionFactoryBean.getObject();  }
在此,我把mapper文件都放在了 com.wzy.db.mapper包下边

五、配置@MapperScan扫描dao层
这个只需要在SpringbootMybatisApplication.java类上边添加一个注解就可以了,如下图所示:



在这里,我把dao类文件都放在了com.wzy.db.mapper包下边

六、开启数据库事务
还是在SpringbootMybatisApplication.java类中添加以下代码:
@Bean      public PlatformTransactionManager transactionManager() {          return new DataSourceTransactionManager(dataSource());      }

七、根据数据库表生成 dao、mapper、model 文件
使用mybatis generator一键生成这三种文件,如果没有安装此插件需要先安装此插件

我数据库中只有一个person表,generatorConfig.xml 的配置如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" ><generatorConfiguration><classPathEntry location="E:\Program Files\apache-maven-3.0.5\repos\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar" /><context id="DB2Tables" targetRuntime="MyBatis3"><plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" /><plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin"><property name="searchString" value="Example$" /><property name="replaceString" value="Criteria" /></plugin><commentGenerator><property name="suppressAllComments" value="true" /><property name="suppressDate" value="true" /></commentGenerator><jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/test" userId="root" password="wzy123456"></jdbcConnection><javaTypeResolver><property name="forceBigDecimals" value="false" /></javaTypeResolver><javaModelGenerator targetPackage="com.wzy.db.model"targetProject="springboot_mybatis"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><sqlMapGenerator targetPackage="com.wzy.db.mapper"targetProject="springboot_mybatis"><property name="enableSubPackages" value="true" /></sqlMapGenerator><javaClientGenerator type="XMLMAPPER" targetPackage="com.wzy.db.dao" targetProject="springboot_mybatis"><property name="enableSubPackages" value="false" /></javaClientGenerator><table schema="test" tableName="person" domainObjectName="Person"enableCountByExample="false" enableUpdateByExample="false"enableDeleteByExample="false" enableSelectByExample="false"selectByExampleQueryId="false"></table></context></generatorConfiguration>

八、编写service和controller
PsersonService.java
package com.wzy.service;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.wzy.db.dao.PersonMapper;import com.wzy.db.model.Person;@Servicepublic class PersonService {@AutowiredPersonMapper personMapper;public Person getById(Integer id) {Person p = personMapper.selectByPrimaryKey(id);return p;}}

一定要加上@Service注解

PersonController.java
package com.wzy.controller;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.wzy.db.model.Person;import com.wzy.service.PersonService;@Controller@RequestMapping("person")public class PersonController {@AutowiredPersonService personService;@ResponseBody@RequestMapping("get")public Object getById(HttpServletRequest request) {String Id = request.getParameter("id");Person p = personService.getById(Integer.parseInt(Id));return p;}}

Run As -> Spring Boot App 默认8080端口,浏览器中输入http://localhost:8080/person/get?id=1 可以看到:


spring boot 整合mybaits完毕!
git 地址 https://gitee.com/wangziying/springboot/tree/master/springboot_mybatis
开发技巧:
在pom.xml中添加devtolls,修改任何代码或配置可以自动重新启动,不需要手动启动
<!-- 热部署开发工具 --><dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-devtools</artifactId>        <optional>true</optional></dependency>


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝光喝奶粉不吃饭怎么办 九个月宝宝缺维c怎么办 九个月宝宝缺维d怎么办 9个月大宝宝缺锌怎么办 三周岁宝宝不爱吃饭怎么办 一周岁宝宝不爱吃饭怎么办 两岁半宝宝不自己吃饭怎么办 3岁宝宝不会吃饭怎么办 节食减肥胃疼怎么办呢 减肥不吃饭胃疼怎么办 过度节食伤了胃怎么办 3岁宝宝啥也不吃怎么办 1岁多宝宝不吃饭怎么办 胃口吃辣的难受怎么办 空腹吃辣椒胃疼怎么办 吃东西辣的胃口疼怎么办 吃辣的东西胃烧怎么办 吃母乳的宝宝不爱喝水怎么办 三个月宝宝不肯吃奶粉怎么办 三个月宝宝不肯喝奶粉怎么办 三个月的宝宝不肯喝奶粉怎么办 三个月的宝宝不肯吃奶粉怎么办 饿了还是没食欲怎么办 3岁半幼儿便秘怎么办 小孩字写得难看怎么办 小孩的字写的丑怎么办 小孩字写的太差怎么办 小孩很多字不会写怎么办 食欲不好吃不多怎么办 中班小孩子子不肯写字怎么办 1岁宝便秘该怎么办 两周的宝宝便秘怎么办 3岁宝宝不肯吃药怎么办 1岁婴儿不肯吃药怎么办 9月婴儿不肯吃药怎么办 半岁宝宝不吃药怎么办 1岁宝宝不爱吃药怎么办 2岁吃多了呕吐怎么办啊 小孩吃撑了吐怎么办 三岁宝宝吃太多怎么办 小孩吃撑发烧了怎么办