MyBatis框架的详解
一、MyBatis的介绍
- 在使用的时候,需要配置文件的方式告知框架需要的信息,多数会使用XML文件作为框架的配置文件。
- 框架都是由第三方提供的,提供的都是jar包。因此,使用框架前,必须将框架涉及的jar包导入项目中。
- MyBatis框架是:ORM框架,用于操作数据库,底层是对jdbc进行了封装。
- MyBatis 的前身是 iBatis, 是 Apache 下的一个开源项目,现在被迁移到了 GitHub 上.
- 写配置文件及入门MyBatis的中文网址:http://www.mybatis.org/mybatis-3/zh/getting-started.html
- 使用到的jar包,百度网盘链接:
- 其他框架:
- Spring : 是一个容器;
- SpringMVC:分层框架
- Struts2:功能类似于SpringMVC
- Hibernate : 功能类似于MyBatis
二、配置MyBatis的基本步骤
第一步:核心配置文件
- 核心配置文件,是一个xml文件,命名无要求,位置无要求。不过一般叫做mybatis.xml,放在src目录下。
- 使用官方提供的dtd约束,写核心配置文件
- 核心配置文件的书写在这里就不再多说了,具体的可以去参考MyBatis官网
- 关联映射文件(第二步中有介绍到):
以下是官方提供的dtd约束,需要联网使用
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 扫描mapper文件 –>
<mappers>
<mapper resource="com/bjsxt/mapper/UserMapper.xml" />
</mappers>
第二步:Mapper映射文件
- 在MyBatis中,推荐使用 mapper 作为包名, 我们只需要写一个映射配置文件即可。UserMapper.xml, 用于定义要执行的 SQL 语句, 同时设定返回结果的类型等等
- 需要注意的属性:
- namespace: 命名空间, 可以随意定义, 一般情况下要写全限定路径 MyBatis管理SQL语句是通过namespace+id来定位的
- resultType: 用于设定返回结果的类型(全限定路径) 如果返回结果是集合, 要写集合泛型的类型
第三步:编写测试代码
1、加载MyBatis核心配置文件 【InputStream is = Resources.getResourceAsStream("mybatis.xml"); 】
2、构建SqlSessionFactory工厂对象 【SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is); 】
3、通过工厂打开SqlSession 【SqlSession session = factory.openSession(); 】
4、通过session执行查询操作 【 List<User> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll");System.out.println(list); 】
5、关闭资源 【session.close(); 】
三、使用MyBatis
- MyBatis的常用三个查询方法:
- selectList:用于查询多条数据的情况, 返回值是一个 list 集合. 如果没有查到任 何数据, 返回没有元素的集合(空集合, 不是 null)
例子:【List<User> list = session.selectList("com.bjsxt.mapper.UserMapper.selAll");System.out.println(list); for (User user : list) {
System.out.println(user); }】
- selectOne:用于查询单条数据的情况, 返回值是一个对象. 如果没有查到任何数据, 返回 null
例子:【User user = session.selectOne("com.bjsxt.mapper.UserMapper.selOne"); System.out.println(user)】
- selectMap:用于查询多条数据的情况, 多条数据要形成一个 Map 集合. 需要指 定哪个属性作为 key. 如果查不到, 返回一个空 map 集合(不是 null)
例子:【 Map<Integer, User> map = session.selectMap("com.bjsxt.mapper.UserMapper.selAll", "id"); System.out.println(map);
Set<Integer> set = map.keySet(); for (Integer k : set) { System.out.println(map.get(k)); }】
2.配置信息实现软编程(获取 properties 文件中数据时, 要通过${}的方式获取)
<!-- properties加载外部文件 –>
<properties resource="db.properties" />
3.<typeAliases>标签,起别名
<!-- typeAliases给类型起别名 –>
<typeAliases>
<!-- 给User类起别名为u –>
<typeAlias type="com.bjsxt.pojo.User" alias="u" />
</typeAliases>
<package>给整个包下的所有类定义别名为类名
<typeAliases>
<!-- 给包下的所有类定义别名为类名 –>
<package name="com.bjsxt.pojo" />
</typeAliases>
MyBatis框架的详解的更多相关文章
- 深入浅出mybatis之启动详解
深入浅出mybatis之启动详解 MyBatis功能丰富,但使用起来非常简单明了,今天我们来追踪一下它的启动过程. 目录 如何启动MyBatis 如何使用MyBatis MyBatis启动过程 如何启 ...
- 《深入理解mybatis原理2》 Mybatis初始化机制详解
<深入理解mybatis原理> Mybatis初始化机制详解 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程 ...
- MyBatis Mapper XML 详解
MyBatis Mapper XML 详解 MyBatis 真正的力量是在映射语句中.这里是奇迹发生的地方.对于所有的力量,SQL 映射的 XML 文件是相当的简单.当然如果你将它们和对等功能的 JD ...
- Mybatis源码详解系列(四)--你不知道的Mybatis用法和细节
简介 这是 Mybatis 系列博客的第四篇,我本来打算详细讲解 mybatis 的配置.映射器.动态 sql 等,但Mybatis官方中文文档对这部分内容的介绍已经足够详细了,有需要的可以直接参考. ...
- mybatis代码生成器配置文件详解
mybatis代码生成器配置文件详解 更多详见 http://generator.sturgeon.mopaas.com/index.html http://generator.sturgeon.mo ...
- Hadoop 新 MapReduce 框架 Yarn 详解
Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...
- 测试框架mochajs详解
测试框架mochajs详解 章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建 ...
- 转: javascript模块加载框架seajs详解
javascript模块加载框架seajs详解 SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加 ...
- Android热门网络框架Volley详解[申明:来源于网络]
Android热门网络框架Volley详解[申明:来源于网络] 地址:http://www.cnblogs.com/caobotao/p/5071658.html
随机推荐
- c++处理字符串string.find()与string::npos
1. string s = “xxx”; int a = s.find(‘x’); 如果没有匹配到,那么a = string::npos;
- learning java FileWriter
import java.io.FileWriter; import java.io.IOException; public class FileWriterTest { public static v ...
- Windows用户模式调试内部组件
简介 允许用户模式调试工作的内部机制很少得到充分的解释.更糟糕的是,这些机制在Windows XP中已经发生了根本性的变化,当许多支持被重新编写时,还通过将ntdll中的大多数例程作为本地API的一部 ...
- Windows异常分发函数---KiUserExceptionDispatcher
简介 KiUserExceptionDispatcher 是SEH分发器的用户模式的负责函数.当一个异常发生的时候,该异常将生成一个异常事件,内核检查该异常是否是由于执行用户模式代码导致的.如果是这样 ...
- 【批处理】choice命令,call 命令,start 命令,rem
[1]choice命令简介 使用此命令可以提示用户输入一个选择项,根据用户输入的选择项再决定执行具体的过程. 使用时应该加/c:参数,c: 后应写提示可输入的字符或数字,之间无空格.冒号是可选项. 使 ...
- (LIS)最长上升序列(DP+二分优化)
求一个数列的最长上升序列 动态规划法:O(n^2) //DP int LIS(int a[], int n) { int DP[n]; int Cnt=-1; memset(DP, 0, sizeof ...
- 深入理解数据库索引采用B树和B+树的原因
前面几篇关于数据库底层磁盘文件读取,数据库索引实现细节进行了深入的研究,但是没有串联起来的讲解为什么数据库索引会采用B树和B+树而不是其他的数据结构,例如平衡二叉树.链表等,因此,本文打算从数据库文件 ...
- Win7下安装VS2017、安装Qt5.10.1以及在VS2017添加qt插件
一.安装VS2017 1.下载VS2017 进入vs下载官网https://www.visualstudio.com/zh-hans/downloads/,选择所需要的vs版本,进行在线安装. 2.安 ...
- 刷题记录:[CISCN2019 华北赛区 Day1 Web5]CyberPunk
目录 刷题记录:[CISCN2019 华北赛区 Day1 Web5]CyberPunk 一.知识点 1.伪协议文件读取 2.报错注入 刷题记录:[CISCN2019 华北赛区 Day1 Web5]Cy ...
- Web前端开发规范之脚本文件和动态文本文件命名规则
脚本文件:一般使用脚本功能的英文小写缩写命名 实际模块:例如广告条的javascript文件名为ad.js,弹出窗口的javascript文件名为pop.js 公用模块:js文件命名:英文命名,后缀j ...