目录
七、通过ResultMap建立User实体和t_user表的映射关系
12.3配置文件resources/application.yml
12.4 Mapper文件 resources/mappers/UserMapper.xml
12.7DAO类 java/demo/dao/UserMapper.java
12.9 controller java/demo/controller/Usercontroller.java
准备数据库
实行效果如下图所示:
一、创建项目
- 添加application.yml配置文件
- 添加启动类
- 在resources中添加mappers文件夹
- 在java中添加entity、dao、service、controller包
架构如下图所示
添加application.yml配置文件
二、在pom.xml中添加依赖
依赖源码:
<!-- MyBatisPlus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--LomBok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <optional>true</optional>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
三、在application.yml中配置数据源
此处代码代表路径,对应的是
这里正常写应该是demo.entity.User
因为配置文件中已经加入了demo.entity,所以此处可以不写,只写User即可
配置文件源码:
server:
port: 8070
spring:
# 配置数据源信息
datasource:
# 配置数据源类型
type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库信息
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/practice?characterEncoding=utf-8&useSSL=false
username: root
password: 123456
#mybatisPlus相关配置
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
type-aliases-package: demo.entity
configuration:
# 配置MyBatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
四、在启动类Demo.java中扫描dao
package demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("demo.dao")
public class Demo {
public static void main(String[] args) {
SpringApplication.run(Demo.class,args);
}
}
五、实体层
package demo.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String userName;
private String passwd;
private String createDate;
}
六、创建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="demo.dao.UserMapper">
</mapper>
七、通过ResultMap建立User实体和t_user表的映射关系
代码如下:
<!-- 建立映射,将数据库中t_user表和java实体User建立关联 -->
<resultMap id="userResult" type="User">
<result column="id" property="id"/>
<result column="user_name" property="userName"/>
<result column="passwd" property="passwd"/>
<result column="create_date" property="createDate"/>
</resultMap>
八、在UserMapper中添加查询所有用户的方法
注意:UserMapp是为mappers文件夹中UserMapper.xml服务
8.1UserMapper.java
package demo.dao;
import demo.entity.User;
import java.util.List;
public interface UserMapper {
public List<User> selectAll(int pageIndex,int pageSize);
}
8.2UserMapper.xml
<sql id="sql_temp">
select id,user_name,passwd,create_date from t_user
</sql>
<select id="selectAll" resultMap="userResult">
<include refid="sql_temp"></include>limit #{pageIndex},#{pageSize}
</select>
十、 在IUserService中添加业务方法
IUserService接口
代码如下:
package demo.service;
import demo.entity.User;
import java.util.List;
public interface IUserService {
//pageIndex为页码,pageSize为一页的个数
public List<User> queryUserList(int pageIndex,int pageSize);
}
UserServiceImpl实现类
代码如下:
package demo.service.Impl;
import demo.dao.UserMapper;
import demo.entity.User;
import demo.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
@Autowired(required = false)
private UserMapper userMapper;
@Override
public List<User> queryUserList(int pageIndex,int pageSize) {
List<User> list = userMapper.selectAll((pageIndex-1)*pageSize,pageSize);
return list;
}
}
十一、在UserController中测试
代码如下:
package demo.controller;
import demo.dao.UserMapper;
import demo.entity.User;
import demo.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/user")
public class Usercontroller {
@Autowired
private IUserService userService;
@RequestMapping("/list")
public List<User> findUserList(int pageIndex,int pageSize) {
return userService.queryUserList(pageIndex,pageSize);
}
}
十二、源代码
12.1架构图
12.2依赖pom.xml
<!-- MyBatisPlus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!--LomBok依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <optional>true</optional>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
12.3配置文件resources/application.yml
server:
port: 8080
spring:
# 配置数据源信息
datasource:
# 配置数据源类型
type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库信息
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/practice?characterEncoding=utf-8&useSSL=false
username: root
password: 123456
#mybatisPlus相关配置
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
type-aliases-package: demo.entity
configuration:
# 配置MyBatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
12.4 Mapper文件 resources/mappers/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="demo.dao.UserMapper">
<!--建立映射,将数据库中t_user表盒java实体User建立关联-->
<resultMap id="userResult" type="User">
<!-- column是数据库里面的字段名,property是实体类里面的字段名-->
<result column="id" property="id"></result>
<result column="user_name" property="userName"></result>
<result column="passwd" property="passwd"></result>
<result column="create_date" property="createDate"></result>
</resultMap>
<sql id="sql_temp">
select id,user_name,passwd,create_date from t_user
</sql>
<select id="selectAll" resultMap="userResult">
<include refid="sql_temp"></include>limit #{pageIndex},#{pageSize}
</select>
</mapper>
12.5 实现类java/demo/Demo.java
package demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("demo.dao")
public class Demo {
public static void main(String[] args) {
SpringApplication.run(Demo.class,args);
}
}
12.6 实体类demo/entity/User.java
package demo.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String userName;
private String passwd;
private String createDate;
}
12.7DAO类 java/demo/dao/UserMapper.java
package demo.dao;
import demo.entity.User;
import java.util.List;
public interface UserMapper {
public List<User> selectAll(int pageIndex,int pageSize);
}
12.8 服务类 java/demo/service
接口
package demo.service;
import demo.entity.User;
import java.util.List;
public interface IUserService {
//pageIndex为页码,pageSize为一页的个数
public List<User> queryUserList(int pageIndex,int pageSize);
}
service类
package demo.service.Impl;
import demo.dao.UserMapper;
import demo.entity.User;
import demo.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements IUserService {
@Autowired(required = false)
private UserMapper userMapper;
@Override
public List<User> queryUserList(int pageIndex,int pageSize) {
List<User> list = userMapper.selectAll((pageIndex-1)*pageSize,pageSize);
return list;
}
}
12.9 controller java/demo/controller/Usercontroller.java
package demo.controller;
import demo.dao.UserMapper;
import demo.entity.User;
import demo.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/user")
public class Usercontroller {
@Autowired
private IUserService userService;
@RequestMapping("/list")
public List<User> findUserList(int pageIndex,int pageSize) {
return userService.queryUserList(pageIndex,pageSize);
}
}