MyBatis简介与配置MyBatis+Spring+MySql的方法

MyBatis简介

MyBatis是一个优秀的基于Java的持久层框架,它内部封装了JDBC,通过XML或注解将Java对象和SQL语句进行映射,使得开发者可以通过简单的配置和少量代码来进行复杂的数据库操作。

配置MyBatis+Spring+MySQL

步骤一:创建Maven项目

首先,创建一个基于Maven的Java项目,命名为mybatis-demo。

在pom.xml文件中添加MyBatis和MySQL依赖:

<dependencies>
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
  </dependency>
</dependencies>

步骤二:配置MySQL连接信息

在src/main/resources目录下新建application.properties文件,配置MySQL连接信息,如下所示:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_demo?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root

步骤三:创建实体类

创建实体类User,包含id、name和age属性。

public class User {
  private Integer id;
  private String name;
  private Integer age;
  // getter and setter
}

步骤四:创建Mapper接口

创建UserMapper接口用于定义数据访问的方法。

public interface UserMapper {
  User getUserById(Integer id);
  List<User> getUsers();
  void insertUser(User user);
  void updateUser(User user);
  void deleteUser(Integer id);
}

步骤五:编写Mapper.xml文件

在resources目录下创建mapper目录,创建UserMapper.xml文件,定义数据访问的SQL语句。

<mapper namespace="com.example.mybatisdemo.mapper.UserMapper">
  <select id="getUserById" resultType="com.example.mybatisdemo.entity.User">
    select * from user where id = #{id}
  </select>
  <select id="getUsers" resultType="com.example.mybatisdemo.entity.User">
    select * from user
  </select>
  <insert id="insertUser">
    insert into user(name, age) values(#{name}, #{age})
  </insert>
  <update id="updateUser">
    update user set name = #{name}, age = #{age} where id = #{id}
  </update>
  <delete id="deleteUser">
    delete from user where id = #{id}
  </delete>
</mapper>

步骤六:配置MyBatis

在resources目录下创建mybatis-config.xml文件,配置MyBatis的相关信息。

<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC" />
      <dataSource type="POOLED">
        <property name="driver" value="${spring.datasource.driver-class-name}" />
        <property name="url" value="${spring.datasource.url}" />
        <property name="username" value="${spring.datasource.username}" />
        <property name="password" value="${spring.datasource.password}" />
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="mapper/UserMapper.xml" />
  </mappers>
</configuration>

步骤七:配置Spring

在application.properties文件中使用mybatis.config-location属性指定MyBatis配置文件的位置。

mybatis.config-location=classpath:mybatis-config.xml

在启动类添加@MapperScan注解扫描Mapper接口所在的包。

@SpringBootApplication
@MapperScan("com.example.mybatisdemo.mapper")
public class MybatisDemoApplication {
  public static void main(String[] args) {
    SpringApplication.run(MybatisDemoApplication.class, args);
  }
}

步骤八:创建Controller并测试

在Controller中注入UserMapper并调用相应方法,测试数据访问是否正常。

@RestController
public class UserController {
  @Autowired
  private UserMapper userMapper;

  @GetMapping("/user/{id}")
  public User getUserById(@PathVariable Integer id) {
    return userMapper.getUserById(id);
  }

  @GetMapping("/user")
  public List<User> getUsers() {
    return userMapper.getUsers();
  }

  @PostMapping("/user")
  public void insertUser(@RequestBody User user) {
    userMapper.insertUser(user);
  }

  @PutMapping("/user")
  public void updateUser(@RequestBody User user) {
    userMapper.updateUser(user);
  }

  @DeleteMapping("/user/{id}")
  public void deleteUser(@PathVariable Integer id) {
    userMapper.deleteUser(id);
  }
}

现在,我们可以通过访问http://localhost:8080/user获取所有用户信息,通过访问http://localhost:8080/user/1获取id为1的用户信息,通过其他HTTP方法修改和删除用户信息。

示例一:插入用户信息

User user = new User();
user.setName("Jack");
user.setAge(20);
userMapper.insertUser(user);

示例二:更新用户信息

User user = userMapper.getUserById(1);
user.setName("Tom");
user.setAge(25);
userMapper.updateUser(user);

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis简介与配置MyBatis+Spring+MySql的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 记一次Maven项目改造成SpringBoot项目的过程实践

    针对您的问题,我将按照以下步骤进行详细讲解: 1. 创建Spring Boot项目 首先,我们需要创建一个Spring Boot项目。可以在Spring Initializr上选择相应的配置选项,添加所需的依赖,然后点击“Generate”按钮生成项目。 2. 导入原有项目 在创建好的Spring Boot项目中,我们需要将原有的Maven项目代码导入。一般…

    Java 2023年5月19日
    00
  • SpringBoot配置拦截器方式实例代码

    下面是SpringBoot配置拦截器的实现详细攻略: 1. 编写拦截器类 首先,我们需要编写一个拦截器类,实现HandlerInterceptor接口,拦截请求前和请求后的操作。以下是一个示例: public class LoginInterceptor implements HandlerInterceptor { @Override public boo…

    Java 2023年5月20日
    00
  • Java TreeSet 添加失败的解决

    以下是Java TreeSet 添加失败的解决攻略,包括解决方法及示例说明: 问题描述 在使用Java TreeSet时,当添加元素时可能会因为一些特殊情况(例如元素值重复)导致添加失败。 解决方法 Java TreeSet是一种有序集合,只能添加不重复的元素。如果要添加的元素已经存在,那么添加操作将会失败,TreeSet会直接忽略这个元素。因此,为了避免添…

    Java 2023年5月26日
    00
  • java读取resource目录下文件的方法示例

    针对“java读取resource目录下文件的方法示例”,我将为你提供完整的攻略。请仔细阅读以下内容。 方法一:使用ClassLoader.getResource() ClassLoader.getResource() 方法可以帮助我们加载 classpath 中的资源,包括在 resource 目录下的文件。下面是一个简单的示例代码: public cla…

    Java 2023年5月20日
    00
  • springboot 整合canal实现示例解析

    下面是关于“springboot 整合canal实现示例解析”的完整攻略: 1. 什么是Canal? Canal是阿里巴巴开源组织推出的一款数据库增量订阅和消费组件,能够解析MySQL数据库binlog的增量数据,并将数据以类似于MQ的方式进行消费或者解析。Canal能实时获取MySQL数据库的数据变更,解决传统的数据库数据同步方式需要轮询而且存在延迟性的问…

    Java 2023年5月20日
    00
  • Java中的Valid和Validated的比较内容

    当我们进行Java Bean校验时,通常会使用Hibernate提供的校验框架。Valid和Validated是该框架中最常用的两种表单验证注解,它们都是用于指定校验组,在校验时都可以用来限制哪些校验组中的校验规则生效。但是,它们有一些区别。下面我将详细讲解Java中Valid和Validated的比较内容,帮助读者理解它们的使用方法。 Valid注解 @V…

    Java 2023年5月20日
    00
  • 详解springboot springsecuroty中的注销和权限控制问题

    详解 Spring Boot Spring Security 中的注销和权限控制问题 前言 Spring Boot Spring Security 是一个非常常用的技术组合,它们可以提供很好的安全性,和身份认证、授权、限制等重要功能,但是在实际开发中可能会遇到注销和权限控制相关的问题,需要我们了解并深入研究。 正文 注销功能 注销功能是常见的需求,用户在退出…

    Java 2023年6月3日
    00
  • SpringBoot配置log4j输出日志的案例讲解

    下面我将详细讲解如何配置log4j输出SpringBoot日志的案例攻略。 1. 引入log4j依赖 在pom.xml文件中,我们需要引入log4j的依赖,如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部