SpringBoot整合Mybatis连接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


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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值