引入maven依赖
<!-- 整合MyBatis -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--mapper-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.4</version>
</dependency>
<!--pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
在application.yml文件中添加配置
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
username:
password:
driver-class-name: com.mysql.jdbc.Driver
druid:
initial-size: 1
min-idle: 1
max-active: 20
test-on-borrow: true
stat-view-servlet:
allow: true
# mybatis配置
mybatis:
type-aliases-package: com.xiangty.pojo
mapper-locations: classpath:mapper/*.xml
# 分页插件配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
数据库数据
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(32) NOT NULL AUTO_INCREMENT,
`password` varchar(32) DEFAULT '' COMMENT '密码',
`username` varchar(32) DEFAULT '' COMMENT '用户名',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('1', '123456', '管理员');
INSERT INTO `user` VALUES ('2', '123456', '路人甲');
INSERT INTO `user` VALUES ('3', 'testpassword', 'testname');
INSERT INTO `user` VALUES ('12', 'demo4', 'demo4');
INSERT INTO `user` VALUES ('13', 'insert4', 'insert4');
INSERT INTO `user` VALUES ('24', 'password0_test', 'username0_test');
INSERT INTO `user` VALUES ('25', 'password1', 'username1');
INSERT INTO `user` VALUES ('26', 'password2', 'username2');
INSERT INTO `user` VALUES ('27', 'password3', 'username3');
INSERT INTO `user` VALUES ('28', 'password4', 'username4');
INSERT INTO `user` VALUES ('29', 'password5', 'username5');
INSERT INTO `user` VALUES ('30', 'password6', 'username6');
INSERT INTO `user` VALUES ('31', 'password7', 'username7');
INSERT INTO `user` VALUES ('32', 'password8', 'username8');
INSERT INTO `user` VALUES ('33', 'password9', 'username9');
项目结构
UserMapper.java
import java.util.List;
import org.springframework.stereotype.Repository;
import com.xiangty.pojo.User;
@Repository
public interface UserMapper {
public User queryUserById(Integer id);
public List<User> queryUserListPage();
}
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="com.xiangty.mapper.UserMapper" >
<!-- 查询简单的用户信息 -->
<select id="queryUserById" resultType="com.xiangty.pojo.User" parameterType="java.lang.Integer" >
select * from user
where
id = #{id,jdbcType=VARCHAR}
</select>
<select id="queryUserListPage" resultType="com.xiangty.pojo.User">
select * from user
order by id desc
</select>
</mapper>
UserService.java
import java.util.List;
import com.xiangty.pojo.User;
public interface UserService {
public User queryUserById(Integer id);
public List<User> queryUserListPage();
}
UserServiceImpl.java
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User queryUserById(Integer id) {
return userMapper.queryUserById(id);
}
@Override
public List<User> queryUserListPage() {
return userMapper.queryUserListPage();
}
}
修改User.java(此处是我前面的示例中User.java和现在user表结构有所不一致,所以修改)
public class User {
public User() {
}
private Integer id;
private String username;
private String password;
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;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}
UserController.java
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xiangty.common.Result;
import com.xiangty.pojo.User;
import com.xiangty.service.UserService;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
// 测试是否可以正常跳转
@RequestMapping("/getTest")
@ResponseBody
public User getUser() {
User u = new User();
u.setUsername("测试UserName");
u.setPassword("passWord");
return u;
}
@RequestMapping("/queryUserListPage/{page}")
@ResponseBody
public Result queryUserListPage(@PathVariable(value = "page") Integer page) {
// 每页的条数
Integer pageSize = 5;
PageHelper.startPage(page, pageSize);
List<User> userList = userService.queryUserListPage();
PageInfo<User> pageInfo = new PageInfo<User>(userList);
if (userList == null) {
System.out.println("没有查到用户信息");
return Result.ok("没有查到用户信息");
} else {
userList.forEach(user -> System.out.println("查询的用户信息:" + user));
return Result.ok(pageInfo);
}
}
}
SpringbootStarterApplication.java 添加MapperScan和ComponentScan注解
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import tk.mybatis.spring.annotation.MapperScan;
@SpringBootApplication
//扫描 mybatis mapper 包路径
@MapperScan(basePackages = "com.xiangty.mapper")
//扫描 所有需要的包, 包含一些自用的工具类包 所在的路径
@ComponentScan(basePackages= {"com.xiangty"})
public class SpringbootStarterApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootStarterApplication.class, args);
}
}
启动项目后,测试项目是否可以正常跳转
http://localhost:8088/user/getTest
访问第二页数据
http://localhost:8088/user/queryUserListPage/2
IDE控制台输出: