mybatis框架入门学习教程

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

1.创建工程,导入jar包

创建一个java工程或者web工程都可以,然后导入mybatis的jar包和依赖包还有数据库的jar包,本人使用Oracle10g数据库

mybatis-3.2.2.jar 核心驱动

asm-3.3.1.jar
   cglib-2.2.2.jar
   commons-logging-1.1.1.jar
   javassist-3.17.1-GA.jar
   log4j-1.2.17.jar
   slf4j-api-1.7.5.jar
   slf4j-log4j12-1.7.5.jar
   classes12.jar Oracle10g的jar包

2.创建连接数据库的核心配置文件sqlMapConfig.xml

在src目录底下,创建sqlMapConfig.xml文件

<?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="test">
    <!--测试环境-->
    <environment id="test">
      <!--配置事务 : JDBC事务/MANAGED交给容器的事务-->
      <transactionManager type="JDBC"></transactionManager>
      <!--数据源 : POOLED池化/UNPOOLED非池化/JNDI密码加密,安全性高-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!--服务器环境-->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

3.在src底下创建test文件夹,在test文件夹下创建TestMybatis.java文件

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * Created by luogg on 2017/2/17.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * 测试数据库的连接
     * 1.定义一个String类型的变量resource,指向刚才配置的连接数据库的xml文件
     * 2.创建一个输入流,来读取我们的数据库配置文件
     * 3.输入流创建工厂.
     * 4.有了工厂之后open工厂
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
}

此时,我们可以进行单元测试了,看看session有没有被创建,绿色表示创建成功,那么我们接下来创建数据库表,并且写sql语句

4.创建数据库,并写入数据

CREATE TABLE person(
   ID NUMBER(2),
   NAME VARCHAR2(20),
   sex NUMBER(2),
   age NUMBER(3)
)
-- 写入数据,点击下方锁子按钮,然后点击+
SELECT * FROM person FOR UPDATE

5.在src底下创建com.luogg.domain包,在包下创建Person.java的实体bean

package com.luogg.domain;
/**
 * Created by luogg on 2017/2/17.
 */
public class Person {
  private String name;
  private int sex;
  private int age;
  private int id;
  @Override
  public String toString() {
    return "Person{" +
        "name='" + name + '\'' +
        ", sex=" + sex +
        ", age=" + age +
        ", id=" + id +
        '}';
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getSex() {
    return sex;
  }
  public void setSex(int sex) {
    this.sex = sex;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}

6.创建与数据库对应的映射文件,在src下创建com.luogg.mapper包下创建PersonMapper.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">
<!--配置命名空间,命名空间+ .id 是唯一的sql语句标示符-->
<mapper namespace="com.luogg.mapper.PersonMapper">
  <!--查询所有数据,参数有id,resultType结果集,parameterType参数-->
  <!--注意 : sql语句中如果有要填写集合的,比如查询所有数据,返回一个Person的结果集,那么resultType参数直接写 路径+集合的类型
    比如: 返回一个Person集合,那么就填写Person Bean所在的路径+Person-->
  <select id="find" resultType="com.luogg.domain.Person">
    SELECT * from person
  </select>
</mapper>

7.在核心配置文件sqlMapConfig.xml中做一个映射,让其识别我们的写了sql语句的配置文件

<?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="test">
    <!--测试环境-->
    <environment id="test">
      <!--配置事务 : JDBC事务/MANAGED交给容器的事务-->
      <transactionManager type="JDBC"></transactionManager>
      <!--数据源 : POOLED池化/UNPOOLED非池化/JNDI密码加密,安全性高-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!--服务器环境-->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <!--映射文件mapper-->
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

8.回到测试类TestMybatis.java,访问配置文件中的sql语句并返回结果集

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * Created by luogg on 2017/2/17.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * 测试数据库的连接
     * 1.定义一个String类型的变量resource,指向刚才配置的连接数据库的xml文件
     * 2.创建一个输入流,来读取我们的数据库配置文件
     * 3.输入流创建工厂.
     * 4.有了工厂之后open工厂
     * 5.通过session访问配置文件中的sql语句
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
    //如何访问PersonMapper.xml中的sql语句呢? 命名空间+ .id
    List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.find");
    System.out.println(list.size());
    for(Person p : list){
      System.out.println(p);
    }
  }
}

运行结果 :

以上所述是小编给大家介绍的mybatis框架入门学习教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • mybatis原理概述入门教程

    本文我将要介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,她有什么优缺点以及mybatis和hibernate之间存在着怎么样的关系,希望对小伙伴们有帮助,不足之处,还请多多指教. 什么是mybatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. MyBatis 是支持定

  • MyBatis入门初体验之使用大全(2)

    MyBatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO) 1.所需jar包

  • MyBatis入门学习教程(一)-MyBatis快速入门

    MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO) 首先给大家介绍MyBatis的含义

  • Java Mybatis框架入门基础教程

    一.Mybatis介绍 MyBatis是一款一流的支持自定义SQL.存储过程和高级映射的持久化框架.MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去 设置参数和获取检索结果.MyBatis能够使用简单的XML格式或者注解进行来配置,能够映射基本数据元素.Map接口和POJOs(普通java对象)到数据库中的记录. 二.MyBatis工作流程 (1)加载配置并初始化 触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个

  • Mybatis 开发注解快速入门

    快速普及 1.mybatis是什么 mybatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. Mybatis实现了接口绑定,使用更加方便. 对象关系映射的改进,效率更高 MyBatis采用功能强大的基于OGNL的表达式来

  • Mybatis入门教程(四)之mybatis动态sql

    推荐阅读: MyBatis入门学习教程(一)-MyBatis快速入门  什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误.Mybatis的动态SQL功能正是为了解决这种问题, 其通过 if, choose, when, otherwise, trim, where, set, foreach标签,可组合成非常灵活的SQL语句,从而提高开发人员的效率. 下面就去感受Mybatis动态SQL

  • Mybatis实战教程之入门到精通(经典)

    什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

  • mybatis框架入门学习教程

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 1.创建工程,导入jar包 创建一个java工程或者web工程都可以,然后导入mybatis的jar包和依赖包还有数据库的jar包,本人使用Oracle10g数据库

  • mybatis快速入门学习教程新手注意问题小结

    什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

  • 基于ASP.NET MVC的ABP框架入门学习教程

    为什么使用ABP 我们近几年陆续开发了一些Web应用和桌面应用,需求或简单或复杂,实现或优雅或丑陋.一个基本的事实是:我们只是积累了一些经验或提高了对,NET的熟悉程度. 随着软件开发经验的不断增加,我们发现其实很多工作都是重复机械的,而且随着软件复杂度的不断提升,以往依靠经验来完成一些简单的增删改查的做法已经行不通了.特别是用户的要求越来越高,希望添加的功能越来多,目前这种开发模式,已经捉襟见肘.我很难想象如何在现有的模式下进行多系统的持续集成并添加一些新的特性. 开发一个系统时,我们不可避免

  • MyBatis入门学习教程-MyBatis快速入门

    目录 Mybatis 一.快速开始 1.创建 Maven 项目 2.导入 Maven 依赖 3.配置 Maven 插件 4.新建数据库,导入表格 5.编写 Mybatis 配置文件 6.编写实体类 7.编写 mapper 接口 8.编写 mapper 实现 9.Mybatis 配置文件中,添加 mapper 映射 10.编写 Mybatis 工具类 11.测试 二.日志添加 1.添加 Maven 依赖 2.添加 log4j 配置 3.Mybatis 中配置 LOG 4.执行测试 三.Mybati

  • MyBatis高级映射学习教程

    对mybatis基础入门不太清楚的朋友可以参考下本篇文章:MyBatis入门学习教程(一)-MyBatis快速入门. 认识MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架

  • Vue + OpenLayers 快速入门学习教程

    Openlayers 是一个模块化.高性能并且功能丰富的WebGIS客户端的JavaScript包,用于显示地图及空间数据,并与之进行交互,具有灵活的扩展机制. 简单来说,使用 Openlayers(后面简称ol) 可以很灵活自由的做出各种地图和空间数据的展示.而且这个框架是完全免费和开源的. 前言 本文记录 Vue 使用 OpenLayers 入门,使用 OpenLayers 创建地图组件,分别使用 OpenLayers 提供的地图和本地图片做为地图. Overview OpenLayers

  • Python装饰器入门学习教程(九步学习)

    装饰器(decorator)是一种高级Python语法.装饰器可以对一个函数.方法或者类进行加工.在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果.相对于其它方式,装饰器语法简单,代码可读性高.因此,装饰器在Python项目中有广泛的应用. 这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 # -*- coding:gbk -*- '''示例1: 最简单的函数,表

  • Ajax入门学习教程(一)

    1 什么是AJAX AJAX(Asynchronous JavaScript And XML)翻译成中文就是"异步Javascript和XML".即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML). AJAX还有一个最大的特点就是,当服务器响应时,不用刷新整个浏览器页面,而是可以局部刷新.这一特点给用户的感受是在不知不觉中完成请求和响应过程. 与服务器异步交互: 浏览器页面局部刷新: 2. 同步交互与异步交互 同步交互:客户端发出一个

随机推荐