13-SpringBoot整合MybatisPlus


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所有,如果有什么错误或者不足的地方请联系我,希望我们共同进步。

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从码农到码到成功

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值