简介

MyBatis是一个Java持久层框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来。mybatis 可以将 preparedStatement 中的输入参数自动进行映射,将查询结果集灵活映射成 java 对象。所以使用 mybatis 我们就可以不用写原生 jdbc 程序,并且能很好的避免 原生 jdbc 中 SQL 注入的问题。

一个完整 mybatis 程序的操作过程

1 配置 mybatis 的全局配置文件 SqlMapConfig.xml(名称不固定),该文件配置了数据源。事务等 mybatis 运行环境。

2 创建 java 文件,封装数据库对象。

3 配置映射文件 mapper.xml(名称不固定), 在该文件中,我们将对数据库封装的对象进行 SQL 语句操作。并在全局配置文件中通过mapper加载该映射文件。

4 另外创建java 文件,通过配置文件,加载 mybatis 运行环境,创建 SqlSessionFactory 会话工厂(SqlSessionFactory 在实际使用时按单例方式)。

5 通过 SqlSessionFactory 创建 SqlSessionSqlSession 是一个面向用户接口(提供操作数据库方法),实现对象是线程不安全的,建议sqlSession 应用场合在方法体内。

6 调用sqlSession的方法去操作数据。如果需要提交事务,需要执行SqlSessioncommit()方法。

7 释放资源,关闭SqlSession

mybatis 实例

下面我们通过一个具体的例子来实现 mybatis 的查询功能。

前提条件

首先是运行 mybatis 需要的前提条件,在这里我们需要连接数据库,所以需要 java 连接 MySQL 数据库的 jar 包,其次还需要 mybatis 的核心包,如果还需要用到日志功能的话还需要 log4j.jar 等,mybatis 的相关依赖可以在 GitHub 上找到:mybatis 地址

我们通过 maven 来导入具体需要的 jar 包,maven 的 pom.xml 中配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.itcast</groupId> <artifactId>mybatis</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- mysql 驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.12</version> </dependency> <!-- test 测试文件 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!-- mybatis 核心jar包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.6</version> </dependency> <!-- mybatis 附加功能包,如日志功能等 --> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.9.6</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-launcher</artifactId> <version>1.9.6</version> </dependency> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>5.2</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.2.5</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.22.0-GA</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>ognl</groupId> <artifactId>ognl</artifactId> <version>3.1.16</version> </dependency> <dependency> <

转载于:https://www.cnblogs.com/loveyoulx/p/9525998.html

mybatis 学习笔记:mybatis 初认识相关推荐

  1. Mybatis学习笔记——Mybatis入门

    文章目录 Mybatis入门 1.为什么要使用mybatis? 2.ORM 3.mybatis简介 4.mybatis框架 5.mybatis入门程序 5.1搭建环境 5.2 配置log4j 5.3 ...

  2. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  3. mybatis学习笔记(7)-输出映射

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...

  4. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  5. MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三

    前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...

  6. ant的下载与安装——mybatis学习笔记之预备篇(一)

    看到这个标题是不是觉得有点奇怪呢--不是说mybatis学习笔记吗,怎么扯到ant了?先别急,请容我慢慢道来. mybatis是另外一个优秀的ORM框架.考虑到以后可能会用到它,遂决定提前学习,以备不 ...

  7. mybatis学习笔记--常见的错误

    原文来自:<mybatis学习笔记--常见的错误> 昨天刚学了下mybatis,用的是3.2.2的版本,在使用过程中遇到了些小问题,现总结如下,会不断更新. 1.没有在configurat ...

  8. mybatis学习笔记(1)-对原生jdbc程序中的问题总结

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(1)-对原生jdbc程序中的问题总结 标签:mybatis [TOC] 本文总结jdbc编程的一般步骤 ...

  9. MyBatis:学习笔记(4)——动态SQL

    MyBatis:学习笔记(4)--动态SQL 转载于:https://www.cnblogs.com/MrSaver/p/7453949.html

  10. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

最新文章

  1. c语言指针编程易错点,C语言中指针的一些易错点!
  2. 月薪 5 万清华姚班 NOI 金牌得主在线征友被群嘲,当代互联网相亲有多难
  3. 会python可以从事什么工作-Python入门后,想要从事自由职业可以做哪方面工作?...
  4. Promise深度学习---我のPromise/A+实现
  5. Attention的梳理、随想与尝试
  6. C++中如何读取一个数的位数_求1000以内的水仙花数
  7. null和undefined相等
  8. 燃料电池厂商的市场竞争
  9. 晚安,2017。你好,2018。
  10. Flume 知识点总结
  11. TensorFlow相关的一些技巧
  12. VGG合成文字数据生成方法
  13. 用MATLAB绘制三维网格图和三维曲面图
  14. 【原创】破解无线路由密码的那些事儿
  15. vue实现倒计时60秒
  16. microsoft edge 浏览器添加兼容网址
  17. ip 子网数目 网络号 主机号 广播地址 可用IP地址范围
  18. 如何在iis中设置可以在网页上面直接下载安卓app并自动安装
  19. 大家都可以学的制作个人网
  20. 信息无障碍专业术语---障碍

热门文章

  1. C# 连接MySQL错误给定关键字不在字典中”,下载最新mysql.dll文件即可
  2. AAAIT学院JDK15新特性JAVA15版本
  3. Linux系统关闭或重新启动主机的命令详解
  4. JAVASE内测试题
  5. c语言格式化输入字符型,C语言——字符串和格式化输入/输出
  6. phpcms漏洞总结
  7. lib和dll的区别、生成以及使用详解
  8. Vue学习(增删改查、ES6模块化概念)-学习笔记
  9. 使用PDB调试Python程序的完整实践
  10. scikit-learn学习笔记(三)Generalized Linear Models ( 广义线性模型 )