0. 最终的代码层级结构:
1. pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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>autonavi.poi.qa</groupId>
<artifactId>my-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<!--定义公共资源版本 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<mybatis.version>1.3.1</mybatis.version>
<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>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-autoconfigure</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.5</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. TesterMan.java
package my.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages={"my.demo.**"})
@MapperScan("my.demo.mapper.**")
public class TesterMan{
public static void main(String[] args) {
SpringApplication.run(TesterMan.class,args);
}
}
3. DemoController.java
package my.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import my.demo.service.DemoService;
@Controller
@RequestMapping(value="/qa")
public class DemoController {
@Autowired
private DemoService demoService;
@RequestMapping("/likeName")
@ResponseBody
public List likeName(String name) {
return demoService.likeName(name);
}
}
4. DemoService.java
package my.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import my.demo.mapper.DemoMapper;
@Service
public class DemoService {
@Autowired
private DemoMapper demoMapper;
public List likeName(String name) {
return demoMapper.likeName(name);
}
}
5. DemoMapper
package my.demo.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Select;
public interface DemoMapper {
@Select("select * from Demo where name = #{name}")
public List likeName(String name);
@Select("select * from Demo where id = #{id}")
public DemoMapper getById(long id);
@Select("select name from Demo where id = #{id}")
public String getNameById(long id);
}
6. application.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://ip:port/dbname
spring.datasource.username=username
spring.datasource.password=password
7. TestcaseDriver.java
package my.demo;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
@SpringBootTest(classes={TesterMan.class},webEnvironment = WebEnvironment.RANDOM_PORT)
public class TestcaseDriver extends AbstractTestNGSpringContextTests{
}
8. DemoTestcase.java
package my.demo.abc;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.annotations.Test;
import my.demo.TestcaseDriver;
import my.demo.service.DemoService;
public class DemoTestcase extends TestcaseDriver {
@Autowired
private DemoService demoService;
@Test
public void demoF() {
System.err.println(demoService.likeName("abc"));
}
}