mybatis基本使用

这篇具有很好参考价值的文章主要介绍了mybatis基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. mybatis

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
中文网: https://mybatis.org/mybatis-3/zh_CN/index.html

2. 基本使用

(1) maven坐标

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.13</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.23</version>
    </dependency>

(2) 配置文件编写

mybatis基本使用,mybatis

编写mybatis配置的
MapperConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "https://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/stu"/>
                <property name="username" value="root"/>
                <property name="password" value="xjy1234"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--指定mapper映射文件在哪-->
        <mapper resource="org/example/dao/UserMapper.xml"/>
    </mappers>
</configuration>

编写sql语句映射:
UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.example.dao.UserMapper">
        <!--sql语句编写-->
</mapper>

(3) 数据库操作

编写测试类:

    public static void main(String[] args) throws IOException {
        InputStream in = Resources.getResourceAsStream("MapperConfig.xml");
        // 获取SqlSessionFactory对象
        SqlSessionFactory session = new SqlSessionFactoryBuilder().build(in);

        // 获取SqlSession对象
        SqlSession sqlSession = session.openSession();

        // 执行sql语句
        String one = sqlSession.selectOne("org.example.dao.UserMapper.selectOne");
        System.out.println(one);
        sqlSession.close(); 
    }

sql语句映射中编写sql语句:

<mapper namespace="org.example.dao.UserMapper">
        <select id="selectOne" resultType="string">
                select name from user where id = 050100
        </select>
</mapper>

(4) 注解查询

创建查询接口:

public interface UserMapper {
    @Select("select name from user where id = 050100")
     String selectOne();
}

删除之前映射文件中的xml查询语句:
mybatis基本使用,mybatis
测试运行:

    @Test
    public void selectOne() throws IOException {
        InputStream in = Resources.getResourceAsStream("MapperConfig.xml");
        SqlSession sqlSession = new SqlSessionFactoryBuilder()
                .build(in)
                .openSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        String s = mapper.selectOne();
        System.out.println(s);
    }

2. 基本配置

(1) 读取外部配置文件

<configuration>
    <!--外部配置文件加载-->
    <properties resource="jdbc.properties"></properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--指定mapper映射文件在哪-->
        <mapper resource="org/example/dao/UserMapper.xml"/>
    </mappers>
</configuration>

(2) mapper映射

<mappers>
  <mapper resource=""/>
  <mapper resource=""/>
  <mapper resource=""/>
</mappers>

3. 映射文件

查询

<!--接收int类型,返回字符串类型-->
<select id="selectPerson" parameterType="int" resultType="string">
  SELECT name FROM user WHERE id= #{id}
</select>

删除/修改/新增

常用属性 :
id 在命名空间中唯一的标识符,可以被用来引用这条语句。
parameterType 将会传入这条语句的参数的类全限定名或别名。这个属性是可选的,因为 MyBatis 可以根据语句中实际传入的参数计算出应该使用的类型处理器(TypeHandler),默认值为未设置(unset)
useGeneratedKeys :(仅适用于 insert 和 update)这会令 MyBatis 使用 JDBC 的 getGeneratedKeys 方法来取出由数据库内部生成的主键(比如:像 MySQL 和 SQL Server 这样的关系型数据库管理系统的自动递增字段),默认值:false。(主键返回)

<insert id="insert">
 sql语句
</insert>

<update id="update">
 sql语句
</update>

<delete id="delete">
  delete from Author where id = #{id}
</delete>

动态sql

常用标签:
if
where
foreach文章来源地址https://www.toymoban.com/news/detail-860158.html

<select id="select" resultType="string">
  SELECT name FROM user
 	<WHERE>
  <if test="name!= null">
    AND name =#{name}
  </if>
  </WHERE>
</select>
<select id="selectUsersByIds" parameterType="java.util.List" resultType="User">
    SELECT * FROM users
    WHERE id IN
    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

到了这里,关于mybatis基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis的基本概念和核心组件

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中

    2024年02月12日
    浏览(41)
  • Mybatis的基本操作--增删改查

    目录 查看数据 无参数 一个参数 多个参数 添加数据 修改数据 删除数据 注释的方式进行查找数据 分三种情况: 无参,有一个参数,有多个参数的情况。  (这里的详细操作步骤是博主的上一篇博客写的:初识Mybatis,并创建第一个Mybatis项目(详细图文教程)) 我们在接口中声

    2024年02月15日
    浏览(29)
  • MyBatis的基本入门及Idea搭建MyBatis坏境且如何一步骤实现增删改查(CRUD)---详细介绍

       首先是一个 开源的Java持久化框架 ,它可以帮助开发人员简化数据库访问的过程并提供了一种将SQL语句与Java代码进行解耦的方式,使得开发人员可以更加灵活地进行数据库操作。 MyBatis不仅是开源框架,也给我们带来了许多好处的点,如下: 1.1.1简化数据库操作    MyBa

    2024年02月12日
    浏览(42)
  • myBatis plus 调用基本方法(insert update.... ) Invalid bound statement (not found)

    直接调用BaseMapper 或者 是Iservice 里面的方法报如下错,大概率是依赖版本冲突 我的依赖版本如下,解决了这个问题 “org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)” 错误通常表示在 MyBatis 中找不到有效的绑定语句。 这个错误可能有以下几个可能的原因: SQL

    2024年02月13日
    浏览(58)
  • 认识 MyBatis + MyBatis如何使用 (MyBatis操作数据库)

    本篇介绍了什么是MyBatis,MyBatis的前期配置,MyBatis操作数据库的两种方式:.xml文件 / 注释,使用MyBatis的一些注意,如有错误,请在评论区指正,让我们一起交流,共同进步! 本文开始 MyBatis(ORM: 对象关系映射框架): 一个持久层框架,也是一个工具实现程序与数据库交互,

    2024年02月14日
    浏览(59)
  • 【MyBatis-Plus】MyBatis进阶使用

    目录 一、MyBatis-Plus简介 1.1 介绍 1.2 优点 1.3 结构 二、MyBatis-Plus基本使用 2.1 配置 2.2 代码生成 2.3 CRUD接口测试 三、MyBatis-Plus策略详解 3.1 主键生成策略 3.2 雪花ID生成器 3.3 字段自动填充策略 3.4 逻辑删除 四、MyBatis-Plus插件使用 4.1 乐观锁插件 4.1.1 什么是乐观锁和悲观锁? 4.

    2024年02月04日
    浏览(50)
  • mybatis-plus与mybatis同时使用别名问题

    在整合mybatis和mybatis-plus的时候发现一个小坑,单独使用mybatis,配置别名如下: XML映射文件如下: 单元测试发现没有问题 添加mybatis-plus依赖后,单元测试报错: 显示无法解析XML映射文件中的student 解决办法:要把配置文件里的别名配置改成mybatis-plus的配置,如下: 区别

    2024年04月13日
    浏览(40)
  • 【官方中文文档】Mybatis-Spring #使用 MyBatis API

    使用 MyBatis-Spring,你可以继续直接使用 MyBatis 的 API。只需简单地使用 SqlSessionFactoryBean 在 Spring 中创建一个 SqlSessionFactory ,然后按你的方式在代码中使用工厂即可。 小心使用 此选项,错误地使用会产生运行时错误,更糟糕地,会产生数据一致性的问题。直接使用 API 时,注意

    2024年02月11日
    浏览(39)
  • SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

    1.需求分析 2.数据库表设计 3.数据库环境配置 1.新建maven项目 2.pom.xml 引入依赖 3.application.yml 配置数据源 数据库名 用户名 密码 驱动是mysql8的(因为上面使用了版本仲裁) 4.Application.java 编写启动类 5.测试 6.配置类切换druid数据源 7.测试数据源是否成功切换 4.Mybatis基础配置 1

    2024年03月20日
    浏览(58)
  • MyBatis 中如何使用缓存

    MyBatis 是一个基于 Java 的持久层框架,它提供了多种方式来使用缓存,包括一级缓存和二级缓存。本文将介绍 MyBatis 中常见的缓存使用方式及其使用方法。 MyBatis 中的一级缓存是指 SqlSession 的缓存,它默认是开启的。在同一个 SqlSession 中,如果执行了相同的 SQL 语句,那么 M

    2024年02月16日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包