一.创建项目page_demo
二.添加依赖
<!-- 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),添加配置源信息
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&allowPublicKeyRetrieval=true
username: root
password: 123456
#mybatisPlus相关配置
mybatis-plus:
mapper-locations: classpath:mappers/*.xml
configuration:
# 配置MyBatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 统一配置包名(实体类)
type-aliases-package: demo.entity
四.创建类
4.1创建demo包 并在包根目录向创建Demo主运行类(添加注解)
@SpringBootApplication:是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。
@MapperScan("demo.dao"):在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类(demo和dao都是包)
添加位置:主方法类上面
4.2创建包和类
4.2.1 在demo包下创建Demo类,加入主方法,作为程序的入口
注意:Demo在demo根目录
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);
}
}
4.2.2在dame包下创建entity包,创建User类,封装实体
package demo.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data // getter setter()方法 tostring()
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String userName;
private String passwd;
private String createDate;
}
4.2.1添加配置文件UsermApper.xml,添加实体User与数据库t_user映射
<?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">
<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>
</mapper>
column="数据库列名" property="实体类对应"
resultMap 元素定义了一个 cargo,它的属性 id 代表它的标识,type 代表使用哪种类作为其映射的类,可以是别名或者全限定名。id 是作为唯一标识的,当和其他对象实例对比的时候,这个 id 很有用,尤其是应用到缓存和内嵌的结果映射。
property: 映射数据库列的字段或属性,如果 JavaBean 的属性与给定的名称匹配,就会使用匹配的名字,否则 MyBatis 将搜索给定名称的字段,两种情况下你都可以使用逗点的属性形式,比如,你可以映射到 “”username:,也可以映射到 “address.street.number”
4.2.2在dao包下创建UserMapper抽象类,添加要实现的方法(模板);
DAO持久层,也叫数据访问层,实现对数据库的访问
package demo.dao;
import demo.entity.User;
import java.util.List;
public interface UserMapper {
List<User> selectAll();
}
4.2.3 在dao包下创建controller包,创建UserController类
@RestController注解,代表返回的是json格式的数据,这个注解是Spring4之后新加的注解,原来返回json格式的数据需要@ResponseBody配合@Controller一起使用;如果我们在项目中使用的是@Conrtroller注解的话,不加@Response注解,则当直接返回一个字符串的时候,就好比返回的是一个模板页面,类似我们返回一个jsp页面一样。所以我们需要加上模板引擎(这种返回html一类的模板的开发方式现在一般不会再用了,因为现在都是前后端分离式的开发,后台服务器一般只需要返回json格式的数据即可)
package demo.controller;
/**
* 测试类
*/
import demo.dao.UserMapper;
import demo.entity.User;
import demo.servise.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
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);
}
}
4.2.4.在servise包下创建IUserServise接口和UserServiceImpl类,实现抽象接口,实现具体业务
业务层:(Service)调用DAO层,实现解耦合目的,虽然不要它也可以运行项目,但是会使项目后期的延展和维护变得困难
接口IUserService
package demo.servise;
import demo.entity.User;
import java.util.List;
public interface IUserService {
List<User> queryUserList(int pageIndex,int pageSize);
}
接口实现类UserServiseImpl
@Service注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。
package demo.servise.impl;
import demo.dao.UserMapper;
import demo.entity.User;
import demo.servise.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiseImpl implements IUserService {
@Autowired(required = false)
private UserMapper userMapper;
@Override
public List<User> queryUserList(int pageIndex,int pageSize) {
List<User> users = userMapper.selectAll((pageIndex-1)*pageSize,pageSize);
return users;
}
}