Spring Boot 教程(三): Spring Boot 整合Mybatis

news/2024/7/1 9:56:19

教程简介

本项目内容为Spring Boot教程样例。目的是通过学习本系列教程,读者可以从0到1掌握spring boot的知识,并且可以运用到项目中。如您觉得该项目对您有用,欢迎点击收藏和点赞按钮,给予支持!!教程连载中,欢迎持续关注!

环境

IDE: Eclipse Neon
Java: 1.8
Spring Boot: 1.5.12
数据库:MYSQL

本章简介

上一节介绍了Spring Boot JPA完成数据层访问,本节将介绍另外一种持久层框架MyBatis,并且将Spring Boot整合MyBatis完成数据层访问。

配置

基于教程(一)的项目进行操作,在pom.xml文件下面添加:

        <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>

修改application.properties

spring.datasource.url = jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver

创建数据库表

在MYSQL中demo数据库里面运行一下SQL:

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT,`name` varchar(20) NOT NULL,`pass` varchar(8) NOT NULL,PRIMARY KEY (`id`)
) 

创建实体和数据访问接口

创建包com.example.demo.model,创建实体User

public class User implements Serializable{private static final long serialVersionUID = -853504493430501564L;private Long id;private String name;private String pass;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPass() {return pass;}public void setPass(String pass) {this.pass = pass;}}

创建包com.example.demo.mapper, 创建User映射的Mapper:UserMapper

@Mapper
public interface UserMapper {@Select("SELECT * FROM USER WHERE NAME = #{name}")User findByName(@Param("name") String name);@Insert("INSERT INTO USER(NAME, PASS) VALUES(#{name}, #{pass})")int save(@Param("name") String name, @Param("pass") String pass);}

创建控制器

在com.example.demo.api下面创建User控制器UserController, 用于测试web访问

@RestController
public class UserController {@Autowiredprivate UserMapper userMapper;@RequestMapping("/saveUser")public void save() {userMapper.save("ajay", "123456");}@RequestMapping("/findByName")public User findByName(String name) {return userMapper.findByName(name);}}

程序运行和调试

在Application类中,启动程序。浏览器输入http://localhost:8080/saveUser
http://localhost:8080/findByName?name=ajay

clipboard.png

代码:gitee.com/shaojiepeng/SpringBootCourse


http://lihuaxi.xjx100.cn/news/237014.html

相关文章

以太坊和EOS DApp数量上升

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 目前&#xff0c;在最受欢迎的智能合约平台以太坊和EOS上&#xff0c;每月大约有180个新的去中心化应用程序(DApps)&#xff0c;该数量处于历史最高…

深度有趣 | 27 服饰关键点定位

简介 介绍如何使用CPM&#xff08;Convolutional Pose Machines&#xff09;实现服饰关键点定位 原理 关键点定位是一类常见而有用的任务&#xff0c;某种意义上可以理解为一种特征工程 人脸关键点定位&#xff0c;可用于人脸识别、表情识别人体骨骼关键点定位&#xff0c;可用…

对标以太坊的EOS再火,也拼不过InterValue的区块链4.0

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 2017年6月26日上线的数字货币EOS&#xff0c;仅用5天时间&#xff0c;就融了1.85亿美元&#xff0c;一举打破ICO的融资记录。 至2018年4月12日&a…

Python中处理时间 —— time模块

time模块 逝去的秒数 逝去的秒数表示从某个时间&#xff08;Python中是“Thu Jan 1 07:00:00 1970”&#xff09;开始到现在所经过的秒数。 使用 time.time() 函数可以获得逝去的秒数&#xff1a; >>time.time() 1388330058.8643time.time()返回一个浮点数&#xff0c;可…

C#版 - Leetcode49 - 字母异位词分组 - 题解

C#版 - Leetcode49 - 字母异位词分组 - 题解 Leetcode49.Group Anagrams 在线提交:https://leetcode.com/problems/group-anagrams/ 题目描述 给定一个字符串数组&#xff0c;将字母异位词组合在一起。字母异位词指字母相同&#xff0c;但排列不同的字符串。 示例: 输入: [&quo…

区块链有什么优势可以如此火爆?

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 如果说2016年是区块链元年&#xff0c;那么2017年则是其破冰之年&#xff0c;综合相关报道可知&#xff0c;当前区块链已经在很多领域率先完成突破&…

朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

朱晔的互联网架构实践心得S1E9&#xff1a;架构评审一百问和设计文档五要素 【下载文本PDF进行阅读】 本文我会来说说我认为架构评审中应该看的一些点&#xff0c;以及我写设计文档的一些心得。助你在架构评审中过五关斩六将&#xff0c;助你写出能让人收藏点赞的设计文档。 技…

关于事务隔离级别

2019独角兽企业重金招聘Python工程师标准>>> 第一种 read uncommitted 此状态下脏读&#xff0c;不可重复读&#xff0c;虚读都有可能发生。此状态下两个人同时操作一个数据库表一边开启事务没有提交&#xff0c;另一边也开启事物开始更改数据但是也没有提交&#x…