Springboot 整合 Mybatis 的完整 Web 案例

153 篇文章 0 订阅 ¥99.90 ¥99.00

原文首发于bysocket

新年第一篇 Springboot 技术文诞生。泥瓦匠准备写写 Springboot 相关最佳实践。一方面总结下一些 Springboot 相关,一方面和大家交流交流 Springboot 框架。

现在业界互联网流行的数据操作层框架 Mybatis,下面详解下 Springboot 如何整合 Mybatis ,这边没有使用 Mybatis Annotation 这种,是使用 xml 配置 SQL。因为我觉得 SQL 和业务代码应该隔离,方便和 DBA 校对 SQL。二者 XML 对较长的 SQL 比较清晰。

一、运行 springboot-mybatis 工程

git clone 下载工程  springboot-learning-example ,项目地址见  GitHub。下面开始运行工程步骤(Quick Start):
1.数据库准备
a.创建数据库 springbootdb:
CREATE DATABASE springbootdb;
b.创建表 city :(因为我喜欢徒步)
DROP TABLE IF EXISTS  `city`;
CREATE TABLE `city` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市编号',
  `province_id` int(10) unsigned  NOT NULL COMMENT '省份编号',
  `city_name` varchar(25) DEFAULT NULL COMMENT '城市名称',
  `description` varchar(25) DEFAULT NULL COMMENT '描述',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
c.插入数据

 

INSERT city VALUES (1 ,1,'温岭市','BYSocket 的家在温岭。');
2. 项目结构介绍
项目结构如下图所示:
org.spring.springboot.controller – Controller 层
org.spring.springboot.dao – 数据操作层 DAO
org.spring.springboot.domain – 实体类
org.spring.springboot.service – 业务逻辑层
Application – 应用启动类
application.properties – 应用配置文件,应用启动会自动读取配置
3.改数据库配置
打开 application.properties 文件, 修改相应的数据源配置,比如数据源地址、账号、密码等。(如果不是用 MySQL,自行添加连接驱动 pom,然后修改驱动名配置。)
4.编译工程
在项目根目录 springboot-learning-example,运行 maven 指令:
mvn clean install
5.运行工程

右键运行 Application 应用启动类的 main 函数,然后在浏览器访问:

http://localhost:8080/api/city?cityName=温岭市
可以看到返回的 JSON 结果:
{
    "id": 1,
    "provinceId": 1,
    "cityName": "温岭市",
    "description": "我的家在温岭。"
}
如图:

二、springboot-mybatis 工程配置详解

1.pom 添加 Mybatis 依赖
<!-- Spring Boot Mybatis 依赖 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis-spring-boot}</version>
</dependency>
mybatis-spring-boot-starter 工程依赖如图:
2.在 application.properties 应用配置文件,增加 Mybatis 相关配置
## Mybatis 配置
mybatis.typeAliasesPackage=org.spring.springboot.domain
mybatis.mapperLocations=classpath:mapper/*.xml
mybatis.typeAliasesPackage 配置为 org.spring.springboot.domain,指向实体类包路径。mybatis.mapperLocations 配置为 classpath 路径下 mapper 包下,* 代表会扫描所有 xml 文件。
mybatis 其他配置相关详解如下:
mybatis.config = mybatis 配置文件名称
mybatis.mapperLocations = mapper xml 文件地址
mybatis.typeAliasesPackage = 实体类包路径
mybatis.typeHandlersPackage = type handlers 处理器包路径
mybatis.check-config-location = 检查 mybatis 配置是否存在,一般命名为 mybatis-config.xml
mybatis.executorType = 执行模式。默认是 SIMPLE
3.在 Application 应用启动类添加注解 MapperScan
Application.java 代码如下:
/**
 * Spring Boot 应用启动类
 *
 * Created by bysocket on 16/4/26.
 */
// Spring Boot 应用的标识
@SpringBootApplication
// mapper 接口类扫描包配置
@MapperScan("org.spring.springboot.dao")
public class Application {

    public static void main(String[] args) {
        // 程序启动入口
        // 启动嵌入式的 Tomcat 并初始化 Spring 环境及其各 Spring 组件
        SpringApplication.run(Application.class,args);
    }
}
mapper 接口类扫描包配置注解 MapperScan :用这个注解可以注册 Mybatis mapper 接口类。
4.添加相应的 City domain类、CityDao mapper接口类

City.java:

/**
* 城市实体类
*
* Created by bysocket on 07/02/2017.
*/
public class City {

/**
* 城市编号
*/
private Long id;

/**
* 省份编号
*/
private Long provinceId;

/**
* 城市名称
*/
private String cityName;

/**
* 描述
*/
private String description;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public Long getProvinceId() {
return provinceId;
}

public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}

public String getCityName() {
return cityName;
}

public void setCityName(String cityName) {
this.cityName = cityName;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}
}
CityDao.java:
/**
* 城市 DAO 接口类
*
* Created by bysocket on 07/02/2017.
*/
public interface CityDao {

/**
* 根据城市名称,查询城市信息
*
* @param cityName 城市名
*/
City findByName(@Param("cityName") String cityName);
}
其他不明白的,可以 git clone 下载工程  springboot-learning-example ,工程代码注解很详细。  https://github.com/JeffLi1993/springboot-learning-example

三、其他

利用 Mybatis-generator自动生成代码  http://www.cnblogs.com/yjmyzz/p/4210554.html
Mybatis 通用 Mapper3  https://github.com/abel533/Mapper
Mybatis 分页插件 PageHelper  https://github.com/pagehelper/Mybatis-PageHelper
最后,推荐阅读:《  Spring Boot 之 HelloWorld 详解
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 Spring Boot 整合 MyBatis 和 Vue 的案例。 1. 创建 Spring Boot 项目 使用 Spring Initializr 创建一个新的 Spring Boot 项目,包含以下依赖: - Spring Web - MyBatis Framework - MySQL Driver - Lombok 2. 配置数据库 在 application.properties 文件中配置数据库连接信息,示例: ``` spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=123456 ``` 3. 配置 MyBatis 在 Spring Boot 中,可以使用 MyBatis 的注解方式进行配置。创建一个 UserMapper 接口,示例: ```java @Mapper public interface UserMapper { @Select("select * from user") List<User> getAllUsers(); } ``` 4. 创建 Vue 项目 使用 Vue CLI 创建一个新的 Vue 项目,使用 Element UI 进行 UI 设计。 5. 配置前端 API 在 Vue 项目中创建一个 api.js 文件,用来配置前端 API,示例: ```javascript import axios from 'axios' export default { getAllUsers () { return axios.get('/api/users') } } ``` 6. 创建前端组件 在 Vue 项目中创建一个 UserList.vue 组件,用来显示用户列表,示例: ```vue <template> <div> <el-table :data="users"> <el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> </el-table> </div> </template> <script> import api from '@/api' export default { data () { return { users: [] } }, mounted () { api.getAllUsers().then(res => { this.users = res.data }) } } </script> ``` 7. 创建后端控制器 在 Spring Boot 项目中创建一个 UserController 控制器,用来处理前端 API 请求,示例: ```java @RestController @RequestMapping("/api") public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/users") public List<User> getAllUsers() { return userMapper.getAllUsers(); } } ``` 8. 运行应用程序 使用命令行或者 IDE 运行应用程序,访问 http://localhost:8080 即可看到用户列表。 以上就是一个简单的 Spring Boot 整合 MyBatis 和 Vue 的案例,实现了一个简单的用户列表功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值