Spring boot笔记5

 整合MyBatis

1. 加入依赖

需要在pom.xml加入以下依赖

<!-- 通用Mapper -->

<dependency>

<groupId>com.github.abel533</groupId>

<artifactId>mapper</artifactId>

<version>2.3.4</version>

</dependency>

<!-- 分页助手 -->

<dependency>

<groupId>com.github.pagehelper</groupId>

<artifactId>pagehelper</artifactId>

<version>3.7.5</version>

</dependency>

<dependency>

<groupId>com.github.jsqlparser</groupId>

<artifactId>jsqlparser</artifactId>

<version>0.9.1</version>

</dependency>


2. 修改配置文件

在application.properties添加配置

#spring集成Mybatis环境

#pojo别名扫描包

mybatis.type-aliases-package=cn.cnn.info.pojo

mybatis.mapper-locations=classpath:mapper/*Mapper.xml

mybatis.config-location=classpath:mybatis/SqlMapConfig.xml

#spring.datasource.type=com.jolbox.bonecp.BoneCPDataSource


在src\main\resources\mapper路径下加入UserMapper.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="cn.cnn.info.dao.UserMapper">

<select id="queryAll" resultType="user">

select * from user

</select>

</mapper>


加载通用Mapper和分页助手

<?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>

<!-- 分页助手 -->

<plugins>

<plugin interceptor="com.github.pagehelper.PageHelper">

<property name="dialect" value="mysql" />

<property name="rowBoundsWithCount" value="true" />

</plugin>


<!-- 通用Mapper -->

<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">

<property name="IDENTITY" value="MYSQL" />

<property name="mappers" value="com.github.abel533.mapper.Mapper" />

</plugin>

</plugins>

</configuration>



3. 编写Mapper

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Select;

import cn.cnn.info.pojo.User;


//extends com.github.abel533.mapper.Mapper<User>:需要继承通用Mapper

@Mapper

public interface UserMapper extends com.github.abel533.mapper.Mapper<User> {


@Select("select * from user where name like '%${value}%'")

public List<User> queryUserByName(String name);


// 使用UserMapper.xml配置文件

public List<User> queryAll();

}


4. 编写Service和Controller

Service编写

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;

import cn.cnn.info.dao.UserDao;

import cn.cnn.info.dao.UserMapper;

import cn.cnn.info.pojo.User;

import cn.cnn.info.service.UserService;


@Service

public class UserServiceImpl implements UserService {


@Autowired

private UserDao userDao;


@Autowired

private UserMapper userMapper;


@Override

public List<User> findAll() {

List<User> list = this.userDao.findAll();

return list;

}


@Override

public List<User> queryUserByName(String name) {

List<User> list = this.userMapper.queryUserByName(name);

return list;

}


// 调用使用UserMapper.xml的Mapper

@Override

public List<User> queryAll() {

List<User> list = this.userMapper.queryAll();

return list;

}


// 使用通用Mapper和分页助手

@Override

public List<User> queryUserByPage(Integer page, Integer rows) {

// 设置分页

PageHelper.startPage(page, rows);

// 查询数据

List<User> list = this.userMapper.select(null);

return list;

}

}


Controller编写

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 cn.cnn.info.pojo.User;

import cn.cnn.info.service.UserService;


@RestController

@RequestMapping("user")

public class UserControlelr {


@Autowired

private UserService userService;


@RequestMapping("list")

public List<User> queryUserAll() {

List<User> list = this.userService.findAll();

return list;

}


@RequestMapping("list/{name}")

public List<User> queryUserAll(@PathVariable String name) {

List<User> list = this.userService.queryUserByName(name);

return list;

}


@RequestMapping("list/query")

public List<User> queryUserAll2() {

List<User> list = this.userService.queryAll();

return list;

}


@RequestMapping("list/{page}/{rows}")

public List<User> queryUserAll(@PathVariable Integer page, @PathVariable Integer rows) {

List<User> list = this.userService.queryUserByPage(page, rows);

return list;

}


浏览器地址栏输入:http://127.0.0.1:8080/user/list/query

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容