Spring Boot(二)——MyBatis
MyBatis介绍
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。具体可参考:Hibernate与Mybatis对比
无配置文件注解环境配置
1、这里使用的是无配置文件注解,使用注释不需要配置任何映射文件,添加相关依赖到pom.xml
<dependencies><!--核心模块,包括自动配置支持、日志和YAM--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!--测试模块,包括JUnit、Hamcrest、Mockito--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--支持web的模块--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--支持mybatis和mysql的模块--><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></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency> </dependencies>
2、数据库的相关配置,准备好mysql数据库的环境,将数据库的相关信息写的配置文件中
配置文件目录:src\main\resources\application.properties
mybatis.type-aliases-package=com.lyh.demo.entity spring.datasource.driverClassName = com.mysql.jdbc.Driver spring.datasource.url = jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8 spring.datasource.username = root spring.datasource.password = 950321
3、创建实体类 UserEntity
实体类路径为:src\main\java\com\lyh\demo\entity\UserEntity.java
package com.lyh.demo.entity;import java.io.Serializable;public class UserEntity implements Serializable{private long id;private String userName;private String password;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "UserEntity{" +"id=" + id +", userName='" + userName + '\'' +", password='" + password + '\'' +'}';} }
4、创建dao层Mapper类
路径为:src\main\java\com\lyh\demo\mapper\UserMapper.java
package com.lyh.demo.mapper;import com.lyh.demo.entity.UserEntity; import org.apache.ibatis.annotations.*;import java.util.List;public interface UserMapper {@Select("SELECT * FROM user")@Results({@Result(property = "userName", column = "userName")})List<UserEntity> getAll();@Insert("INSERT INTO user(id,userName,password) VALUES(#{id},#{userName},#{password})")void insert(UserEntity user);@Update("UPDATE user SET userName=#{userName} WHERE id =#{id}")void update(UserEntity user);@Delete("DELETE FROM user WHERE id =#{id}")void delete(Long id); }
@Select 查询数据的注解。
@Result 修饰返回的结果集,关联实体类属性和数据库字段,如果实体类属性和数据库属性名保持一致,可以不需要。
@Insert 插入数据库使用,直接传入实体类会自动解析属性到对应的值。
@Update 修改数据,直接传入实体类会自动解析属性到对应的值。
@delete 删除数据。
5、创建控制层UserController类
路径为:src\main\java\com\lyh\demo\controller\UserController.java。这里就只写查询数据的方法,其它增删改的方法也是类似的写法,这里就不一一列出了。
package com.lyh.demo.controller;import com.lyh.demo.mapper.UserMapper; import com.lyh.demo.entity.UserEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController public class UserController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/getUsers")public String getUsers(){List<UserEntity> users=userMapper.getAll();return users.toString();} }
6、创建数据库表结构
sql语句如下:
CREATE TABLE `user` (`id` bigint(20) DEFAULT NULL,`userName` varchar(20) DEFAULT NULL,`password` varchar(20) DEFAULT NULL ) ; INSERT INTO `user` VALUES ('1', '用户1', '123456'); INSERT INTO `user` VALUES ('2', '用户2', '123456');
项目结构如下图所示
7、运行
运行DemoApplicatio后访问http://localhost:8080/getUsers,浏览器页面输出结果如下图:
使用配置文件搭建环境
1、pom.xml和上面一样,只是修改application.properties,添加以下配置,其中基础配置文件为mybatis-config.xml和实体类映射文件的地址*.xml,注意classpath的路径为:resource下
mybatis.config-locations=classpath:mybatis/mybatis-config.xml mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
2、mybatis-config.xml如下:
<configuration><typeAliases><typeAlias alias="Integer" type="java.lang.Integer" /><typeAlias alias="Long" type="java.lang.Long" /><typeAlias alias="HashMap" type="java.util.HashMap" /><typeAlias alias="LinkedHashMap" type="java.util.LinkedHashMap" /><typeAlias alias="ArrayList" type="java.util.ArrayList" /><typeAlias alias="LinkedList" type="java.util.LinkedList" /></typeAliases> </configuration>
3、userMapper.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.lyh.demo.mapper.UserMapper" ><resultMap id="ResultMap" type="com.lyh.demo.entity.UserEntity" ><id column="id" property="id" jdbcType="BIGINT" /><result column="userName" property="userName" jdbcType="VARCHAR" /><result column="password" property="password" jdbcType="VARCHAR" /></resultMap><sql id="List" >id, userName, password, user_sex, nick_name</sql><select id="getAll" resultMap="ResultMap" >SELECT <include refid="List" />FROM users</select> </mapper>
4、dao层的接口:
public interface UserMapper {List<UserEntity> getAll();}
总结
无配置文件注释和配置文件这两种各有各的优点,注释适用于微服务,配置文件适用于更负责的传统应用,具体根据sql的复杂程度选择。
GitHub地址:https://github.com/lyhkmm/spring-boot-examples/tree/master/spring-boot-mybatis
Spring Boot(二)——MyBatis相关推荐
- Spring Boot 集成 MyBatis 与 c3p0
*对应的目录结构 一.添加依赖 <!-- 添加对 mybatis 的依赖 --><dependency><groupId>org.mybatis.spring.bo ...
- spring boot配置mybatis和事务管理
spring boot配置mybatis和事务管理 一.spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下: <!-- Spri ...
- Spring Boot基础学习笔记06:Spring Boot整合MyBatis
文章目录 零.学习目标 1.了解Spring Boot数据访问概述 2.掌握使用注解的方式整合MyBatis 3.掌握使用配置文件的方式整合MyBatis 一.Spring Boot数据访问概述 二. ...
- Spring Boot 集成MyBatis
Spring Boot 集成MyBatis Spring Boot 系列 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring ...
- 干货必看|Spring Boot整合MyBatis框架详解
在开发中,我们通常会对数据库的数据进行操作,Sprirng Boot对关系型数据库和非关系型数据库的访问操作都提供了非常好的整合支持.所以今天壹哥就给大家讲解一下,如何在SpringBoot环境中整合 ...
- Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台
前言 项目介绍 Spring Boot + Security + MyBatis + Thymeleaf + Activiti 快速开发平台 基于Layui的后台管理系统模板,扩展Layui原生UI样 ...
- 电子商务商城源码 Spring Cloud、Spring Boot、Mybatis、Redis
1. 涉及平台 Spring Cloud.Spring Boot.Mybatis.Redis 2. 核心架构 Spring Cloud.Spring Boot.Mybatis.Redis 3. 前端框 ...
- VUE+Spring Boot整合MyBatis实现前后端分离项目壁纸网站
目录 前言 一.项目运行 二.环境需要 三.技术栈 四.项目说明 五.后端代码 前言 每次换桌面,壁纸总是不好找,搜索图片得不到好的索引与反馈,很难找到自己喜欢的壁纸,而壁纸网站可以免去我们去寻找壁纸 ...
- Spring Boot 教程(三): Spring Boot 整合Mybatis
教程简介 本项目内容为Spring Boot教程样例.目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中.如您觉得该项目对您有用,欢迎点击收藏和点赞按钮, ...
最新文章
- 清理C盘无用的垃圾的文件,给c盘瘦身
- iOS开发小知识之正则表达式的简单用法
- text-size-adjust: none并没有什么用
- 重装MS SQL Server 2000前必须彻底删除原安装文件!
- C语言#line预处理器
- 如何通过Dataworks禁止MaxCompute 子账号跨Project访问
- 普通大学生的 Java 开发能力到什么水平才能进大厂?
- matlab中patch命令_matlab中patch函数的用法——emily
- php 接口日志,PHP 开发 APP 接口--错误日志接口
- 阿里电商架构演变之路(一)
- Linux下如何解压.zip和.rar文件
- php版wap浏览器,PHP 检测手机浏览器的代码
- python urlencode函数_Python urlencode和unquote函数使用实例解析
- html 的header标签和head标签
- Ubuntu 18.04 无法上网
- docker 的初步接触
- [转贴]色彩调和的原理
- 一个selenium python网页脚本(机器人),针对随聊520(www.suiliao520.com)匿名聊天匹配陌生人的网站
- 在rails中pluck和select和collect区别
- 给本本换硬盘,直接克隆旧盘!