《Java从入门到放弃》框架入门篇:SpringBoot+mybatis搭建三层架构项目

本篇主要讲解基于SpringBoot+mybatis实现三层架构项目。

三层架构主要包括:表示层,业务层,数据访问层,还有实体类层。

早期的SSM框架中,mybatis的使用比较麻烦,需要配置自己的XML文件,DAO层通过接口映射XML配置等。虽然开发方提供了generator可以自动生成实体类和DAO文件,但没有在根本上改变配置上的复杂度。

但随着springboot的出现,springboot+mybatis可以完全注解不用配置文件,也可以轻松上手写代码了。这种方式等下篇文章再做介绍,本篇主要是把SSM项目改版成Springboot+mybatis项目。

OK,在前一篇文章的基础上继续。

第一步、修改pom.xml文件,添加mysql数据库和mybatis相关。

<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>1.5.4.RELEASE</version>
    </parent>
    <groupId>com.pxy</groupId>
    <artifactId>BlogManager</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <properties>
        <!-- 设置字符集 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- 设置Java版本 -->
        <java.version>1.7</java.version>
    </properties>
    <dependencies>
        <!-- 对Web开发的支持,包含tomcat等Web开发特性 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 使用MySql数据库 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- 引入mybatis -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- DevTools in Spring Boot 项目热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!-- 如果直接Main启动spring,以下plugin必须添加。-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

第二步、在src/main/java中添加以下三层相关包。

com.pxy.controller:控制器

com.pxy.dao:数据访问层

com.pxy.entity:实体类

com.pxy.service:业务层

com.pxy.test:启动APP

第三步、使用generator生成实体类和DAO层,并复制到项目中。

第四步、在src/main/resources下添加application.properties或application.yml文件对APP进行配置,spring.datasource配置好后,SqlSesisonFactory、Mapper等都会自动注入。

application.properties写法:

spring.devtools.restart.enabled=true
spring.devtools.restart.additional-paths=src/main/java
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/blogdb?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=root

mybatis.type-aliases-package=com.pxy.entity
mybatis.mapperLocations=classpath:com.pxy.dao/*.xml

application.yml写法(注意缩进):

spring:   
    devtools:
        restart:
            enabled: true   
            additional-paths: src/main/java  
    datasource:
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/blogdb?characterEncoding=UTF-8
        username: root
        password: root

mybatis:
    type-aliases-package: com.pxy.entity
    mapperLocations: classpath:com.pxy.dao/*.xml

推荐使用application.yml的写法。

第五步、编写Service层代码、Controller代码和启动APP类代码。

Service代码:

@Service

@Service
public class AuthorService {
	@Autowired
	private AuthorMapper authorMapper;
	
	public Author findById(int id){
		return authorMapper.selectByPrimaryKey(id);
	}
}

Controller代码:

//spring4里的注解,@RestController是@ResponseBody和@Controller的缩写
@RestController
public class AuthorController {
	@Autowired
	private AuthorService authorService;
	
	@RequestMapping("/hello")
	public String hello(){
		Author author = authorService.findById(1);
		return author.getUsername();
	}
}

App代码:

@SpringBootApplication(scanBasePackages={"com.pxy.*"})    //表示扫描com.pxy下所有包
@MapperScan("com.pxy.dao")	//表示对mapper扫描
public class App {

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

第六步、启动项目,并访问localhost:8080/hello。

 

 

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值