sprintboot+mybatis入门环境搭建

github地址 https://github.com/zs-neo/springboot-mybatis 欢迎star!

sprintboot+mybatis入门环境搭建

近期选用了springboot做后端的开发,记录一下配置环境的各种问题及步骤。项目选用idea工具开发。

一、整体环境

目录结构
在这里插入图片描述
数据库表
在这里插入图片描述
pom依赖
已经解决如下问题

  • druid和mysql冲突,更改为可兼容的版本号即可(如下)
  • com.mysql.jdbc.Driver被弃用,更改为8.0.11版本,同时修改连接配置为com.mysql.cj.jdbc.Driver
  • 各类springboot版本不兼容问题,如springboot1.5.6版本和2.1.0版本对其他依赖的兼容程度是不同的,如果出了依赖问题可能只能挨个删除依赖检验是否兼容。
<parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <!--<version>2.1.0.RELEASE</version>-->
      <version>1.5.6.RELEASE</version>
      <relativePath/>
  </parent>

  <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <java.version>1.8</java.version>
  </properties>

  <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
      </dependency>
      <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
      </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.11</version>
    </dependency>
      <!-- alibaba的druid数据库连接池 -->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.10</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-joda</artifactId>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-parameter-names</artifactId>
      </dependency>
      <!-- 分页插件 -->
      <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.1.2</version>
      </dependency>
      <!-- alibaba的druid数据库连接池 -->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.10</version>
      </dependency>
      <!-- 读取project文件 -->
      <dependency>
        <groupId>net.sf.mpxj</groupId>
        <artifactId>mpxj</artifactId>
        <version>7.1.0</version>
      </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

二、项目具体内容

springboot替代了下图的控制层和业务层,一个人干了springMVC和spring的活
在这里插入图片描述
controller(接请求)

@RestController
@RequestMapping("/go")
public class UserController {

  @Autowired
  private UserService userService;

  @RequestMapping("/hello")
  public String hello() {
    return "Hello Spring Boot!";
  }

  @RequestMapping("/all")
  public User getAll(){
    return userService.getAll();
  }

}

mapper(dao)
已解决的问题

  • @Mapper注解报错,是因为少导了依赖,或者导入的依赖缺失,重新导入或者比对上面的pom文件可找出缺失的依赖。
@Mapper
public interface UserMapper {

  public User getAll();

}

model(实体类)
先这么随意写…Entity和Component的区别请百度

@Component
public class User {

  private Integer id;
  private String userName;
  private String realName;
  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 getRealName() {
    return realName;
  }

  public void setRealName(String realName) {
    this.realName = realName;
  }

  public String getPassWord() {
    return passWord;
  }

  public void setPassWord(String passWord) {
    this.passWord = passWord;
  }
}

service(搞业务)
注意要加@Service注解,userMapper报错没关系,项目依然可以运行

@Service
public class UserService {

  @Autowired
  private UserMapper userMapper;

  public User getAll(){
    return userMapper.getAll();
  }

}

mapper.xml映射文件
在这里插入图片描述
UserMapper.xml文件要指明对应的mapper接口类

<?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.example.demo.mapper.UserMapper">

  <select id="getAll" resultType="com.example.demo.model.User">
    select * from user
  </select>
  
</mapper>

三、运行项目

配置springboot和数据库连接
在application.properties文件中添加如下部分

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
mybatis.mapper-locations=classpath:mybatis/*.xml

运行项目
要加MapperScan这个注解让它去扫mapper,不然报错。

@SpringBootApplication
@MapperScan(basePackages = {"com.example.demo.mapper"})
public class DemoApplication {

  public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值