Mybatis之xml方式(一)
文章目录
- 环境搭建
- XML方式
- mybatis-config
- 创建实体类
- ***Mapper.xml
- 测试代码
- 读入mybatis-config
- 进行一次==curd==操作
- 错误信息及处理方法:
环境搭建
若依是一款整合了springboot+mybatis等多项后端技术的后端框架,笔者通过学习若依框架进行后端入门,若依官方简介链接:
https://doc.ruoyi.vip/ruoyi/
在GitHub上下载到若依框架源码后,通过idea打开项目中的pom.xml文件,idea将会自动配置Maven框架中构建的项目源。
XML方式
mybatis-config
先配置mybatis-config.xml文档,这是mybatis的项目配置文档,我们只需在若依配置的基础上增加我们需要进行SQL操作的Mapper文件和数据库连接即可。
<environments default="development"><environment id="development"><transactionManager type="JDBC"></transactionManager><dataSource type="UNPOOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/ry?serverTimezone=UTC"/><property name="username" value="root"/><property name="password" value=""/></dataSource></environment></environments>
<mappers><mapper resource="tk/mybatis/simple/mapper/CountryMapper.xml"/>
</mappers>
创建实体类
再创建我们需要进行crub的实体类,即表中一个元组组成的数据结构。
public class Country {private int id;private String CountryName;//国家名private String CountryCode;//国家缩写
}
***Mapper.xml
再配置我们上面添加的Mapper文件,设定我们需要进行的SQL操作。
注:若依中有许多可以借鉴的Mapper文件,这里只Copy需要添加的SQL操作配置。
<mapper namespace="tk.mybatis.simple.mapper.CountryMapper"><select id="selectAll" resultType="tk.mybatis.simple.model.Country">select id,CountryName,CountryCode from country</select>
</mapper>
属性详解:
namespace定义了当前xml的命名空间,在MyBatis中,Mapper中的namespace用于绑定Dao接口的,即面向接口编程。
它的好处在于当使用了namespace之后就可以不用写接口实现类,业务逻辑会直接通过这个绑定寻找到相对应的SQL语句进行对应的数据处理。
select元素是我们定义的一个SQL查询,id是它在xml文档中的唯一id,resultType定义了当前查询的返回值类型。
测试代码
读入mybatis-config
private static SqlSessionFactory sqlSessionFactory;public static void init(){try{Reader reader = Resources.getResourceAsReader("mybatis/mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);reader.close();} catch (IOException e) {e.printStackTrace();}}
进行一次curd操作
SqlSession sqlSession = sqlSessionFactory.openSession();try {List<Country> countryList = sqlSession.selectList("selectAll");printlist(countryList);}finally {sqlSession.close();}
运行后即可得到我们提前在mysql中创建的表信息。
错误信息及处理方法:
笔者在第一次进行mybatis配置时遇到了以下错误:
Error querying database. Cause: java.sql.SQLException: The server time zone…
解决方案:
https://blog.csdn.net/qq_24880589/article/details/81735535
resources not found
这是由于我们在配置上述文档时路径定义错误所致。需要注意,项目中Java包的包含关系用".",目录的包含关系用"/"
Mybatis之xml方式(一)相关推荐
- Mybatis使用xml方式配置
官网地址:https://mybatis.org/mybatis-3/zh/getting-started.html 使用案例: 我们创建一个数据库叫做mybatis,在其下创建userinfo数据表 ...
- MyBatis-02 MyBatis XML方式概述及配置步骤
概述 一个简单的权限控制需求 创建数据库表 创建实体类 XML方式概述及步骤 1. 首先在src/main/resources下com.artisan.mybatis.xml.mapper目录下创建5 ...
- mybatis mapper xml文件的导入方式和查询方式
mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...
- MyBatis-04 MyBatis XML方式之insert元素
insert概述 简单的insert用法 1. UserMapper中添加接口方法 2. UserMapper.xml 添加节点 3. 编写单元测试 使用JDCB方式返回主键自增的值 1.UserMa ...
- MyBatis-03 MyBatis XML方式之select元素
概述 select用法 根据用户id查询用户信息 1.UserMapper接口中添加接口方法 2. UserMapper.xml中配置resultMap和select元素 查询全部的SysUser 添 ...
- spring和mybatis整合:使用xml方式
文章目录 spring和mybatis整合:使用xml方式 1. 创建数据库 2. 创建工程,pom.xml文件如下: 3. 依赖下载地址如下: 4. 配置mybatis的全局配置,在resource ...
- Mybatis的CRUD之XML方式以及动态SQL
MyBatis 接口代理方式实现 Dao 层 传统方式实现 Dao 层,我们既要写接口,还要写实现类.而 MyBatis 框架可以帮助我们省略编写 Dao 层接口实现类的步骤.程序员只需要编写接口,由 ...
- SpringBoot的MyBatis generator 注解方式和xml方式 (四)
两种形式: XML方式 type="XMLMAPPER" 注解方式 type="ANNOTATEDMAPPER" 1.1 pom.xml里添加maven插件 & ...
- springboot执行批量插入_springboot+Mybatis 注解\Xml两种方式批量添加数据
1.使用注解的方式批量添加数据,在该方法中,传进来的参数是一个List集合,使用一个foreach 循环解析集合的数据,最后再批量保存到数据库,具体如下截图: 代码如下: //批量保存 @Insert ...
最新文章
- 11位科幻作家参与,首次AI人机共创写作实验启动
- swt能单独在linux运行么,java – 在Mac上运行基于SWT的跨平台jar
- SpringMVC(四)——Ajax技术
- Inna and Sequence
- LeetCode 939. 最小面积矩形(哈希)
- 根据url提取网站域名的方法小结
- 面向小姐姐的编程——JAVA面向对象之继承(三)
- TensorFlow中的多线程
- 开源的无客户端桌面远程网关 Apache Guacamole 被曝多个严重漏洞,可导致 RCE
- 超全面整理fastAPI(从入门到运用),进来看十秒钟再走不迟
- git pull失败解决 git下“The following untracked working tree files would be overwritten by checkout
- 自动清理源计算机设备驱动,win10系统删除过期驱动程序设备的设置技巧
- 转:深网 | 中国手机往事:因为雷军、罗永浩们,中国才告别山寨机
- CHAOS;HEAD 简体中文汉化补丁版 攻略(0.9版)
- GB/T28181国标视频直播平台LiveGBS支持录像回放吗云端录像录制在哪里
- swiper ie11版本兼容调整
- 序列化和反序列化二叉树 -----前序,中序,后序,层序
- MLCC电容啸叫如何解决
- sp_WhoIsActive
- 聪明如我,一眼就看穿了快递小哥的分堆算法
热门文章
- 高斯RBF核函数中Sigma取值和SVM分离面的影响
- Android ADB原理及常用命令
- android lcd,国产安卓机:LCD屏幕,正式再见
- 书写软件之钢笔笔迹实现(一)
- IOS Appstore 预览图尺寸
- 【杂谈】win10耳机与外放分别设置
- matlab音乐键盘模拟,科学网—[原][Matlab][04] Midi音乐键盘 - 王楠的博文
- 计算机专业排名211大学排名,计算机专业大学排名,计算机专业强的211!
- Abase2:字节跳动新一代高可用 NoSQL 数据库
- Notepad++显示所有字符:空格换行