mybatis基本实例详解

Mybatis基本实例详解

Mybatis是一款开源的持久化框架,它可以将数据库的操作和Java代码解耦,大大简化了数据访问层的开发。本文将介绍Mybatis基本实例,包含如下内容:

  • Mybatis简介
  • Mybatis基本配置
  • Mybatis增删改查示例1
  • Mybatis增删改查示例2

Mybatis简介

Mybatis是一款优秀的持久层框架,它为Java开发提供了一个优秀的数据访问解决方案。Mybatis通过XML或注解的方式配置SQL映射,从而将Java对象与数据库表进行映射,实现了轻量级的数据访问层框架。

Mybatis基本配置

Mybatis基本配置主要包括配置数据源、配置SqlSessionFactory和SqlSessionFactoryBean,以及配置Mapper文件路径等。下面给出一个基本的Mybatis配置文件示例:

<!--配置数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/test"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>

<!--配置SqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="typeAliasesPackage" value="com.example.entity"/>
    <property name="mapperLocations">
        <array>
            <value>classpath:mapper/*.xml</value>
        </array>
    </property>
</bean>

<!--配置Mapper扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.example.mapper"/>
</bean>

配置完成后,我们就可以开始编写Mapper接口和Mapper.xml文件了。

Mybatis增删改查示例1

下面给出一个基本的Mybatis增删改查示例:

Mapper接口

public interface UserMapper {

    void insert(User user);

    void deleteById(Long id);

    void update(User user);

    User selectById(Long id);
}

Mapper.xml文件

<mapper namespace="com.example.mapper.UserMapper">
    <insert id="insert" parameterType="com.example.entity.User">
        insert into user (id, name, age) values (#{id}, #{name}, #{age})
    </insert>

    <delete id="deleteById" parameterType="java.lang.Long">
        delete from user where id = #{id}
    </delete>

    <update id="update" parameterType="com.example.entity.User">
        update user set name=#{name}, age=#{age} where id=#{id}
    </update>

    <select id="selectById" parameterType="java.lang.Long" resultType="com.example.entity.User">
        select id, name, age from user where id = #{id}
    </select>
</mapper>

测试代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testInsert() {
        User user = new User();
        user.setId(1L);
        user.setName("test");
        user.setAge(20);
        userMapper.insert(user);
    }

    @Test
    public void testDeleteById() {
        userMapper.deleteById(1L);
    }

    @Test
    public void testUpdate() {
        User user = new User();
        user.setId(1L);
        user.setName("test2");
        user.setAge(22);
        userMapper.update(user);
    }

    @Test
    public void testQueryById() {
        User user = userMapper.selectById(1L);
        System.out.println(user);
    }
}

Mybatis增删改查示例2

下面给出一个基本的Mybatis增删改查示例:

Mapper接口

public interface ArticleMapper {

    void insert(Article article);

    void deleteById(Long id);

    void update(Article article);

    Article selectById(Long id);

    List<Article> selectAll();
}

Mapper.xml文件

<mapper namespace="com.example.mapper.ArticleMapper">
    <insert id="insert" parameterType="com.example.entity.Article">
        insert into article (id, title, content) values (#{id}, #{title}, #{content})
    </insert>

    <delete id="deleteById" parameterType="java.lang.Long">
        delete from article where id = #{id}
    </delete>

    <update id="update" parameterType="com.example.entity.Article">
        update article set title=#{title}, content=#{content} where id=#{id}
    </update>

    <select id="selectById" parameterType="java.lang.Long" resultType="com.example.entity.Article">
        select id, title, content from article where id = #{id}
    </select>

    <select id="selectAll" resultType="com.example.entity.Article">
        select id, title, content from article
    </select>

</mapper>

测试代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class ArticleMapperTest {

    @Autowired
    private ArticleMapper articleMapper;

    @Test
    public void testInsert() {
        Article article = new Article();
        article.setId(1L);
        article.setTitle("test");
        article.setContent("test content");
        articleMapper.insert(article);
    }

    @Test
    public void testDeleteById() {
        articleMapper.deleteById(1L);
    }

    @Test
    public void testUpdate() {
        Article article = new Article();
        article.setId(1L);
        article.setTitle("test2");
        article.setContent("test2 content");
        articleMapper.update(article);
    }

    @Test
    public void testQueryById() {
        Article article = articleMapper.selectById(1L);
        System.out.println(article);
    }

    @Test
    public void testQueryAll() {
        List<Article> articles = articleMapper.selectAll();
        System.out.println(articles);
    }
}

以上两个示例展示了基本的增删改查操作,通过配置Mapper接口和Mapper.xml文件,以及进行简单的测试,可以让我们更好地了解Mybatis的基本使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis基本实例详解 - Python技术站

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

相关文章

  • SpringData JPA的常用语法汇总

    下面将详细讲解关于Spring Data JPA的常用语法汇总。 一、什么是Spring Data JPA Spring Data JPA是Spring框架的一个扩展模块,可以使用简单且统一的API,提供了CRUD操作,还支持基于方法名称的查询、@Query查询以及Specification查询等。它更加注重与实体类相关的持久化层操作,将封装JPA的强大功能…

    Java 2023年6月2日
    00
  • xml+php动态载入与分页

    下面我将详细讲解 “XML+PHP动态载入与分页” 的实现过程。 什么是XML+PHP动态载入与分页? XML+PHP动态载入与分页是一种网站动态载入和分页内容的技术,它可以帮助网站实现异步加载、无刷新加载和分页加载等功能。在这种技术中,我们将数据存储在XML文件中,通过PHP程序实现读取和处理XML数据,并通过Ajax技术进行实时载入数据,从而实现网页内容…

    Java 2023年6月16日
    00
  • Spring注解驱动之ApplicationListener异步处理事件说明

    在Spring应用程序中,我们可以使用ApplicationListener接口来处理应用程序事件。在本文中,我们将详细介绍如何使用ApplicationListener异步处理事件,并提供两个示例说明。 1. ApplicationListener接口 ApplicationListener接口是Spring框架中的一个接口,用于处理应用程序事件。当应用程…

    Java 2023年5月18日
    00
  • 使用idea远程调试jar包的配置过程

    下面详细讲解“使用idea远程调试jar包的配置过程”的完整攻略: 一、环境准备 1.1、服务器环境准备 在远程服务器上安装jdk,并将待调试的jar包上传至服务器。 1.2、本地环境准备 在本地电脑上安装jdk和IntelliJ IDEA。 二、远程配置 2.1、配置服务器启动参数 在远程服务器上启动jar包时,配置启动参数,增加debug模式参数,如下:…

    Java 2023年5月26日
    00
  • Java如何读写Properties配置文件(Properties类)

    下面我将详细讲解“Java如何读写Properties配置文件(Properties类)”的完整攻略。 什么是Properties配置文件 Properties文件是Java中一种非常常用的配置文件格式,它采用Key-Value的形式存储数据,是一种轻量级的配置文件。Properties文件一般用于存储应用程序配置信息,如数据库连接信息、系统配置信息等。 P…

    Java 2023年6月15日
    00
  • Spring Data Jpa框架最佳实践示例

    下面是针对“Spring Data JPA框架最佳实践示例”的详细攻略。 1. 简介 Spring Data JPA 旨在为JPA 提供更加方便的数据访问和处理方式。通过Spring Data JPA,我们可以减少很多代码量,这部分代码通常是模板式重复的。这样我们的代码可以更加专注于业务逻辑的实现。通过以下示例,了解如何使用Spring Data JPA 完…

    Java 2023年6月2日
    00
  • JavaWeb利用邮箱帮用户找回密码

    下面我就详细讲解一下JavaWeb利用邮箱帮用户找回密码的完整攻略。 一、方案说明 JavaWeb中实现密码找回的方式有很多种,其中比较常见的一种方式就是利用邮箱来帮助用户找回密码。具体实现方式如下: 用户选择找回密码功能,并输入用户名/邮箱等信息; 服务器验证用户信息,并生成一个随机的字符串作为验证码; 服务器将该随机字符串拼接到找回密码链接中,并发送到用…

    Java 2023年6月15日
    00
  • Java中动态规则的实现方式示例详解

    这篇文章将详细讲解Java中动态规则的实现方式,并且提供两个示例来帮助读者更好地理解此概念。在开始之前,我们来了解一下动态规则的概念。 什么是动态规则 动态规则是指在程序运行时可以动态地修改规则,而无需重新编译代码。这种实现方式增加了程序的灵活性和可维护性,而且不会影响程序的可靠性和性能。 Java中动态规则的实现方式有很多种,下面我们就来看两个示例。 示例…

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