mybatis基本操作流程
快速入门Mybatis(简单易学)
前段时间学完JDBC和Maven后,寻思着把Mybatis也顺手学完,做个笔记自己以后也可以好复习,再把我的学习心得分享在平台上大家可以相互学习
结合我所看的视频和资料,学习mybatis可以从以下几个步骤循序渐进:
- 创建数据库和表,在表里面添加好数据
- 创建模块,导入坐标(也就是导入依赖)
- 编写mybatis核心配置文件(里面有一些我们的连接的参数)
- 编写sql映射文件(主要解决JDBC中的硬编码问题)
- 编码
- 定义pojo类
- 加载核心配置文件,获取SqlSessionFactory对象
- 获取SqlSession对象,执行sql语句
- 释放资源
1.创建数据库和表,在表里面添加好数
首先建立数据库(mybatis),再建立一个表(user),这个表比较简单就三个属性列,自己操作的时候也可以简单点
2.创建模块,导入坐标
接下来建立一个项目,在在项目之中创建一个模块,如果这个不会操作,可以参考我之前发的----->在IDEA中使用Maven,项目模块的名字都可以随意点,也可以和我的一样啊:
下面主要是对pom.xml文件进行配置,因为我们需要用到mybatis,mysql,那肯定需要mybatis,mysql的驱动。还有就是junit的坐标了,其他的花里胡哨的配置咱们就不弄了,等把基础掌握之后再去考虑:
3.编写mybatis核心配置文件
在配置之前,首先咱们去到mybatis官网----->Mybatis官网,在官网里面点击入门,这些入门的内容就是我们接下来要做的操作了,回到IDEA。在main的java目录下的resources文件夹下创建一个配置文件mybatis-config.xml(和官方给的名字保持一致),这个问价就是我们的核心配置文件:
接下来在官网里面找到核心配置文件的内容,直接粘贴过来(后面还需要修改):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><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 resource="org/mybatis/example/BlogMapper.xml"/></mappers>
</configuration>
粘贴之后,按照下图进行修改:
修改之后如下:
4.编写sql映射文件
编写sql映射文件,那我们首先创建一个sql映射文件:还是在resources下创建UserMappe.xml文件:
去官网找到sql映射文件里面应该写的东西,直接复制粘贴过来:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper"><select id="selectBlog" resultType="Blog">select * from Blog where id = #{id}</select>
</mapper>
需要对以下的各项进项解释:
- namespace:类似于主函数差不多,起个名字,当有个模块时可以通过namespace的不同去区分相同的操作,随便叫个test
- id:功能函数一样,名字需要具有可读性,让别人知道你在干啥,比如我要查询所有的,我就可以叫selectAll
- resultType:查询结果返回的类型,一般来说都是把对象放到集合中进行返回的,所以我们需要建立一个操作的类,在main的java下创建com.bin.pojo.User(后面也会说的),暂时知道这个地方填啥就行:com.bin.pojo.User即可
- sql:根据你要做的不同操作去写,比如我要查询所有,我就可以写:select * from user(这是我的表名)
修改之后如下:
上面创建了User类,因为要作为返回值,肯定返回的是数据库中表的内容,所以根据数据库中表的内容的属性来创建类的变量:
创建完之后,我们重新打开mybatis-config.xml文件,修改一下里面UserMapper的路径,刚刚我们没有修改,还是默认值,现在将其修改下:
修改之后如下:
5.编码
既然前面操作完成好了。我们就可以最后的测试了。我写了这么多,整个人都麻了
首先是在bin下创建一个测试类(名字随意哈):
写上主函数后就得考虑加载核心配置文件,这个加载的步骤在官网里面也有,不需要记忆,以后用的时候知道在哪里找就行:
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
将这个复制到主函数后发现报错了,是因为包没有导入:
选择第一个,一个一个导入即可:
接下来:
紧接着,我们开始创建SqlSessionFactory对象:
最后:
结果展示:
总结:真的不容易,全部写好了,写到这里只是最基本的会了,还有增删改操作还需要去查询,一定要自己总结,这样才可以学好,注意步骤和过程,有问题可以一起谈论啊,每天进步一点点,做个技术大佬!
mybatis基本操作流程相关推荐
- 手写自己的MyBatis框架-操作流程
1.定义接口Mapper 和方法,用来调用数据库操作. Mapper 接口操作数据库需要通过代理类. 2.定义配置类对象Configuration. 3.定义应用层的API SqlSession.它有 ...
- Mybatis源码解析《一》
导语 在当前的日常开发中,mybatis这样的一个框架的使用,是很多程序员都无法避开的.大多数人都知道mybatis 的作用是为了避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.因为在开 ...
- MyBatis源码流程分析
mybatis核心流程三大阶段 Mybatis的初始化 建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提 ...
- Mybatis使用总结
文章目录 前言 mybatis原理 mybatis流程图 MyBatis原理 mybatis使用流程 1. 引出依赖 2.配置全局配置文件(mybatis-config.xml) 3.与数据库表对应p ...
- 介绍MyBatis代码生成网站(四) --- 继承基类
为什么80%的码农都做不了架构师?>>> 一.简介 网址: http://www.fwjava.com 操作流程: 详见" 介绍MyBatis代码生成网站(一) -- ...
- 剖析如何自己写框架Struts和Mybatis,学其原理而非重复造轮子
Java写框架必会几个技术点 关于学习架构,必须会的几点技术 1. java反射技术 2. xml文件处理 3. properties属性文件处理 4. 线程安全机制 5. annocation注解 ...
- mybatis萌新基础
目录 1.基础操作 1.1概念 2.第一个mybitas例子 2.1操作流程 2.2sql映射 2.3创建主配置文件 2.4指定映射位置 2.5测试 2.6事务的提交 2.7数据的插入操作(利用占位符 ...
- 【数据库】第四章 JDBC、MyBatis
第四章 JDBC.MyBatis 文章目录 第四章 JDBC.MyBatis 一.JDBC 1.介绍 2.架构 3.常用接口 4.操作流程 5.模拟登录功能 一.MyBatis 1.导入 pom.xm ...
- MyBatis第1天
# MyBatis第1天 ##MyBatis大纲 ###1 框架概述 ####1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一 ...
最新文章
- cve -2016-6663 mysql 本地提权
- Quartz分布式实现
- [视频教程] 配置mysql用户的权限并查询数据
- 张霖峰:AV1和VVC的格局将在2023年后明朗
- 店招模块终于可以进行后台换图片了
- 一张图解决Android Studio 项目运行按钮灰色
- 安装独立版本的 Adobe Community Help
- 多线程-线程间通信-多生产者多消费者示例
- 一个关于全局变量的问题
- c语言实验报告4结构体,c语言实验报告结构体.doc
- 2022年0425 ICEM网格划分学习笔记
- arduinouno的地是相连的吗_垫圈锁紧,靠谱吗?
- 运放参数的详细解释和分析压摆率SR
- 202000 - AlphaGo如何进化为孤独求败?
- 谷歌gmail注册入口_Gmail,日历和其他Google Apps即将出现的外观如下
- 计算机心理学测试题目及答案解析,测量心理学考研重点选择题(含答案)
- 在企业中应用的区块链应能够扩容以满足业务条线的需求
- (++a)+=(a++)和(++a)=(++a)+(a++)的区别
- 浅析互联网金融对传统金融的影响
- pytorch创建自己的数据集(分类任务)
热门文章
- Java基本注解详解(超级详细)
- torchtext安装教程
- UE5 Lyra游戏内容制作学习总纲
- 海康威视web无插件开发包webVideoCtrl.js+vue做网页开发
- Object-C---Swift之(七)嵌套函数与闭包
- ThreeJs ObjLoader 编码问题
- stm32毕设 STM32智能饮水机控制系统(源码+硬件+论文)
- 基于Python采集明星照片(含完整代码和图像)
- IsPostBack有什么作用呢?
- matlab变步长的梯形公式,用变步长梯形法计算积分∫sinx/x*x的近似值(二分二次即可)...