一、MyBatis框架基本介绍:

1、认识 MyBatis:

  • MyBatis 是支持普通 SQL 查询,存储过程和高级映射的持久层框架,严格上说应该是一个 SQL 映射框架

  • 前身是 iBatis,也就是淘宝使用的持久层框架

  • 几乎所有的 JDBC 代码和参数的手工设置以及结果集的处理都可以交给 MyBatis 完成, 而这只需要简单的使用 XML或注解配置 就可以完成。

  • 和 Hibernate 相比更简单、更底层、性能更优异,因此更深入人心,更受企业的青睐。

2、下载地址和文档:

​                        http://mybatis.org/spring/zh/index.html

二、MyBatis 基本使用

1、开发步骤一:拷贝jar包

■ 项目拷贝jar记得先建立一个lib目录

  • mysql连接驱动jar包【MyBatis底层是jdbc】
  • myBatis.jar

2、开发步骤二:编写配置文件【主配置文件和映射文件】

2-1、了解一下MyBatis的配置文件(两种---主配置文件和映射文件):

(1)MyBatis全局配置文件/主配置文件:
  • 起名:不固定,但是需要见名知意,例如:mybatis-config.xml
  • 路径:classpath 的根路径
  • 参考文档:mybatis中文官网的xml配置章节
✿ MyBatis全局配置文件内容:

① 全局配置信息

② 属性配置信息

③ 插件配置信息

配置环境信息事务+连接池

关联映射文件

(2) MyBatis 映射文件/Mapper文件:
  • 起名:不固定,但是需要见名知意,例如:XXXMapper.xml,是哪一个对象的映射文件,例如UserMapper.xml
  • 路径:Mapper 文件应该放到 Mapper接口的路径咱暂时放到domain位置
  • 参考文档:mybatis中文官网的xml映射文件章节
✿ MyBatis 映射文件内容:

编写增删改查sql,把sql存放到insert| update| delete| select 元素中去

结果集映射:解决表中的列和对象属性不匹配问题

③ 缓存配置

2-2、配置文件的约束文件【约束文件在入门章节】:

//mybatis主配置文件 [例如mybatis-config.xml] 的约束文件---mybatis-3-config.dtd 【连网状态它会自动下载】
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"> //mybatis映射文件 [例如UserMapper.xml] 的约束文件---mybatis-mapper.dtd 【连网状态它会自动下载】
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
■ 关联本地文件,以防止网络不好下载失败

2-3、编写主配置文件和映射文件内容

✿ 全局/主配置文件[mybatis-config.xml文件]:
  • 配置环境信息事务+连接池
  • 关联映射文件
  <configuration>
<environments default="dev">
<!-- 开发环境:在以后的事务管理器和链接池都是交给spring框架来管理的 -->
<!-- 1、配置数据库的环境 -->
<environment id="dev">
<!-- ① 事务管理器 -->
<transactionManager type="JDBC"/>
<!-- ② 连接池【连接数据库4要素】 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatisdemo"/>
<property name="username" value="root"/>
<property name="password" value="admin"/>
</dataSource>
</environment>
</environments>
<!-- 2、关联映射文件 -->
<mappers>
<!-- 全局的配置文件是在项目输出路径bin目录下 -->
<!-- classpath路径(默认项目输出路径是bin【即编译成class字节码的文件夹bin,未编译前是在源码src】) -->
<mapper resource="com/shan/hello/UserMapper.xml"/>
</mappers>
</configuration>
✿ 映射文件[UserMapper.xml文件]:
  • 编写增删改查的sql
  <!-- namespace 命名空间:是对应的Mapper接口的全限定名称,咱暂时写类的全限定名称
不同的mappe文件的namespace是不一样的。
mapper的namespace结合id属性【namespace.id】唯一地表示了应用中某一条sql语句。
-->
<mapper namespace="com.shan.hello.UserMapper">
<!-- select标签:用来编写查询sql语句
id: 唯一的标识符,标识被引用的这条sql语句
parameterType:表示执行该sql语句需要的参数类型,建议不屑,MyBatis可以自行推断出来
resultType:把结果集中的每一行数据封装成什么类型的对象
-->
<select id="get" parameterType="java.lang.Long" resultType="com.shan.hello.User">
select * from t_user where id = #{id}
</select>
</mapper>

3、开发步骤三:编写测试代码,测试myBatis执行增删改查操作:

  • 以查询为例:

    加载配置文件

    创建会话工厂对象SqlSessionFactory【好比连接池DataSource】

    通过会话工厂创建会话对象SqlSession【好比连接对象Connection】

    执行crud操作

    关闭资源

	public void testGet() throws IOException {
//1、从classpath路径加载mybatis全局配置文件mybatis-config.xml
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
//2、创建SqlSessoinFactory会话工厂对象,好比连接池DataSource
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//3、创建SqlSession会话对象,好比连接对象Connection
SqlSession session = factory.openSession();
//4、进行数据库操作(CRUD)
User user = session.selectOne("com.shan.hello.UserMapper.get", 300L);
System.out.println(user);
//5、关闭资源
session.close();
}

❀ 总结:开发流程-拷贝jar包,编写配置文件,然后进行测试

学习MyBatis必知必会(2)~MyBatis基本介绍和MyBatis基本使用的更多相关文章

  1. [ 学习路线 ] 2015 前端(JS)工程师必知必会 (2)

    http://segmentfault.com/a/1190000002678515?utm_source=Weibo&utm_medium=shareLink&utm_campaig ...

  2. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  3. 学习《SQL必知必会(第4版)》中文PDF+英文PDF+代码++福达BenForta(作者)

    不管是数据分析还是Web程序开发,都会接触到数据库,SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能. 推荐学习<SQL必知必会(第4版)>,内容丰富,文字简洁明快 ...

  4. 《MySQL必知必会》学习笔记——前言

    前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...

  5. 《SQL必知必会》学习笔记整理

    简介 本笔记目前已包含 <SQL必知必会>中的所有章节. 我在整理笔记时所考虑的是:在笔记记完后,当我需要查找某个知识点时,不需要到书中去找,只需查看笔记即可找到相关知识点.因此在整理笔记 ...

  6. 《SQL必知必会》学习笔记(一)

    这两天看了<SQL必知必会>第四版这本书,并照着书上做了不少实验,也对以前的概念有得新的认识,也发现以前自己有得地方理解错了.我采用的数据库是SQL Server2012.数据库中有一张比 ...

  7. mysql学习--mysql必知必会1

     例如以下为mysql必知必会第九章開始: 正則表達式用于匹配特殊的字符集合.mysql通过where子句对正則表達式提供初步的支持. keywordregexp用来表示后面跟的东西作为正則表達式 ...

  8. mysql学习--mysql必知必会

      上图为数据库操作分类:     下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...

  9. 数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本

    1 首先在開始菜单中打开sql developer: 2. 创建数据库连接 点击左上角的加号 在弹出的对话框中填写username和password 測试假设成功则点击连接,记得角色要写SYSDBA ...

  10. SQL必知必会,带你系统学习

    你一定听说过大名鼎鼎的Oracle.MySQL.MongoDB等,这些数据库都是基于一个语言标准发展起来的,那就是SQL. SQL可以帮我们在日常工作中处理各种数据,如果你是程序员.产品经理或者是运营 ...

随机推荐

  1. 【LeetCode】427. Construct Quad Tree 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  2. LeetCode1238循环码排列

    题目 给你两个整数 n 和 start.你的任务是返回任意 (0,1,2,,...,2n-1) 的排列 p,并且满足: p[0] = start p[i] 和 p[i+1] 的二进制表示形式只有一位不 ...

  3. (4329)Ping pong

    思路:树状数组. 考虑第i个人当裁判,那么只要计算出在他之前比他小的乘在他之后比他大的与在他之前比他大的乘在他之后比他小的,那么用两个树状数组维护一下就行了.复杂的(n*log(n)) 1 #incl ...

  4. [平台建设] HBase平台建设实践

    背景 由于公司业务场景的需要,我们需要开发HBase平台,主要需要以下功能: 建表管理 授权管理 SDK实现 与公司内部系统打通 我们使用的HBase 版本: HBase 1.2.0-cdh5.16. ...

  5. Improving Adversarial Robustness Using Proxy Distributions

    目录 概 主要内容 proxy distribution 如何利用构造的数据 Sehwag V., Mahloujifar S., Handina T., Dai S., Xiang C., Chia ...

  6. 基于 Electron 的 Rubick 2.4k star 啦,同步更新新功能!

    为什么要做 Rubick 其实做 Rubick 1.x 的初衷就是解决自己的问题的:特别需要一款支持自定义插件的桌面端应用来简化使用者安装庞大桌面端应用的臃肿.而且涉及到数据安全的问题,插件只能在公司 ...

  7. rabbitmq-安装部署及基础操作

    rabbitmq 官网: https://www.rabbitmq.com/ yum 安装 rabbitmq # centos7 # In /etc/yum.repos.d/rabbitmq.repo ...

  8. [opencv]图像预处理方案及方式

    像识别中,图像质量的好坏直接影响识别算法的设计与效果精度,那么除了能在算法上的优化外,预处理技术在整个项目中占有很重要的因素,然而人们往往忽略这一点. 图像预处理,将每一个文字图像分检出来交给识别模块 ...

  9. <数据结构>由SearchTree的遍历序列确定树

    目录 XDOJ315. 拓展先序遍历-->二叉树 问题与解答 题后反思:数组树的不足 XDOJ318.先序+中序-->二叉树 问题与解答 题后反思:左右子树赋零 XDOJ320.层序+中序 ...

  10. Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)

    目录 一.提示信息对话框: 二.单选对话框: 三.多选对话框: 四.自定义对话框: 演示项目完整代码: 一.提示信息对话框: //显示提示消息对话框 private void showMsgDialo ...