mybatis快速上手并运行程序

MyBatis快速上手指南

MyBatis是一个持久化框架,可以帮助Java开发人员快速高效地进行数据库操作。本文将介绍如何快速上手MyBatis并运行程序。

环境准备

  1. 安装Java环境(JDK),版本需大于等于1.8
  2. 安装并配置Maven,用于管理项目依赖
  3. 准备一个MySQL数据库

步骤

1. 创建Maven项目

使用以下命令在本地创建一个Maven项目:

mvn archetype:generate -DgroupId=com.example -DartifactId=mybatis-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

2. 添加依赖

在pom.xml文件中添加以下依赖:

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

3. 创建数据表

在MySQL数据库中创建一张名为“user”的数据表:

CREATE TABLE `user` (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `age` int DEFAULT NULL,
  PRIMARY KEY (`id`)
);

4. 创建实体类

在项目中创建一个名为“User”的Java实体类,用于表示用户:

public class User {
    private Long id;
    private String name;
    private Integer age;

    // getter/setter 省略
}

5. 创建Mapper文件

在resources目录下创建一个名为“UserMapper.xml”的文件,用于存放Mapper(映射器)的SQL语句:

<?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.UserMapper">
  <insert id="insert">
    INSERT INTO `user` (`name`, `age`) VALUES (#{name}, #{age})
  </insert>

  <select id="selectAll" resultType="com.example.User">
    SELECT * FROM `user`
  </select>
</mapper>

6. 创建Mapper接口

在Java代码中创建一个名为“UserMapper”的接口,用于定义Mapper的方法:

public interface UserMapper {
    void insert(User user);
    List<User> selectAll();
}

7. 配置MyBatis

在mybatis-config.xml文件中配置MyBatis:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"/>
        <property name="username" value="root"/>
        <property name="password" value="password"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/example/UserMapper.xml"/>
  </mappers>
</configuration>

其中,标签中的内容需要根据具体的数据库连接信息进行配置。

8. 编写测试代码

在测试代码中编写MyBatis的初始化和Mapper方法的调用:

public class MyBatisTest {
    private SqlSessionFactory sessionFactory;
    private UserMapper userMapper;

    @Before
    public void setUp() throws Exception {
        String resource = "mybatis-config.xml";
        Reader reader = Resources.getResourceAsReader(resource);
        sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        reader.close();

        SqlSession sqlSession = sessionFactory.openSession();
        userMapper = sqlSession.getMapper(UserMapper.class);
    }

    @Test
    public void testInsert() {
        User user = new User();
        user.setName("test");
        user.setAge(18);

        userMapper.insert(user);
    }

    @Test
    public void testSelectAll() {
        List<User> users = userMapper.selectAll();
        for (User user : users) {
            System.out.println(user.getName());
        }
    }
}

9. 运行测试代码

运行测试代码,如果输出了“test”字符串,说明测试成功。

示例

以下是使用MyBatis进行数据库操作的两个示例:

示例1

要求:将数据库中所有用户记录的年龄增加1岁。

public void updateUserAges() {
    SqlSession sqlSession = sessionFactory.openSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    List<User> users = userMapper.selectAll();
    for (User user : users) {
        user.setAge(user.getAge() + 1);
        userMapper.update(user);
    }
}

示例2

要求:查询年龄小于18岁的所有用户记录。

public List<User> selectYoungUsers() {
    SqlSession sqlSession = sessionFactory.openSession();
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    return userMapper.selectYoungUsers();
}

UserMapper.xml文件中的SQL语句:

<select id="selectYoungUsers" resultType="com.example.User">
  SELECT * FROM `user` WHERE `age` &lt; 18
</select>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis快速上手并运行程序 - Python技术站

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

相关文章

  • Java笔记(16) Collection集合–>Set集合–>HashSet

    1. Set接口基本介绍 Set是无序集合(添加和取出的顺序不一致,但取出的顺序是固定的),没有索引 不允许重复元素,所以最多包含一个null JDK API中Set接口的实现类有: Abstract, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, Enum…

    Java 2023年4月17日
    00
  • android相册选择图片的编码实现代码

    下面我将详细讲解”Android相册选择图片的编码实现代码”的完整攻略。 一、前置知识 在实现”Android相册选择图片的编码”之前,需要掌握一些相关的前置知识,包括: Android中的Intent机制 Android中的Uri、Bitmap和File类 Android中的图片压缩技巧 二、实现步骤 在掌握了相关的前置知识后,下面我们来讲解”Androi…

    Java 2023年6月1日
    00
  • 序列化实现对象的拷贝

    提到拷贝,大家第一时间想到的可能都是克隆模式的深克隆,因为这个模式在面试中出现的机率非常高,同时实现的方式也比较容易:对象的类实现Cloneable接口并且重写clone()方法即可。但是在实际情况中克隆模式有时候其实并不适合用来拷贝对象,因为如果有很多的实体类都需要拷贝,这个时候难道把这些实体类全都实现克隆模式?这是不提倡的,这个时候可以使用序列化方式来实…

    Java 2023年4月19日
    00
  • Spring Security十分钟入门教程

    以下是“Spring Security十分钟入门教程”的完整攻略: 什么是Spring Security? Spring Security是一个功能强大,高度可定制的框架,用于保护Java应用程序的安全。 它提供了适用于Web应用程序的身份验证,授权,防止攻击(如CSRF)等保护功能。 怎样使用Spring Security? 步骤1:添加Maven依赖项 …

    Java 2023年5月20日
    00
  • Java常见的3种文件上传方法和速度对比

    关于Java常见的3种文件上传方法和速度对比,我可以提供以下完整攻略: Java常见的3种文件上传方法和速度对比 文件上传是现代web应用程序中常见的功能之一。在Java中,有许多方法可用于上传文件。在本篇文章中,将介绍Java中最常见的3种文件上传方法,并比较它们的速度和优缺点。 1. 原始Servlet API 在早期的Java Web项目中, Serv…

    Java 2023年5月19日
    00
  • Java基础知识之Java语言概述

    Java基础知识之Java语言概述 Java语言是一门面向对象的编程语言,由Sun公司开发,后被Oracle公司收购。Java的特点表现在以下三个方面: 简单性 Java摒弃了C++的多重继承、指针、运算符重载等复杂的特性,使得Java更为简单易懂,因此Java语言入门难度较低。 面向对象 Java强调抽象和封装,支持继承和多态等特性,具有良好的扩展性和复用…

    Java 2023年5月23日
    00
  • Hibernate validator使用以及自定义校验器注解

    Hibernate Validator是一个基于JSR 380规范的Java Bean验证库,它能够为Java Bean的属性提供各种验证规则,比如非空、长度、邮箱格式等。在本文中,我们将学习如何使用Hibernate Validator进行Java Bean的验证,同时介绍如何自定义校验器注解。 1. 添加Hibernate Validator依赖 首先,…

    Java 2023年5月20日
    00
  • 什么是分代垃圾回收?

    以下是关于分代垃圾回收的详细讲解: 什么是分代垃圾回收? 分代垃圾回收是一种常见的垃圾回收算法。其原理是将内存空间分为不同的代,每一代对象具有不同的生命周期。在程序运行过程中,垃圾回收器会根据对象的生命周期将其分配到不同的代中,然后对不同代的对象采用不同的垃圾回收策略,以提高垃圾回收的效率和性能。 分代垃圾回收通常将内存空间分为三代:年轻代、中年代和老年代。…

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