1. 程式人生 > >建立springboot 標準工程(MyBatis)

建立springboot 標準工程(MyBatis)

實現目標:

建立一個簡單的資料庫demo,表名mach,id為自增,mach_no為字串

 

 建立Maven的jar工程,pom.xml內容如下

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <
modelVersion>4.0.0</modelVersion> <groupId>com.legion</groupId> <artifactId>standard</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</
artifactId> <version>1.5.2.RELEASE</version> </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-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</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.6</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.28</version> </dependency> </dependencies> </project>

建立常規的package

com.legion.controller

com.legion.dao

com.legion.pojo

com.legion.service

建立包com.legion,新建類MyBootDemo,其中有main函式

@SpringBootApplication
public class MyBootDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        SpringApplication.run(MyBootDemo.class,args);
    }

}

注意:其他包必須和springboot入口的package同級,或者處於下一級。

看到了有的工程在此處使用了

@ComponentScan(basePackages="XX.YY")
@MapperScan(basePackages="XX.YY.ZZ")

 

在src/main/resources建立application.properties檔案

#下面這一行指定Mapper xml檔案位置,發現不配置也可以
mybatis.mapper-locations=classpath:com/legion/dao/*.xml spring.datasource.url=jdbc:mysql://localhost:3306/demo spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=root spring.datasource.password=123456

 

下面的內容和標準的SSM區別不大,注意Mapper介面加上@Mapper註解。

 

com.leigon.controller中UserController.java的內容

@RestController
public class UserController {
    @Autowired
    private MachineService ms;
    @RequestMapping("/all")
    public List<Machine> findAll(){
        return ms.findAll();
    }
    
    @RequestMapping("/hello")
    public String show() {
        return "hello,world";
    }
    
}

com.legion.dao

MachineMapper.java

@Mapper
public interface MachineMapper {
    public List<Machine> findAll();
}

MachineMapper.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.legion.dao.MachineMapper">
    <select id="findAll" resultType="com.legion.pojo.Machine">
        select * from mach
    </select>

</mapper>

com.legion.pojo中的Machine.java

public class Machine {
    private int id;
    private String mach_no;
//getter and setter
...
}

com.legion.service介面和實現

public interface MachineService {
    public List<Machine> findAll();
}


@Service
public class MachineServiceImpl implements MachineService {
    
    @Autowired
    private MachineMapper machine;
    @Override
    public List<Machine> findAll() {
        return machine.findAll();
    }

}