SpringBoot整合Mybatis连接Mysql

  • Post author:
  • Post category:mysql



一、pom.xml依赖

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>1.5.7.RELEASE</version>

</parent>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.1.1</version>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.46</version>

</dependency>

</dependencies>

只需要这三个包,也必须要有这三个包,之前由于没有引mysql的包,一直报错


二、application.properties

server.port=8088

spring.datasource.url=jdbc:mysql://localhost:3306/yunlun

spring.datasource.username=root

spring.datasource.password=123

spring.datasource.driver-class-name=com.mysql.jdbc.Driver


mybatis.mapperLocations=classpath:mapper/*.xml

mybatis.typeAliasesPackage=com.entity

mapperLocations设置mybatis的mapper地址

typeAliasesPackage设置对应的实体位置


三、启动类

@SpringBootApplication

@MapperScan(“com.dao”)

public class Main {

public static void main(String[] args){

SpringApplication.run(Main.class, args);

}

}

之前没有加入@MapperScan注解,启动一直报错找不到dao,加入此注解后解决(但是在其他工程没有使用此注解也成功找到了dao,在这里就不行,不知道为什么)


四、Controller,service,serviceImp,dao,entity

@RestController

public class MainController {

@Autowired

private FileService fileService;

@RequestMapping(“/test”)

public void test(){


List<Record> list = fileService.getRecord();

Record record = list.get(0);

System.out.println(record.getContents());

}

}

public interface FileService {


public List<Record> getRecord();

}

@Service

public class FileServiceImp implements FileService {

@Autowired

private FileDao fileDao;

@Override

public List<Record> getRecord() {


return fileDao.getRecord();

}

}

public interface FileDao {


public List<Record> getRecord();

}

此处没什么需要注意的,和普通的Web工程结构一样,使用@Autowired自动注入,在Imp类使用@Service注解标记服务

五、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.dao.FileDao”>

<select id=”getRecord” resultType=”com.entity.Record”>

select * from hotcomment

</select>

</mapper>

namespace:命名空间,指定对应的dao类

id:对应dao类的方法

resultType:查询结果的类型,对应实体类


之前有一个大坑,浪费了我很多时间,就是在application中已经配置好了所有信息,但是启动就是报错,配置的信息不起作用,经上网查找解决

邮件方法:工程—>properties—>Source—>resources—>Excluded设置为None


以上就是在过程中遇到的问题及解决方法,记录下来,方便以后自己查看



版权声明:本文为cl135795680原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。