MyBatis 的XML实现方法(JAVA)

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

数据库表的结构如下:

DROP DATABASE IF EXISTS test;
CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;
-- 使⽤数据数据
USE test;
-- 创建表[⽤⼾表]
DROP TABLE IF EXISTS userinfo;
CREATE TABLE `userinfo` (
`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
`username` VARCHAR ( 127 ) NOT NULL,
`gender` TINYINT ( 4 ) DEFAULT '0' COMMENT '1-男 2-⼥ 0-默认',
`delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除',
`create_time` DATETIME DEFAULT now(),
`update_time` DATETIME DEFAULT now(),
PRIMARY KEY ( `id` )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4;

在JAVA中的定义:

@Data
public class User {
    private Integer id;
    private String userName;
    private Integer gender;
    private Integer delete_flag;
    private Date create_time;
    private Date update_time;
}

先在配置文件中连接数据库

# .yml 连接数据库
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/(要连接的数据库的名称)?characterEncoding=utf8&useSSL=false
    username: root
    password: 2002
    driver-class-name: com.mysql.cj.jdbc.Driver

定义接口:

 

@Mapper
public interface UserXMLMapper {
    //增
    Integer add(User user);
}

XML实现接口:

创建一个xml文件,然后在配置文件中配置xml文件的地址。

MyBatis 的XML实现方法(JAVA),mybatis,xml,java 

#配置xml文件的路径,resources/mapper包中所有以Mapper.xml结尾的文件
mybatis:
  mapper-locations: classpath:mapper/**Mapper.xml
#配置 打印mybatis的日志
  configuration: 
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在xml文件中拷贝以下代码,这段代码是MyBatis的固定xml格式:

<?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="填写要实现的接口的全限定名称">

</mapper>

在mapper标签中插入以下代码

<insert id="add">
    insert into userinfo(username) values (#{userName});
</insert>

id:后面跟的是要实现的接口里面的具体的方法名称

#{}:中直接使用User对象的属性名来获取参数

进行单元测试

@SpringBootTest
class UserXMLMapperTest {
    @Autowired
    private UserXMLMapper userXMLMapper;
    @Test
    void add() {
        User user = new User();
        user.setUserName("zhangsan");
        userXMLMapper.add(user);
    }
}

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

因为数据库中数据太少了,所以在删除之前先添加一些数据

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

xml的实现代码如下

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

进行单元测试

@SpringBootTest
class UserXMLMapperTest {
    @Autowired
    private UserXMLMapper userXMLMapper;

    @Test
    void delete() {
        userXMLMapper.delete(3);
    }
}

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

查询的xml代码如下

<select id="find" resultType="com.example.Spring_demo.mySQL.User">
    select * from userinfo;
</select>

因为数据库返回的数据需要和JAVA进行映射所以resultType后面就是要映射的类的全限定名称。

单元测试

@SpringBootTest
class UserXMLMapperTest {
    @Autowired
    private UserXMLMapper userXMLMapper;

    @Test
    void find() {
        List<User> list = userXMLMapper.find();
        System.out.println(list.toString());
    }
}

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

大多数情况下数据库中的参数名和JAVA中的参数名是不相同的,因为数据库一般使用_分隔单词,而JAVA中是使用驼峰命名。 

所以在大多数情况下数据库中的参数名和JAVA中的参数名并不是和我上面的例子一样是相同的,它们的对应关系应该是这样:

MyBatis 的XML实现方法(JAVA),mybatis,xml,java 而代码执行的结果: 

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

后面的三个变量都无法获取返回值。

结果映射

解决办法有三种

1. 起别名

就是利用sql语句将返回结果的列名改的和类中的属性名一致。

<select id="find" resultType="com.example.Spring_demo.mySQL.User">
    select id,username,gender,delete_flag as deleteFlag, create_time as createTime, update_time as updateTime from userinfo;
</select>

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

2. 结果映射
<mapper namespace="com.example.Spring_demo.mySQL.UserXMLMapper">
    <resultMap id="map" type="com.example.Spring_demo.mySQL.User">
<!--        <id></id>标签只能应用于主键-->
        <id column="id" property="id"></id>
        <result column="delete_flag" property="deleteFlag"></result>
        <result column="create_time" property="createTime"></result>
        <result column="update_time" property="updateTime"></result>
    </resultMap>

    <select id="find" resultMap="map">
        select * from userinfo;
    </select>
</mapper>

 MyBatis 的XML实现方法(JAVA),mybatis,xml,java

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

3. 开启驼峰命名

在配置文件中加入以下代码:

#yml文件
mybatis:
  configuration:
    map-underscore-to-camel-case: true #配置驼峰⾃动转换
MyBatis 的XML实现方法(JAVA),mybatis,xml,java

修改前

MyBatis 的XML实现方法(JAVA),mybatis,xml,java

修改的xml代码为

<update id="update">
    update userinfo set username=#{name} where id = #{id};
</update>

单元测试

@SpringBootTest
class UserXMLMapperTest {
    @Autowired
    private UserXMLMapper userXMLMapper;

    @Test
    void update() {
        userXMLMapper.update(1,"wangwu");
    }
}

MyBatis 的XML实现方法(JAVA),mybatis,xml,java文章来源地址https://www.toymoban.com/news/detail-815700.html

到了这里,关于MyBatis 的XML实现方法(JAVA)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Spring Boot中整合MyBatis(基于xml方式&基于注解实现方式)

    在Spring Boot中整合MyBatis时,你需要导入JDBC(不需要手动添加)、Druid的相关依赖、MySQL相关依赖。 JDBC依赖:在Spring Boot中整合MyBatis时,并不需要显式地添加JDBC的包依赖。这是因为,当你添加 mybatis-spring-boot-starter 依赖时,它已经包含了对JDBC的依赖。 mybatis-spring-boot-starter 是

    2024年02月15日
    浏览(55)
  • 深入实现 MyBatis 底层机制的任务阶段4 - 开发 Mapper 接口和 Mapper.xml

    😀前言 在我们的自定义 MyBatis 底层机制实现过程中,我们已经深入研究了多个任务阶段,包括配置文件的读取、数据库连接的建立、执行器的编写,以及 SqlSession 的封装。每个任务阶段都为我们揭示了 MyBatis 内部工作原理的一部分,为构建完整的底层框架打下了坚实的基础

    2024年02月09日
    浏览(45)
  • Spring Boot入门(10):Mybatis之XML映射文件中如何使用特殊符号?揭秘<、<=等符号的正确使用方法!

            在Mybatis的XML映射文件中,我们经常需要使用一些特殊符号来完成SQL语句的拼接,比如小于号“”、小于等于号“=”等。然而,由于这些符号在XML中有特殊的含义,因此直接在映射文件中使用可能会导致编译错误或者运行时异常。那么,如何才能正确地使用这些特殊

    2024年02月09日
    浏览(45)
  • MyBatis XML 映射文件

    MyBatis 的 XML 映射文件包含以下几个部分: mapper 元素:定义了 XML 映射文件的根元素,其中包含了命名空间和 SQL 语句等信息。 select 、 insert 、 update 、 delete 元素:分别用于定义查询、插入、更新、删除操作的 SQL 语句。 resultMap 元素:用于定义结果集的映射关系。 parameterM

    2024年02月08日
    浏览(43)
  • 【Mybatis】XML映射文件

    目录  11.3XML映射文件         1.select          2.insert、update、delete         3.Sql          4.parameters(参数)          5.resultMap         6.resultMap 使用示例          (1)在先前创建的数据库stu中创建表student 2,并插入若干条数据,代码如下:       

    2024年02月14日
    浏览(42)
  • 常用mybatis的XML

    2024年02月07日
    浏览(37)
  • Spring Boot入门(09):如何使用MyBatis的XML配置方式实现MySQL的增删改查操作?

            想要快速高效地开发Java Web应用程序,选择使用Spring Boot和MyBatis无疑是明智之举。本篇文章将教你使用MyBatis的XML配置方式,结合MySQL数据库,实现常见的增删改查操作,让你的应用程序更加实用和强大。跟随本文一起来探索MyBatis在Spring Boot中的力量吧!        

    2024年02月11日
    浏览(67)
  • MyBatis的XML映射文件

    目录 2.1 XML配置文件规范 在Mybatis中使用XML映射文件方式开发,需要符合一定的规范 - XML映射文件定义规范: 2.2 XML配置文件实现 第1步:创建XML映射文件 第2步:编写XML映射文件 2.3 MybatisX的使用 总结: Mybatis的开发有两种方式: 注解 XML配置文件 通过XML配置文件的形式来配置

    2024年02月13日
    浏览(36)
  • MyBatis的使用(XML映射文件)

    MyBatis基于注解开发简单便捷,但是弊端是失去SQL语句的灵活性,不能根据实际情况产生不同的SQL语句 MyBatis除了支持注解开发以外,还支持一种开发方式:XML映射文件,将SQL语句写到XML映射文件中,基于更多种的选择可以让SQL变得更加灵活 1.开发方式 1.和基于注解开发方式一

    2024年02月08日
    浏览(37)
  • MyBatis-XML映射文件

    规范 XML映射文件的名称与Mapper接口名称一致(EmpMapper对应EmpMpper.xml),并且将XML映射文件和Mapper接口放置在相同包下(同包同名) ​​​ 在maven项目结构中所有的配置文件都在resources目录之下,因此要在该目录下创建Mapper接口相同的文件目录,注意在创建目录时要使用 / 来

    2024年02月13日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包