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日

相关文章

  • SpringBoot环境Druid数据源使用及特点

    下面是关于SpringBoot环境中Druid数据源使用及特点的详细攻略。 1. 什么是Druid Druid是阿里巴巴开源的数据连接池。相比于传统的连接池,Druid具有更好的扩展性和稳定性。同时,它还提供了多种功能强大的监控和统计特性,如监控SQL执行情况、打印SQL慢日志等。 2. 如何在SpringBoot中使用Druid数据源 2.1 引入依赖 首…

    Java 2023年5月20日
    00
  • Java中关于Collections集合工具类的详细介绍

    Java中的集合工具类(Collections) Java中的集合框架提供了许多用于存储和操作一组对象的数据结构。Java提供了一个集合工具类Collections,该类提供了许多静态方法来方便地操作集合。 集合工具类的特点 提供了一组静态方法,用于方便地操作集合。 所有的方法都是静态方法,无需创建Collections实例对象。 Collections类不…

    Java 2023年5月26日
    00
  • springboot+jsonp解决前端跨域问题小结

    下面是“springboot+jsonp解决前端跨域问题小结”的详细攻略。 前言 在开发前后端分离的应用时,常常会遇到前端请求后端时跨域的问题。这个时候,可以采用jsonp方式来解决跨域问题。 引入依赖 在我们使用springboot+jsonp的时候,需要引入一下两个依赖: <dependency> <groupId>org.spr…

    Java 2023年5月26日
    00
  • SpringBoot整合Shiro两种方式(总结)

    Spring Boot整合Shiro两种方式(总结) Shiro是一个流行的Java安全框架,可以提供身份验证、授权、加密等功能。Spring Boot可以很方便地与Shiro集成,本文将介绍两种Spring Boot整合Shiro的方式,并提供两个示例,演示如何使用Spring Boot整合Shiro。 1. 方式一:使用Shiro-Spring Boot…

    Java 2023年5月14日
    00
  • mybatis log4j2打印sql+日志实例代码

    MyBatis是Java企业级开发框架之一,提供了许多优秀的ORM映射解决方案。而Log4j2是一个高性能的Apache日志框架,具有强大的日志级别控制、日志格式设置等特性。在MyBatis项目中,将Log4j2与MyBatis结合使用可以更好地记录和查看SQL执行情况和错误日志,有助于排查问题和性能调优。 下面,我们将详细讲解如何使用Log4j2来在MyB…

    Java 2023年5月19日
    00
  • Java中调用SQL Server存储过程详解

    Java调用SQL Server存储过程的步骤如下: 1.首先,要在Java中连接数据库 这里使用JDBC连接SQL Server数据库,示例代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class C…

    Java 2023年5月20日
    00
  • maven打包时候修改包名称带上git版本号和打包时间方式

    按照要求,我会为你提供一个完整的Maven项目中如何在打包时修改包名称带上git版本号和打包时间的攻略。 概述: Maven利用pom.xml文件管理项目信息和依赖,pom.xml文件中通过使用插件来执行相关的动作操作。在这里,我们需要用到maven-jar-plugin插件来进行Maven项目的打包操作。通过重写 ${project.build.final…

    Java 2023年5月19日
    00
  • Java package编译乱码问题解决

    Java package编译出现乱码问题的解决,需要遵循以下步骤: 确认操作系统的编码方式 Java编译器使用操作系统的编码格式进行编译,在不同的操作系统上,编码格式可能不同。因此,首先需要确认操作系统的编码方式。 可以通过以下方式查看Windows系统的编码方式: chcp 若返回的结果为936,则表示系统使用GBK编码;若返回的结果为65001,则表示系…

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