一、MyBatis的介绍

  1. 在使用的时候,需要配置文件的方式告知框架需要的信息,多数会使用XML文件作为框架的配置文件。
  2. 框架都是由第三方提供的,提供的都是jar包。因此,使用框架前,必须将框架涉及的jar包导入项目中。
  3. MyBatis框架是:ORM框架,用于操作数据库,底层是对jdbc进行了封装。
  4. MyBatis 的前身是 iBatis, 是 Apache 下的一个开源项目,现在被迁移到了 GitHub 上.
  5. 写配置文件及入门MyBatis的中文网址:http://www.mybatis.org/mybatis-3/zh/getting-started.html
  6. 使用到的jar包,百度网盘链接:
  7. 其他框架:
    • Spring : 是一个容器;
    • SpringMVC:分层框架
    • Struts2:功能类似于SpringMVC
    • Hibernate : 功能类似于MyBatis

二、配置MyBatis的基本步骤

第一步:核心配置文件

  1. 核心配置文件,是一个xml文件,命名无要求,位置无要求。不过一般叫做mybatis.xml,放在src目录下。
  2. 使用官方提供的dtd约束,写核心配置文件
  3. 以下是官方提供的dtd约束,需要联网使用

    <!DOCTYPE configuration
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration>

  4. 核心配置文件的书写在这里就不再多说了,具体的可以去参考MyBatis官网
  5. 关联映射文件(第二步中有介绍到):

<!-- 扫描mapper文件 –>

<mappers>

<mapper resource="com/bjsxt/mapper/UserMapper.xml" />

</mappers>

第二步:Mapper映射文件

  1. 在MyBatis中,推荐使用 mapper 作为包名, 我们只需要写一个映射配置文件即可。UserMapper.xml, 用于定义要执行的 SQL 语句, 同时设定返回结果的类型等等
  2. 需要注意的属性:
    • 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

  1. 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框架的详解的更多相关文章

  1. 深入浅出mybatis之启动详解

    深入浅出mybatis之启动详解 MyBatis功能丰富,但使用起来非常简单明了,今天我们来追踪一下它的启动过程. 目录 如何启动MyBatis 如何使用MyBatis MyBatis启动过程 如何启 ...

  2. 《深入理解mybatis原理2》 Mybatis初始化机制详解

    <深入理解mybatis原理> Mybatis初始化机制详解 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章将通过以下几点详细介绍MyBatis的初始化过程 ...

  3. MyBatis Mapper XML 详解

    MyBatis Mapper XML 详解 MyBatis 真正的力量是在映射语句中.这里是奇迹发生的地方.对于所有的力量,SQL 映射的 XML 文件是相当的简单.当然如果你将它们和对等功能的 JD ...

  4. Mybatis源码详解系列(四)--你不知道的Mybatis用法和细节

    简介 这是 Mybatis 系列博客的第四篇,我本来打算详细讲解 mybatis 的配置.映射器.动态 sql 等,但Mybatis官方中文文档对这部分内容的介绍已经足够详细了,有需要的可以直接参考. ...

  5. mybatis代码生成器配置文件详解

    mybatis代码生成器配置文件详解 更多详见 http://generator.sturgeon.mopaas.com/index.html http://generator.sturgeon.mo ...

  6. Hadoop 新 MapReduce 框架 Yarn 详解

    Hadoop 新 MapReduce 框架 Yarn 详解: http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-yarn/ Ap ...

  7. 测试框架mochajs详解

    测试框架mochajs详解 章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建 ...

  8. 转: javascript模块加载框架seajs详解

    javascript模块加载框架seajs详解 SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加 ...

  9. Android热门网络框架Volley详解[申明:来源于网络]

    Android热门网络框架Volley详解[申明:来源于网络] 地址:http://www.cnblogs.com/caobotao/p/5071658.html

随机推荐

  1. Redis的订阅、事务、持久化

    1.Redius的订阅: 运用关键字subscribe订阅: 关键字publish发布: 发布后,订阅的页面才会出现发布的内容. 2.Redis事务: Redis事务与mysql的事务不同,mysql ...

  2. HAVING 搜索条件在进行分组操作之后应用

    HAVING 搜索条件在进行分组操作之后应用: 如:查询帖子访问量大于15的用户id: select t.user_id,u.name,sum(count_view) from t_topic t l ...

  3. cyyz : Day 1 数论整理

    声明:感谢修改这篇博客的dsr Day 1 先说一下上午的听课吧,哎~,简直了,简直(⊙o⊙)…咋说呢,引人入胜???No! 是昏昏欲睡好吧...一点听课欲都没有(强撑....),一上午停下来简直怀疑 ...

  4. SDSC2019【游记】

    目录 SDSC2019 游记 Day0 Day 1 Day2 Day3 Day4 Day5 Day6 Day 7 Day8 SDSC2019 游记 Day0 这次夏令营在日照某大学举行,我很想夸一夸喷 ...

  5. Python配置环境变量

    Python安装完成之后,运行cmd(win+R): 在控制台中输入Python,若安装完成,会在控制台中打开Python:   如果Python未添加至环境变量,则会提示"python不是 ...

  6. 01-复杂度2 Maximum Subsequence Sum (25 分)

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...

  7. hypermesh对msh文件或者cas文件重新命名边界

    原视频下载地址: https://pan.baidu.com/s/1c1Thqm 密码: muhe

  8. Git bash Error: Could not fork child process: There are no available terminals (-1)

    错误信息:Error: Could not fork child process: There are no available terminals (-1) 截图如下: 解决办法: (1)使用cmd ...

  9. 多线程 fork/join 并行计算

    1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 我们再通过 ...

  10. elementui 走马灯图片自适应

    点击单元格后弹出对话框轮播图片,用Carousel 走马灯实现. 希望图片无论分辨率多少,都能在一屏内显示,这时就要用图片自适应. 图片外层容器,使用 flex 布局,设置对齐方式为主轴.交叉轴居中 ...