SpringBoot集成mybatis

原创
2020/11/29 23:32
阅读数 56
  • 新建springboot项目,修改application.yml文件如下内容,添加数据库连接和mybatis扫描配置的路径
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=GMT%2B8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    
mybatis:
  typeAliasesPackage: com.pimee.model
  mapperLocations: classpath:mapper/**/*.xml
  • 新建model实体类
package com.pimee.model;

public class User {
	private Integer id;

	private String userName;

	private String password;

	private Integer age;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName == null ? null : userName.trim();
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password == null ? null : password.trim();
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}
}
  • 添加mapper
package com.pimee.mapper;

import com.pimee.model.User;

public interface UserMapper {
	
	int deleteByPrimaryKey(Integer id);

	int insert(User record);

	int insertSelective(User record);

	User selectByPrimaryKey(Integer id);

	int updateByPrimaryKeySelective(User record);

	int updateByPrimaryKey(User record);
}
  • 生成mapper对应的xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.pimee.mapper.UserMapper">
	<resultMap id="BaseResultMap" type="com.pimee.model.User">
		<id column="id" property="id" jdbcType="INTEGER" />
		<result column="user_name" property="userName"
			jdbcType="VARCHAR" />
		<result column="password" property="password"
			jdbcType="VARCHAR" />
		<result column="age" property="age" jdbcType="INTEGER" />
	</resultMap>
	<sql id="Base_Column_List">
		id, user_name, password, age
	</sql>
	<select id="selectByPrimaryKey" resultMap="BaseResultMap"
		parameterType="java.lang.Integer">
		select
		<include refid="Base_Column_List" />
		from user
		where id = #{id,jdbcType=INTEGER}
	</select>
	<delete id="deleteByPrimaryKey"
		parameterType="java.lang.Integer">
		delete from user
		where id = #{id,jdbcType=INTEGER}
	</delete>
	<insert id="insert" parameterType="com.pimee.model.User">
		insert into user (id, user_name, password,
		age)
		values (#{id,jdbcType=INTEGER}, #{userName,jdbcType=VARCHAR},
		#{password,jdbcType=VARCHAR},
		#{age,jdbcType=INTEGER})
	</insert>
	<insert id="insertSelective" parameterType="com.pimee.model.User">
		insert into user
		<trim prefix="(" suffix=")" suffixOverrides=",">
			<if test="id != null">
				id,
			</if>
			<if test="userName != null">
				user_name,
			</if>
			<if test="password != null">
				password,
			</if>
			<if test="age != null">
				age,
			</if>
		</trim>
		<trim prefix="values (" suffix=")" suffixOverrides=",">
			<if test="id != null">
				#{id,jdbcType=INTEGER},
			</if>
			<if test="userName != null">
				#{userName,jdbcType=VARCHAR},
			</if>
			<if test="password != null">
				#{password,jdbcType=VARCHAR},
			</if>
			<if test="age != null">
				#{age,jdbcType=INTEGER},
			</if>
		</trim>
	</insert>
	<update id="updateByPrimaryKeySelective"
		parameterType="com.pimee.model.User">
		update user
		<set>
			<if test="userName != null">
				user_name = #{userName,jdbcType=VARCHAR},
			</if>
			<if test="password != null">
				password = #{password,jdbcType=VARCHAR},
			</if>
			<if test="age != null">
				age = #{age,jdbcType=INTEGER},
			</if>
		</set>
		where id = #{id,jdbcType=INTEGER}
	</update>
	<update id="updateByPrimaryKey"
		parameterType="com.pimee.model.User">
		update user
		set user_name = #{userName,jdbcType=VARCHAR},
		password = #{password,jdbcType=VARCHAR},
		age = #{age,jdbcType=INTEGER}
		where id = #{id,jdbcType=INTEGER}
	</update>
</mapper>

添加service接口和service实现类

package com.pimee.service;

import com.pimee.model.User;

public interface IUserService {
	
	public User getUserById(int userId);

	boolean addUser(User record);
}
package com.pimee.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.pimee.mapper.UserMapper;
import com.pimee.model.User;
import com.pimee.service.IUserService;

@Service
public class UserService implements IUserService {

	@Resource
	private UserMapper userDao;

	public User getUserById(int userId) {
		return userDao.selectByPrimaryKey(userId);
	}

	public boolean addUser(User record) {
		boolean result = false;
		try {
			userDao.insertSelective(record);
			result = true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
}
  • 添加web端入口测试类
package com.pimee.controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.pimee.model.User;
import com.pimee.service.IUserService;

@Controller
@RequestMapping("/user")
public class UserController {
	@Resource
	private IUserService userService;

	@RequestMapping("/get")
	@ResponseBody
	public Object get(HttpServletRequest request, Model model) {
		int userId = Integer.parseInt(request.getParameter("id"));
		User user = this.userService.getUserById(userId);
		return user;
	}

}
  • springboot入口启动类
package com.pimee;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * mybatis入门
 * 
 * @author shawbo-pc
 *
 */

@MapperScan("com.pimee.mapper")
@SpringBootApplication
public class SpringMybatisApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringMybatisApplication.class, args);
	}
}
  • 最后附上整个项目的pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>com.pimee</groupId>
		<artifactId>boot-spring</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>boot-mybatis</artifactId>

	<dependencies>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.1.2</version>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>

	</dependencies>
</project>

最后启动项目验证结果,请求如下链接:http://localhost:8080/user/get?id=1 可以有响应的json结果。

demo项目的地址:https://gitee.com/pianjiao006/boot-spring/tree/master/boot-mybatis

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部