一、介绍:

  1、MyBatis实际上是Ibatis3.0版本以后的持久化层框架【也就是和数据库打交道的框架】!

  2、和数据库打交道的技术有:

    原生的JDBC技术---》Spring的JdbcTemplate技术

      这些工具都是提供简单的SQL语句的执行,但是和我们这里学的MyBatis框架还有些不同,

      框架是一整套的东西,例如事务控制,查询缓存,字段映射等等。

  3、原生JDBC操作数据库的步骤:

    编写sql---->预编译---->设置参数----->执行sql------->封装结果

  4、原生的JDBC工具的缺点

    1.功能简单,sql语句编写在java代码里面【一旦修改sql,就需要将java及sql都要重新编译!】这属于硬编码高耦合的方式。

    2.我们希望有开发人员自己编写SQL语句,

      并且希望SQL语句与java代码分离,

      将SQL语句编写在xml配置文件中,

      实现数据表中记录到对象之间的映射!

        sql和java编码分开,功能边界清晰,一个专注于业务,一个专注于数据,可以使用简单的XML或注解用于配置和原始映射,

        将接口和Java的POJO映射成数据库中的记录,完成业务+底层数据库的媒介!

  5、MyBatis历史

    原是Apache的一个开源项目iBatis, 2010年6月这 个项目由Apache Software Foundation 迁移到了 Google Code,

      随着开发团队转投Google Code 旗下, iBatis3.x正式更名为MyBatis ,代码于 2013年11月迁移到Github(下载地址见后)。

    iBatis一词来源于“internet”和“abatis”的组合,是 一个基于Java的持久层框架。

    iBatis提供的持久 层框架包括SQL Maps和Data Access Objects、(DAO)

  6、MyBatis简介:

      MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。

      MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

      MyBatis可以使用简单的XML或注解用于配置和原 始映射,将接口和Java的POJO(Plain Old JavaObjects,普通的Java对象)映射成数据库中的记录.

  7、为什么要使用MyBatis?

    MyBatis是一个半自动化的轻量级的持久化层框架。

    JDBC

      – SQL夹在Java代码块里,耦合度高导致硬编码内伤

      – 维护不易且实际开发需求中sql是有变化,频繁修改的情况多见

    Hibernate和JPA

      – 长难复杂SQL,对于Hibernate而言处理也不容易

      – 内部自动生产的SQL,不容易做特殊优化。

      – 基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难。 导致数据库性能下降。

    对开发人员而言,核心sql还是需要自己优化,sql和java编码分开,功能边界清晰,一个专注业务、 一个专注数据。

  8、去哪里找MyBatis?

      https://github.com/mybatis/mybatis-3/

    或者在百度直接搜索mybatis,然后找到github下的地址下载即可!

二、MyBatis的HelloWorld

  1、创建数据库及数据表

      CREATE DATABASE mytabis;
CREATE TABLE tbl_employee(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
last_name VARCHAR(255),
age INT(3),
gender CHAR(1)
)

  然后插入数据;INSERT INTO tbl_emp VALUES(NULL,'张三',20,1);

  2、创建一个动态WEB工程,然后创建与上述数据表对应的实体类:

  3、参考mybatis官方文档]加入需要的jar包

    [mybatis所需要的jar包,和数据库打交道的jar包,以及看打印日志所需要的log4j的jar包]:

        log4j-1.2.17.jar //当然需要注意的是:log4j的jar包是需要log4j.xml文件的

        mybatis-3.4.1.jar

        mysql-connector-java-5.1.37-bin.jar

  4、创建mytabis-config.xml文件并将mybatis文档中的内容复制过来,并将数据库配置信息换成自己的:

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//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="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mytabis"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <!-- 将我们写好的sql映射文件一定要注册到全局配置文件中 -->
  <mappers>
    <mapper resource="EmployeeMapper.xml"/>
  </mappers>
</configuration>

  5、创建测试用例,.复制mybatis官方文档代码,代码如下:

 public class MyBatisTest {
  @Test
  public void test() throws IOException {
    String resource = "mytabis-config.xml";
    InputStream inputStream = Resources.getResourceAsStream(resource);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);     SqlSession sqlSession =null;
    try{
      //2.获取sqlSession实例,能直接执行已经映射的SQL语句
      sqlSession= sqlSessionFactory.openSession();
      //需要两个参数,第一个参数是sql语句的唯一标识,
      //第二个参数是执行sql要用的参数
14       Employee employee = sqlSession.selectOne("com.neuedu.mybatis.EmployeeMapper.selectEmp",1);
      System.out.println(employee);
    }catch(Exception e){     }finally{
      sqlSession.close();
    }   } }

  6、 创建sql语句的映射文件EmployeeMapper.xml;

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="com.neuedu.mybatis.EmployeeMapper">
  <!--
  namespace:名称空间
  id:sql语句的唯一标识
  resultType:返回值类型
  #{id}:接收参数传递过来的id值
  -->
    <select id="selectEmp" resultType="com.neuedu.mybatis.bean.Employee">
      select id,last_name lastName,gender,email from tbl_employee where id = #{id}
    </select>
  </mapper>

MyBatis介绍及使用的更多相关文章

  1. MyBatis - 介绍、简单入门程序

    JDBC编程中的问题     1. 将SQL语句硬编码到Java代码,不利于系统维护.         设想如何解决:将SQL单独抽取出来,在配置文件(xml方式.properties文件)进行配置. ...

  2. Mybatis学习笔记(一) —— mybatis介绍

    一.Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名 ...

  3. (转)MyBatis框架的学习(一)——MyBatis介绍

    http://blog.csdn.net/yerenyuan_pku/article/details/71699343 MyBatis介绍 MyBatis本是apache的一个开源项目iBatis,2 ...

  4. MyBatis 介绍

    MyBatis 介绍 MyBatis 是一款优秀的 ORM(Object Relational Mapping,对象关系映射)框架,它可以通过对象和数据库之间的映射,将程序中的对象自动存储到数据库中. ...

  5. mybatis介绍--基于个人学习JavaWeb的使用

    mybatis介绍 该博文放在javaWeb系列下,目的是记录我们javaWeb阶段所学的知识 @time=2022/3/11/11:52(最近休息玩了两天,今天重新启动生活) 一.mybatis发展 ...

  6. mybatis介绍与环境搭建

    一.不用纯jdbc的原因,即缺点. 1.数据库理解,使用时创建,不用时释放,会对数据库进行频繁的链接开启和关闭,造成数据库的资源浪费,影响数据库的性能.设想:使用数据库的连接池.2.将sql语句硬编码 ...

  7. 深入浅出MyBatis:JDBC和MyBatis介绍

    JDBC相关概念 Java程序都是通过JDBC连接数据库的,通过SQL对数据库编程,JDBC是由SUN公司提出的一些列规范,只定义了接口规范,具体实现由各个数据库厂商去实现,它是一种典型的桥接模式. ...

  8. mybatis介绍安装

    MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map使用简单 ...

  9. Mybatis介绍(一)

    这里介绍的mybatis比较简单, 我做为一个初学者, 记录下个人在学习中方法, 如果那里出错, 希望读者朋友们见谅. 首先这里介绍一下我们下面用的表结构: author表是保存了作者的个人信息, 因 ...

随机推荐

  1. JQuery UI Datepicker中文显示的方法

    出自:http://www.aimks.com/method-to-display-the-jquery-ui-datepicker-chinese.html Query UI Datepicker这 ...

  2. windows下利用VMware安装mac:构建…

    安装条件: 硬件:一台拥有支持虚拟技术的64位双核处理器和2GB以上内存的PC. 注意:运行MAC OS,需要电脑支持虚拟技术(VT),安装时,需要将VT启动,在BIOS中开启. 关于如何检测你的电脑 ...

  3. 转&nbsp;-ALSA&nbsp;配置

    原文地址:-ALSA 配置">转 -ALSA 配置作者:超级大苹果 alsa 音频路径的问题: 在sound/soc/codecs目录中有很多音频codec的codec驱动,我使用的是 ...

  4. 【HDU5391】Zball in Tina Town

    [题目大意] 一个球初始体积为1,一天天变大,第一天变大1倍,第二天变大2倍,第n天变大n倍.问当第 n-1天的时候,体积变为多少.注意答案对n取模. [题解] 根据威尔逊定理:(n-1)! mod ...

  5. Linux常用基本命令 1

    useradd 创建用户. password 修改密码. date 查看时间 man date 帮助文档.f往后翻 b往前翻 q退出.软修改 man hwclock 修改硬件时钟, cal 查看日历 ...

  6. Android Studio 编译提示 No installed build tools found. Please install the Android build tools

    添加 ANDROID_HOME=D:\Android\adt-bundle-windows\sdk 系统变量即可

  7. Debian上SCST的设置

    一)创建SCST,无infiniband支持 1:载入最小化支持 #aptitude install build-essentials linux-headers checkinstall #wget ...

  8. CF1073F Choosing Two Paths

    发现从顶点入手不太方便,我们从这个“公共部分最长”开始考虑问题,因为要求这一条公共部分的链最长,可以联想到树的直径,那么本题就是要求一条类似于直径的东西使两个端点除了直径这一条链之外还有不少于两个的儿 ...

  9. 几种导入osm(openstreetmap)数据的方法

    一osm2pgsql+postgresql+postgis osm2pgsql­——是由OpenStreetMap开发的一个命令行工具负责将OSM数据导入到基于PostgresSql的Postgis的 ...

  10. Django cache

    Django中使用redis 方式一: utils文件夹下,建立redis_pool.py import redis POOL = redis.ConnectionPool(host='127.0.0 ...