13-SpringBoot-MybatisPlus整合
一、创建Maven项目并导入需要用到的jar包
<!--parent表示继承父级项目的jar包 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<!--指定JDK版本号 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<!--jar包依赖,一般引入第三方依赖 -->
<dependencies>
<!-- springboot 依赖的jar包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- mybatis-plus依赖的jar包 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<!-- Lombok:简化JavaBean。如get/set/toString等方法的编写。 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
</dependencies>
<!--绑定直接maven指令 -->
<build>
<plugins>
<!-- 红色内容表示 没有主清单问题的解决方法,添加插件 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
二、spring boot数据源配置
server.port=8091
server.context-path=/
#mysql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///yh?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
#mybatis-plus
mybatis-plus.mapper-locations=classpath:mappers/*.xml
mybatis-plus.type-aliases-package=com.jt.pojo
三、创建dao接口的映射文件DoorMapper.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.jt.dao">
</mapper>
四、创建SpringBoot启动类SpringBootRun.java类
@SpringBootApplication
public class SpringBootRun {
public static void main(String[] args) {
SpringApplication.run(SpringBootRun.class, args);
}
}
五、创建数据库对应的实体类com.jt.entity.Door并实现Model<Door>接口
@Data
@EqualsAndHashCode(callSuper=true)
@Accessors(chain=true)
@TableName(value="tb_door")
@Component
public class Door extends Model<Door>{
/**
*
*/
private static final long serialVersionUID = -617598147423699680L;
//value与数据库主键列名一致,若实体类属性名与表主键列名一致可省略value
@TableId(type=IdType.AUTO)
private Integer id;
//若没有开启驼峰命名,或者表中列名不符合驼峰规则,可通过该注解指定数据库表中的列名,exist标明数据表中有没有对应列
@TableField(value ="door_name",exist=true)
private String doorName;
private String tel;
@Override
protected Serializable pkVal() {
// TODO Auto-generated method stub
return id;
}
}
六、创建com.jt.collection.DoorCollection.java类
@Controller
public class DoorCollection {
@Autowired
private DoorService doorService;
@Autowired
private Door door;
/**
* SpringMVC的架构运行
* @param id
* @return
* @throws JsonProcessingException
*/
@RequestMapping("/selectDoor")
@ResponseBody
public String selectDoor(Integer id) throws JsonProcessingException{
ObjectMapper om = new ObjectMapper();
Door door = doorService.findById(id);
String doosJson = om.writeValueAsString(door);
return doosJson;
}
/**
* 省去service层和mapper层,直接注入实体类对象
* @return
* @throws JsonProcessingException
*/
@RequestMapping("/selectDoors")
@ResponseBody
public String selectDoors() throws JsonProcessingException {
ObjectMapper om = new ObjectMapper();
List<Door> doors = door.selectAll();
String doosJson = om.writeValueAsString(doors);
return doosJson;
}
}
七、创建com.jt.service.DoorService.java接口
public interface DoorService {
Door findById(Integer id);
}
八、创建com.jt.serviceImpl.DoorServiceImpl.java实现类
@Service
public class DoorServiceImpl implements DoorService {
@Autowired
private DoorDao doorDao;
@Override
public Door findById(Integer id) {
Door door = doorDao.selectById(id);
return door;
}
}
九、创建com.jt.dao.DoorDao接口并实现BaseMapper<Door>接口
@Mapper
public interface DoorDao extends BaseMapper<Door>{
}
十、数据库数据可以更改,我把我的数据库数据的SQL放到如下:
DROP TABLE IF EXISTS `tb_door`;
CREATE TABLE `tb_door` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`door_name` varchar(255) DEFAULT NULL,
`tel` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of tb_door
-- ----------------------------
INSERT INTO `tb_door` VALUES ('1', '大钟寺北三环店', '010-47472723');
INSERT INTO `tb_door` VALUES ('2', '火车南站店', '010-83838718');
INSERT INTO `tb_door` VALUES ('3', '永和大王(北三环西路店)', '010-62112313');
INSERT INTO `tb_door` VALUES ('4', '沃尔玛(赣州大道店)', '0593-99991111');
INSERT INTO `tb_door` VALUES ('5', '肯德基(西乡商会大厦店)', '0795-88889999');
运行效果MVC模式:
运行效果非MVC模式:
作者:Darren
电话:15110448224
QQ:603026148
以上内容归Darren所有,如果有什么错误或者不足的地方请联系我,希望我们共同进步。