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


文章列表
本系列将通过实例分别实现Springboot集成mybatis(mysql),mail,mongodb,cassandra,scheduler,redis,kafka,shiro,websocket。
具体文章系列如下:
六.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>

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.xml
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
mybatis.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.Driver
spring.datasource.url = jdbc:mysql://192.168.32.128:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.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日
 *
 */
@RestController
public class UserController {

	@Autowired
	private 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.代码地址

 
 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值