基础开发框架搭建1---springbooot集成mybatis
基础开发框架搭建-springboot集成mybatis
1.项目结构
先使用idea创建最基础的spingboot项目,建好如下文件目录。
--src
--main
--java
--com.springboot.merge
--user /* 模块名称 */
--controller /* controller层 */
--dto /* dto实体类层,也可叫做domain */
--mapper /* mappe接口层,也可叫做dao,与/resources/mapper/下的文件映射 */
--service /* service逻辑处理类层 */
--resources
--mapper /* 存放mybatis XML文件 */
--user /* 模块名称 */
2.添加mysql连接、mybatis依赖
<!-- mysql依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
整个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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.springboot</groupId>
<artifactId>merge</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>merge</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--springboot-web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.配置
server:
port: 8081
spring:
# 数据源/数据库配置
datasource:
url: jdbc:mysql://127.0.0.1:3306/sprinngbootmerge?useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
# mybatis配置
mybatis:
type-aliases-package: com.springboot.merge.*.dto # 指向实体包路径
mapper-locations: classpath*:/mapper/**/*.xml # 指向mapper.xml文件的位置:模块名/mapper/*.xml
4.dto实体类
在com.springboot.merge.user.dto下新建UserTest类
package com.springboot.merge.user.dto;
/**
* @ClassName UserTest
* @description 测试实体类
* @author [email protected]
* @date 19-3-31 下午3:03
* @version 1.0
* @since JDK 1.8
*/
public class UserTest {
private Long userId;
private String userName;
private String userPassword;
public Long getUserId() { return userId; }
public void setUserId(Long userId) { this.userId = userId; }
public String getUserName() { return userName; }
public void setUserName(String userName) { this.userName = userName; }
public String getUserPassword() { return userPassword; }
public void setUserPassword(String userPassword) { this.userPassword = userPassword; }
}
5.mapper接口
在com.springboot.merge.user.mapper下新建UserTestMapper接口。
接口上加@Mapper注解;
package com.springboot.merge.user.mapper;
import com.springboot.merge.user.dto.UserTest;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @ClassName UserTestMapper
* @description 测试类接口
* @author [email protected]
* @date 19-4-14 下午4:29
* @version 1.0
* @since JDK 1.8
*/
@Mapper
public interface UserTestMapper {
List<UserTest> userTestInfo();
}
在启动类MergeApplication上加扫描配置mappe接口文件位置后可不用加@Mapper注解,此两种方式选一即可。
6.mapper.xml文件
在resources/mapper/user下新建UserTestMapper.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.springboot.merge.user.mapper.UserTestMapper">
<resultMap id="BaseMapper" type="com.springboot.merge.user.dto.UserTest">
<id column="user_id" jdbcType="INTEGER" property="userId"/>
<result property="userName" jdbcType="VARCHAR" column="user_name"/>
<result property="userPassword" jdbcType="VARCHAR" column="user_password"/>
</resultMap>
<!--查询信息-->
<select id="userTestInfo" resultMap="BaseMapper">
select * from USERTEST
</select>
</mapper>
7.service逻辑处理类
在com.springboot.merge.user.service下新建UserTestService类。
package com.springboot.merge.user.service;
import com.springboot.merge.user.dto.UserTest;
import com.springboot.merge.user.mapper.UserTestMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @ClassName UserTestService
* @description 测试Service类
* @author [email protected]
* @date 19-3-31 下午3:31
* @version 1.0
* @since JDK 1.8
*/
@Service
public class UserTestService {
@Autowired
private UserTestMapper mapper;
public List<UserTest> queryUserTestInfo(){
return mapper.userTestInfo();
}
}
8.controller接口访问类
在com.springboot.merge.user.controller下新建UserTestController类。
package com.springboot.merge.user.controller;
import com.springboot.merge.user.dto.UserTest;
import com.springboot.merge.user.service.UserTestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @ClassName UserTestController
* @description 测试控制类
* @author [email protected]
* @date 19-3-31 下午3:36
* @version 1.0
* @since JDK 1.8
*/
@RestController
@RequestMapping("")
public class UserTestController {
@Autowired
private UserTestService service;
@GetMapping(value = "/user/test/info/query", produces="application/json")
public List<UserTest> queryUserTestInfo(){
return service.queryUserTestInfo();
}
}
9.项目结构
9.启动测试
10.项目地址
后面会在此基础上集成一些基础框架
https://github.com/hellozhaoxudong/springbootMerge