欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程语言 > asp.net >内容正文

asp.net

spring boot 转xml格式报错解决方法-ag凯发k8国际

发布时间:2024/10/14 asp.net 35 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 spring boot 转xml格式报错解决方法_芋道 spring boot mybatis 入门(一)之 mybatis xml... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
摘要: 原创出处 http://www.iocoder.cn/spring-boot/mybatis/「芋道源码」欢迎转载,保留摘要,谢谢!
  • 1. 概述
  • 2. mybatis xml
    • 2.1 引入依赖
    • 2.2 application
    • 2.3 应用配置文件
    • 2.4 mybatis 配置文件
    • 2.5 userdo
    • 2.6 usermapper
    • 2.7 简单测试
  • 3. mybatis 注解
    • 3.1 差异部分
    • 3.2 usermapper
    • 3.3 简单测试
  • 4. mybatis-plus
    • 4.1 引入依赖
    • 4.2 application
    • 4.3 应用配置文件
    • 4.4 userdo
    • 4.5 usermapper
    • 4.6 简单测试
  • 5. tkmybatis
    • 5.1 引入依赖
    • 5.2 application
    • 5.3 应用配置文件
    • 5.4 mybatis 配置文件
    • 5.5 userdo
    • 5.6 usermapper
    • 5.7 简单测试
  • 666. 彩蛋

  • 《java 2019 超神之路》
  • 《dubbo 实现原理与源码解析 —— 精品合集》
  • 《spring 实现原理与源码解析 —— 精品合集》
  • 《mybatis 实现原理与源码解析 —— 精品合集》
  • 《spring mvc 实现原理与源码解析 —— 精品合集》
  • 《spring boot 实现原理与源码解析 —— 精品合集》
  • 《数据库实体设计合集》
  • 《java 面试题 —— 精品合集》
  • 《java 学习指南 —— 精品合集》

本文,我们基于 spring boot 2.x 版本。

1. 概述

在 dal 数据访问层,目前会有三种方向的ag凯发k8国际的解决方案:

  • jdbc
  • mybatis
  • jpa

艿艿自己在 知识星球 中,做过一个简单的调研,看看大家使用哪个为主。结果是 mybatis > jpa > jdbc 。这个也符合在知乎上看到的两篇文章:

  • 《mybatis 为什么在国内相当流行?》
  • 《为什么阿里巴巴的持久层采用 ibatis 框架,而不使用 hibernate 框架呢?感觉 hibernate 更厉害的样子?》

而每个团队使用 mybatis 方式还有不同,主要是如下:

注意,几种方式可以组合使用。
  • mybatis xml
  • mybatis 注解
  • mybatis-plus
  • tkmybatis

艿艿的团队,最终我们使用 xml 的方式,因为 xml 便于可以看到每个表使用到的 sql ,方便做优化和管理。
后来,考虑到提高开发效率,很多标准的数据库的 crud 操作,编写还是比较枯燥乏味浪费时间,所以使用 mybatis-plus 简化。当然,一些相对复杂的 sql ,还是会考虑使用 xml 。

下面,我们上面列的四种方式,逐个来入门。

2. mybatis xml

示例代码对应仓库:mybatis-xml 。

本小节,我们会使用 mybatis-spring-boot-starter 自动化配置 mybatis 主要配置。同时,在 xml 中编写相应的 sql 操作。

2.1 引入依赖

在 pom.xml 文件中,引入相关依赖。

org.springframework.bootspring-boot-starter-parent2.1.3.release 4.0.0lab-12-mybatisorg.springframework.bootspring-boot-starter-jdbc mysqlmysql-connector-java5.1.48org.mybatis.spring.bootmybatis-spring-boot-starter2.1.1org.springframework.bootspring-boot-starter-testtest

具体每个依赖的作用,胖友自己认真看下艿艿添加的所有注释噢。

2.2 application

创建 application.java 类,配置 @mapperscan 注解,扫描对应 mapper 接口所在的包路径。代码如下:

// application.java@springbootapplication @mapperscan(basepackages = "cn.iocoder.springboot.lab12.mybatis.mapper") public class application { }
  • `cn.iocoder.springboot.lab12.mybatis.mapper` 包路径下,就是我们 mapper 接口所在的包路径。
  • 建议 1 :因为这里是做示例。实际项目中,可以考虑创建一个 mybatisconfig 配置类,将 @mapperscan 注解添加到其上。

2.3 应用配置文件

在 resources 目录下,创建 application.yaml 配置文件。配置如下:

spring:# datasource 数据源配置内容datasource:url: jdbc:mysql://47.112.193.81:3306/testb5f4?usessl=false&useunicode=true&characterencoding=utf-8driver-class-name: com.mysql.jdbc.driverusername: testb5f4password: f4df4db0ed86@11# mybatis 配置内容 mybatis:config-location: classpath:mybatis-config.xml # 配置 mybatis 配置文件路径mapper-locations: classpath:mapper/*.xml # 配置 mapper xml 地址type-aliases-package: cn.iocoder.springboot.lab12.mybatis.dataobject # 配置数据库实体包路径

具体的每个配置项,胖友自己认真看下艿艿添加的所有注释噢。

2.4 mybatis 配置文件

在 resources 目录下,创建 mybatis-config.xml 配置文件。配置如下:

因为在数据库中的表的字段,我们是使用下划线风格,而数据库实体的字段使用驼峰风格,所以通过 mapunderscoretocamelcase = true 来自动转换。

2.5 userdo

在 cn.iocoder.springboot.lab12.mybatis.dataobject 包路径下,创建 userdo.java 类,用户 do 。代码如下:

// userdo.javapublic class userdo {/*** 用户编号*/private integer id;/*** 账号*/private string username;/*** 密码(明文)** ps:生产环境下,千万不要明文噢*/private string password;/*** 创建时间*/private date createtime;// ... 省略 setting/getting 方法}

对应的创建表的 sql 如下:

create table `users` (`id` int(11) not null auto_increment comment '用户编号',`username` varchar(64) collate utf8mb4_bin default null comment '账号',`password` varchar(32) collate utf8mb4_bin default null comment '密码',`create_time` datetime default null comment '创建时间',primary key (`id`),unique key `idx_username` (`username`) ) engine=innodb auto_increment=4 default charset=utf8mb4 collate=utf8mb4_bin;

2.6 usermapper

在 cn.iocoder.springboot.lab12.mybatis.mapper 包路径下,创建 usermapper 接口。代码如下:

// usermapper.java@repository public interface usermapper {int insert(userdo user);int updatebyid(userdo user);int deletebyid(@param("id") integer id); // 生产请使用标记删除,除非有点想不开,嘿嘿。userdo selectbyid(@param("id") integer id);userdo selectbyusername(@param("username") string username);list selectbyids(@param("ids")collection ids);}
  • @repository 注解,用于标记是数据访问 bean 对象。在 mybatis 的接口,实际非必须,只是为了避免在 service 中,@autowired 注入时无需报警。
  • @param 注解,声明变量名。
    • 在方法为单参数时,非必须。
    • 在方法为多参数时,必须。艿艿自己的编程习惯,禁止使用 map 作为查询参数,因为无法通过方法的定义,很直观的看懂具体的用途。
  • 细心的胖友,肯定会发现例如说 #selectbyusername(@param("username") string username) 等方法,是使用 by 字段结尾,这是为什么呢?一般情况下,在 sql 中的 where 条件字段,我们建议能够带在方法名后。原因无它,简单明了。如果是多个字段,可以使用 and 分隔。当然,如果查询字段比较多,可能方法名会比较长。

在 resources/mapper 路径下,创建 usermapper.xml 配置文件。代码如下:

id, username, password, create_timeinsert into users (username, password, create_time) values (#{username}, #{password}, #{createtime})update users, username = #{username}, password = #{password}where id = #{id}delete from userswhere id = #{id}
  • 建议 1 :对于绝大多数查询,我们是返回统一字段,所以可以使用 标签,定义 sql 段。对于性能或者查询字段比较大的查询,按需要的字段查询。
  • 建议 2 :对于数据库的关键字,使用大写。例如说,select、where 等等。
  • 建议 3 :基本是每“块”数据库关键字占用一行,胖友可以看看艿艿写的每一行示例。一定要排版干净,毕竟我们是有代码洁癖的男孩子。

2.7 简单测试

创建 usermappertest 测试类,我们来测试一下简单的 usermapper 的每个操作。代码如下:

// usermappertest.java@runwith(springrunner.class) @springboottest(classes = application.class) public class usermappertest {@autowiredprivate usermapper usermapper;@testpublic void testinsert() {userdo user = new userdo().setusername(uuid.randomuuid().tostring()).setpassword("nicai").setcreatetime(new date());usermapper.insert(user);}@testpublic void testupdatebyid() {userdo updateuser = new userdo().setid(1).setpassword("wobucai");usermapper.updatebyid(updateuser);}@testpublic void testdeletebyid() {usermapper.deletebyid(2);}@testpublic void testselectbyid() {usermapper.selectbyid(1);}@testpublic void testselectbyusername() {usermapper.selectbyusername("yunai");}@testpublic void testselectbyids() {list users = usermapper.selectbyids(arrays.aslist(1, 3));system.out.println("users:" users.size());}}

具体的,胖友可以自己跑跑,妥妥的。

如果胖友嫌弃手写 mybatis xml 很麻烦,可以看看 idea mybatiscodehelper-pro 插件。在没有使用 mybatis-plus 插件之前,使用过蛮长一段时间,我以前的老大也在用。
当然,也可以考虑使用 mybatis generator (mbg) 。

:-d 搜索微信号(id:芋道源码),可以获得各种 java 源码解析、原理讲解、面试题、学习指南。

:-d 并且,回复【书籍】后,可以领取笔者推荐的各种 java 从入门到架构的 100 本书籍。

:-d 并且,回复【技术群】后,可以加入专门讨论 java、后端、架构的技术群。

来吧,骚年~

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是ag凯发k8国际为你收集整理的spring boot 转xml格式报错解决方法_芋道 spring boot mybatis 入门(一)之 mybatis xml...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图