文章目录

  • 环境搭建
  • 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方式(一)相关推荐

  1. Mybatis使用xml方式配置

    官网地址:https://mybatis.org/mybatis-3/zh/getting-started.html 使用案例: 我们创建一个数据库叫做mybatis,在其下创建userinfo数据表 ...

  2. MyBatis-02 MyBatis XML方式概述及配置步骤

    概述 一个简单的权限控制需求 创建数据库表 创建实体类 XML方式概述及步骤 1. 首先在src/main/resources下com.artisan.mybatis.xml.mapper目录下创建5 ...

  3. mybatis mapper xml文件的导入方式和查询方式

    mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis  mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...

  4. MyBatis-04 MyBatis XML方式之insert元素

    insert概述 简单的insert用法 1. UserMapper中添加接口方法 2. UserMapper.xml 添加节点 3. 编写单元测试 使用JDCB方式返回主键自增的值 1.UserMa ...

  5. MyBatis-03 MyBatis XML方式之select元素

    概述 select用法 根据用户id查询用户信息 1.UserMapper接口中添加接口方法 2. UserMapper.xml中配置resultMap和select元素 查询全部的SysUser 添 ...

  6. spring和mybatis整合:使用xml方式

    文章目录 spring和mybatis整合:使用xml方式 1. 创建数据库 2. 创建工程,pom.xml文件如下: 3. 依赖下载地址如下: 4. 配置mybatis的全局配置,在resource ...

  7. Mybatis的CRUD之XML方式以及动态SQL

    MyBatis 接口代理方式实现 Dao 层 传统方式实现 Dao 层,我们既要写接口,还要写实现类.而 MyBatis 框架可以帮助我们省略编写 Dao 层接口实现类的步骤.程序员只需要编写接口,由 ...

  8. SpringBoot的MyBatis generator 注解方式和xml方式 (四)

    两种形式: XML方式 type="XMLMAPPER" 注解方式 type="ANNOTATEDMAPPER" 1.1 pom.xml里添加maven插件 & ...

  9. springboot执行批量插入_springboot+Mybatis 注解\Xml两种方式批量添加数据

    1.使用注解的方式批量添加数据,在该方法中,传进来的参数是一个List集合,使用一个foreach 循环解析集合的数据,最后再批量保存到数据库,具体如下截图: 代码如下: //批量保存 @Insert ...

最新文章

  1. 11位科幻作家参与,首次AI人机共创写作实验启动
  2. swt能单独在linux运行么,java – 在Mac上运行基于SWT的跨平台jar
  3. SpringMVC(四)——Ajax技术
  4. Inna and Sequence
  5. LeetCode 939. 最小面积矩形(哈希)
  6. 根据url提取网站域名的方法小结
  7. 面向小姐姐的编程——JAVA面向对象之继承(三)
  8. TensorFlow中的多线程
  9. 开源的无客户端桌面远程网关 Apache Guacamole 被曝多个严重漏洞,可导致 RCE
  10. 超全面整理fastAPI(从入门到运用),进来看十秒钟再走不迟
  11. git pull失败解决 git下“The following untracked working tree files would be overwritten by checkout
  12. 自动清理源计算机设备驱动,win10系统删除过期驱动程序设备的设置技巧
  13. 转:深网 | 中国手机往事:因为雷军、罗永浩们,中国才告别山寨机
  14. CHAOS;HEAD 简体中文汉化补丁版 攻略(0.9版)
  15. GB/T28181国标视频直播平台LiveGBS支持录像回放吗云端录像录制在哪里
  16. swiper ie11版本兼容调整
  17. 序列化和反序列化二叉树 -----前序,中序,后序,层序
  18. MLCC电容啸叫如何解决
  19. sp_WhoIsActive
  20. 聪明如我,一眼就看穿了快递小哥的分堆算法

热门文章

  1. 高斯RBF核函数中Sigma取值和SVM分离面的影响
  2. Android ADB原理及常用命令
  3. android lcd,国产安卓机:LCD屏幕,正式再见
  4. 书写软件之钢笔笔迹实现(一)
  5. IOS Appstore 预览图尺寸
  6. 【杂谈】win10耳机与外放分别设置
  7. matlab音乐键盘模拟,科学网—[原][Matlab][04] Midi音乐键盘 - 王楠的博文
  8. 计算机专业排名211大学排名,计算机专业大学排名,计算机专业强的211!
  9. Abase2:字节跳动新一代高可用 NoSQL 数据库
  10. Notepad++显示所有字符:空格换行