Spring Boot是一种快速开发框架,可以帮助开发人员快速搭建WEB应用程序。而MyBatis是一种优秀的ORM框架,可以简化Java与数据库之间的数据访问和持久化。本文将介绍如何在Spring Boot中使用MyBatis实现数据访问和持久化。
一、Spring Boot集成MyBatis
- 添加依赖
在pom.xml文件中添加MyBatis和MySQL依赖:
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.42</version> </dependency>
这里我们使用mybatis-spring-boot-starter来集成MyBatis。
- 配置数据源
在application.properties中添加数据库连接属性:
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driverClassName=com.mysql.jdbc.Driver
这里我们使用MySQL数据库,并且使用root账户连接,密码为123456。
- 配置MyBatis
Spring Boot默认会自动扫描mapper路径,我们只需要在application.properties中配置mapper路径即可:
mybatis.mapper-locations=classpath:mapper/*.xml
该配置表示mapper文件在项目的classpath下的mapper文件夹中。
在完成以上配置后,Spring Boot就已经完成了对MyBatis的集成工作。
二、编写实体类和Mapper
- 编写实体类
定义一个User类,表示数据库中的一张用户表:
public class User { private Long id; private String name; private Integer age; // 省略getter和setter方法 }
- 编写Mapper
定义一个UserMapper接口,用于定义User表的增删改查操作:
public interface UserMapper { void saveUser(User user); void updateUser(User user); void deleteUser(Long id); User findUserById(Long id); List<User> findAllUsers(); }
这里我们定义了增删改查以及查询所有用户的方法。
三、编写Mapper.xml
接下来,我们需要编写UserMapper.xml文件,实现UserMapper中定义的操作:
<?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.example.demo.mapper.UserMapper"> <insert id="saveUser" parameterType="com.example.demo.entity.User"> insert into user(name, age) values (#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.demo.entity.User"> update user set name = #{name}, age = #{age} where id = #{id} </update> <delete id="deleteUser" parameterType="java.lang.Long"> delete from user where id = #{id} </delete> <select id="findUserById" parameterType="java.lang.Long" resultType="com.example.demo.entity.User"> select * from user where id = #{id} </select> <select id="findAllUsers" resultType="com.example.demo.entity.User"> select * from user </select> </mapper>
在该文件中,我们实现了UserMapper中定义的所有方法,其中parameterType表示参数类型,resultType表示返回值类型。
四、编写Service类和控制器
- 编写Service类
定义一个UserService类,用于封装对User表的操作:
@Service public class UserService { @Autowired private UserMapper userMapper; public void saveUser(User user) { userMapper.saveUser(user); } public void updateUser(User user) { userMapper.updateUser(user); } public void deleteUser(Long id) { userMapper.deleteUser(id); } public User findUserById(Long id) { return userMapper.findUserById(id); } public List<User> findAllUsers() { return userMapper.findAllUsers(); } }
在这个类中,我们使用@Autowired注解注入了UserMapper,即可以使用UserMapper中定义的方法。
- 编写控制器
定义一个UserController类,实现对用户的增删改查操作:
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @PostMapping("/") public String saveUser(@RequestBody User user) { userService.saveUser(user); return "success"; } @PutMapping("/") public String updateUser(@RequestBody User user) { userService.updateUser(user); return "success"; } @DeleteMapping("/{id}") public String deleteUser(@PathVariable Long id) { userService.deleteUser(id); return "success"; } @GetMapping("/{id}") public User getUserById(@PathVariable Long id) { return userService.findUserById(id); } @GetMapping("/") public List<User> findAllUsers() { return userService.findAllUsers(); } }
在这个类中,我们使用@RestController注解表示当前类是一个控制器,使用@RequestMapping注解指定了访问路径。同时,使用@Autowired注解注入了UserService,即可以使用UserService中定义的方法。
五、测试
现在,我们已经完成了整个项目的搭建和代码编写。接下来,我们可以使用Postman等工具来测试控制器中定义的API。
使用POST请求来保存用户信息,请求体为:
{ "name": "张三", "age": 18 }
使用PUT请求来更新用户信息,请求体为:
{ "id": 1, "name": "李四", "age": 20 }
使用DELETE请求来删除用户信息,URL为:
http://localhost:8080/user/1
使用GET请求来获取用户信息,URL为:
http://localhost:8080/user/1
使用GET请求来获取所有用户信息,URL为:
http://localhost:8080/user/
六、总结
本文介绍了如何在Spring Boot中使用MyBatis实现数据访问和持久化,并使用了一个简单的示例来说明整个流程。MyBatis可以使得Java程序对数据库的操作变得更加高效和简洁,如果您需要在Spring Boot中实现对数据库的操作,可以考虑使用MyBatis。
以上是Spring Boot中使用MyBatis实现数据访问和持久化的详细内容。更多信息请关注PHP中文网其他相关文章!

JVM通过JavaNativeInterface(JNI)和Java标准库处理操作系统API差异:1.JNI允许Java代码调用本地代码,直接与操作系统API交互。2.Java标准库提供统一API,内部映射到不同操作系统API,确保代码跨平台运行。

modularitydoesnotdirectlyaffectJava'splatformindependence.Java'splatformindependenceismaintainedbytheJVM,butmodularityinfluencesapplicationstructureandmanagement,indirectlyimpactingplatformindependence.1)Deploymentanddistributionbecomemoreefficientwi

BytecodeinJavaistheintermediaterepresentationthatenablesplatformindependence.1)Javacodeiscompiledintobytecodestoredin.classfiles.2)TheJVMinterpretsorcompilesthisbytecodeintomachinecodeatruntime,allowingthesamebytecodetorunonanydevicewithaJVM,thusfulf

javaachievesplatformIndependencEthroughThoJavavIrtualMachine(JVM),wodecutesbytecodeonyanydenanydevicewithajvm.1)javacodeiscompiledintobytecode.2)

JavaGUI开发中的平台独立性面临挑战,但可以通过使用Swing、JavaFX,统一外观,性能优化,第三方库和跨平台测试来应对。JavaGUI开发依赖于AWT和Swing,Swing旨在提供跨平台一致性,但实际效果因操作系统不同而异。解决方案包括:1)使用Swing和JavaFX作为GUI工具包;2)通过UIManager.setLookAndFeel()统一外观;3)优化性能以适应不同平台;4)使用如ApachePivot或SWT的第三方库;5)进行跨平台测试以确保一致性。

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

Java代码在不同平台上运行时会有性能差异。1)JVM的实现和优化策略不同,如OracleJDK和OpenJDK。2)操作系统的特性,如内存管理和线程调度,也会影响性能。3)可以通过选择合适的JVM、调整JVM参数和代码优化来提升性能。

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑战WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版
好用的JavaScript开发工具