一. SpringBoot集成实例系列-xml型单数据源mybatis

来源:互联网 发布:python coroutine 编辑:程序博客网 时间:2024/06/18 01:10

文章列表
本系列将通过实例分别实现Springboot集成mybatis(mysql),mail,mongodb,cassandra,scheduler,redis,kafka,shiro,websocket。
具体文章系列如下:
一.SpringBoot集成实例系列-xml型单数据源mybatis
二.SpringBoot集成实例系列-xml型多数据源mybatis
三.SpringBoot集成实例系列-注解型单数据源mybatis
四.SpringBoot集成实例系列-注解型多数据源mybatis
五.SpringBoot集成实例系列-邮件email
六.SpringBoot集成实例系列-单数据源mongodb
七.SpringBoot集成实例系列-多数据源mongodb
八.SpringBoot集成实例系列-缓存redis
九.SpringBoot集成实例系列-数据库cassandra
十.SpringBoot集成实例系列-定时任务scheduler
十一.SpringBoot集成实例系列-消息队列kafka
十二.SpringBoot集成实例系列-消息推送websocket

本文阅读之前,小求认为您已经有一定的Spring、Mybatis和数据库基础。本文将从实例的角度来实现实现xml型单数据源mybatis。

1.实例需求

用户信息(用户名、别名、密码、性别、邮箱、创建时间),实现简单增删改查
见表语句:
CREATE TABLE `user` (  `id` bigint(20) NOT NULL AUTO_INCREMENT,  `nickname` varchar(20) DEFAULT NULL COMMENT '用户昵称',  `username` varchar(255) NOT NULL,  `email` varchar(128) DEFAULT NULL COMMENT '邮箱|登录帐号',  `passWord` varchar(32) DEFAULT NULL COMMENT '密码',  `regTime` datetime DEFAULT NULL COMMENT '创建时间',  `sex` varchar(32) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8;

2.技术要点

2.1     mybatis类型别名配置

<?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><typeAliases><typeAlias alias="Integer" type="java.lang.Integer" /><typeAlias alias="Long" type="java.lang.Long" /><typeAlias alias="HashMap" type="java.util.HashMap" /><typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" /><typeAlias alias="ArrayList" type="java.util.ArrayList" /><typeAlias alias="LinkedList" type="java.util.LinkedList" /></typeAliases></configuration>

mybatis配置详情见:http://www.mybatis.org/mybatis-3/zh/configuration.html

2.2     springboot集成mybatis的配置

配置文件详情见小求博文:Springboot集成配置文件大全
mybatis.config-locations:mybatis配置文件放置路径
mybatis.mapper-locations:mybatis对应mapper脚本映射路径
mybatis.type-aliases-package:mybatis对应实体包路径
###################mybatis配置########################################mybatis.config-locations=classpath:mybatis/mybatis-config.xmlmybatis.mapper-locations=classpath:mybatis/mapper/*.xmlmybatis.type-aliases-package=com.lm.entity

2.3     springboot单数据源配置

spring.datasource.driverClassName:数据源驱动类
spring.datasource.url:数据源url
spring.datasource.username:用户名
spring.datasource.password:密码
###################mysql数据源配置###############################################spring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.url = jdbc:mysql://192.168.32.128:3306/test?useUnicode=true&characterEncoding=utf-8spring.datasource.username = rootspring.datasource.password = root

2.4     springboot与mybatis集成设置

@MapperScan("com.lm.mapper")
SpringBoot启动时使用@MapperScan注解来扫描注入mybatis数据库接口类

3. 代码实现

3.1     项目目录结构


3.2     实体类UserEntity

package com.lm.entity;import java.util.Date;import com.lm.enums.SexEnums;/** * 用户信息 * @author liangming.deng * @date   2017年6月20日 * */public class UserEntity {/** * 逐渐 */private Long id;/** * 用户名 */private String userName;/** * 昵称 */private String nickName;/** * 密码 */private String passWord;/** * 注册时间 */private Date regTime;/** * 邮箱 */private String email;/** * 性别 */private SexEnums sexEnums;public UserEntity(){}public UserEntity(String userName, String nickName, String passWord, Date regTime, String email,SexEnums sexEnums) {super();this.userName = userName;this.nickName = nickName;this.passWord = passWord;this.regTime = regTime;this.email = email;this.sexEnums = sexEnums;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getNickName() {return nickName;}public void setNickName(String nickName) {this.nickName = nickName;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) {this.passWord = passWord;}public Date getRegTime() {return regTime;}public void setRegTime(Date regTime) {this.regTime = regTime;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public SexEnums getSexEnums() {return sexEnums;}public void setSexEnums(SexEnums sexEnums) {this.sexEnums = sexEnums;}}

3.3     mapper接口

package com.lm.mapper;import java.util.List;import com.lm.entity.UserEntity;/** * mybatis中mapper接口 * @author liangming.deng * @date   2017年6月21日 * */public interface UserMapper {List<UserEntity> getAll();UserEntity getUserById(Long id);void insert(UserEntity user);void update(UserEntity user);void delete(Long id);}

3.4     控制器Controller

@RestController:相当于@ResponseBody + @Controller合在一起的作用。
package com.lm.web;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.lm.entity.UserEntity;import com.lm.mapper.UserMapper;/** * 前端控制器 * @author liangming.deng * @date   2017年6月21日 * */@RestControllerpublic class UserController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/getUsers")public List<UserEntity> getUsers() {List<UserEntity> users = userMapper.getAll();return users;}@RequestMapping("/getUser")public UserEntity getUser(Long id) {UserEntity user = userMapper.getUserById(id);return user;}@RequestMapping("/add")public void save(UserEntity user) {userMapper.insert(user);}@RequestMapping(value = "update")public void update(UserEntity user) {userMapper.update(user);}@RequestMapping(value = "/delete/{id}")public void delete(@PathVariable("id") Long id) {userMapper.delete(id);}}

3.5     springboot启动器

package com.lm;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * 应用启动 *  * @author liangming.deng * @date 2017年6月20日 * */@SpringBootApplication@MapperScan("com.lm.mapper")public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}}

3.6     运行效果


4.代码地址

源代码:Github: https://github.com/a123demi/spring-boot-integration