Mybatis开篇以及配置教程

MyBatis来源~:

MyBatis本是apache的一个开源的项目,原来称为iBatis,2010年这个项目由apache softwarefoundation迁移到了google code,并改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久性框架,是一个SQL映射框架。MyBatis消除了几乎所有的JDBC代码。MyBatis使用简单的XML或注解用于配置和映射,将接口和JavaPOJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录。简单地说,MyBatis将SQL语句从程序里剥离出来,放到配置文件,并将查询结果和持久化类的属性通过配置文件做了映射,相对于HibernateORM框架,它属于一种“半自动化”的ORM实现!

MyBatis的优点以及使用场合!!

MyBatis小巧,简单易学,通过文档和源代码可以比较轻松掌握它的设计思路以及实现。其优点如下:

(1)简单且功能强大!通过SQL映射文件和SqlSession能够实现数据持久层的功能,与JDBC相比减少很多代码量!!

(2)开发猿能够完全为所欲为的控制所执行的SQL语句,尤其适用多表复杂查询!

(3)容易维护和修改。SQL语句写在了配置文件中,只要修改配置文件即可!

其缺点如下:

MyBatis属于半自动化框架的ORM,需要开发人员掌握SQL语句的编写。由于要写SQL语句,不同的数据库要重新修改SQL,因此MyBatis的数据库移植性不好。

MyBatis的适用场合:

如果不需要太多复杂的功能,而需要一个足够灵活的DAO层解决方案,或者对性能的要求很高,那么我介意使用MyBatis!

那么既然我们了解了它的适用场合也就应该了解一下它的不适用哪些场合:

(1)当希望对象的持久化对应用程序完全透明时,可以使用对象/映射方案,如hibernate。

(2)当数据库有移植需求,或者需要支持多种数据库时不要使用MyBatis。

(3)当应用程序需要完全动态的SQL时,如查询的字段都需要动态生成时不要使用MyBatis。

(4)当没有使用关系数据库时,或者使用的不是真正的关系数据库时不要使用MyBatis。

**************************************************************************************************************************

原理性的东西我们就介绍到这里吧,下面我们来使用MyBatis实现对数据库中的部门表进行增, 删, 改, 查;

第一步准备如下jar包!(jar 包下载地址我们可以去MyBatis的官网下载http://code.goole.com/p/mybatis这里我们推荐下载mybatis-3.2.2.zip)

第二步我们来编写与数据库交互的配置文件(名称可以取任意值,因为我们是专业的所以这里我们将其命名为mybatis-config.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="development">
        <environment id="development">
        <!-- 事务策略是JDBC -->
            <transactionManager type="JDBC" />
            <!-- 数据源的方式 POOLED -->
            <dataSource type="POOLED">
                    <property name="driver" value="oracle.jdbc.OracleDriver" />
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                <property name="username" value="orcl" />
                <property name="password" value="orcl" />
            </dataSource>
        </environment>

    </environments>

    <!--映射文件:描述某个实体和数据库表的对应关系 -->
    <mappers>
        <mapper resource="cn/happy/entity/Dept.xml" />
    </mappers>
</configuration>

注意!这里要讲一下其中的集合常用的元素作用:

(1)environments元素:用于配置多个数据环境,这样可以映射多个数据库信息。采用default来指定默认使用哪个数据库环境。environment则是每个数据库环境的具体配置,包括连接信息和事务管理信息。

在MyBatis中有两种事务管理器类型(type="[JDBC|MANAGED]"):

JDBC:直接使用了JDBC控制事务。它依赖于从数据源得到的连接来管理事务范围。

MANAGED:MyBatis自己不负责控制事务,它会让容器来管理事务的整个生命周期(如通过Spring或JavaEE应用服务器)。

数据源类型有三种:UNPOOLED,       POOLED,      JNDI。

UNPOOLED:这个数据源的实现是每次被请求时简单打开和关闭连接。它有一点慢,这是对简单应用程序的一个很好选择,因为它不需要及时的连接。

POOLED:采用连接池以避免创建新的连接实例时必要的初始连接和认证时间。这是一种当前Web应用程序快速响应请求的很流行的方法。

JNDI:这个数据源的实现是为了使用如Spring或应用服务器这类的容器。容器可以集中或在外部配置数据源,MyBatis通过JNDI获取数据源。

(2)mappers元素:包含所有mapper的列表,告诉MyBatis到哪里去找SQL语句。Mapper主要是定义SQL映射文件。

第三步我们需要配置SQL映射文件,命名规范建议实体类名加Mapper.xml后缀这里我将其命名为DeptMapper.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="cn.happy.entity.Dept">
   <!-- 1.1  查询所有部门信息    -->
    <select id="selectAllDept"  resultType="cn.happy.entity.Dept">
    <!-- 这里写的SQL,而不是HQL,SQL中的表名是不区分大小写的 -->
        select * from dept
    </select>

    <!-- 1.1  添加部门信息    -->
    <insert id="insertDept" parameterType="cn.happy.entity.Dept">

        insert into  dept  values(SEQ_Num.nextval,#{deptName})
     </insert>

    <!-- 1.2删除信息    -->
    <delete id="deleteDept" parameterType="cn.happy.entity.Dept">

        delete from  dept  where deptNo=#{deptNo}
     </delete>
        <!-- 1.3修改信息    -->
    <update id="updateDept" parameterType="cn.happy.entity.Dept">
        update  dept set deptName=#{deptName} where deptNo=#{deptNo}
     </update>

     <!-- 1.4 模糊查询   含有市场的部门信息    -->
    <select id="likeDept" parameterType="cn.happy.entity.Dept" resultType="cn.happy.entity.Dept">
        select * from dept where deptName like ‘%${deptName}%‘
     </select>
</mapper>

这样就配置完毕了,最后我们只需创建测试类测试即可

public class Mybatis_Test {
    SqlSession session;
    @Before
    //将开启session的方法提出
    public void mybefore() throws IOException{
        Reader reader = Resources.getResourceAsReader("MyBatis-config.xml");
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sql = builder.build(reader);
         session = sql.openSession();
    }
    @Test
    //查询所有部门的信息
    public void selectAllDeptTest() throws IOException {

        List<Dept> selectList = session.selectList("selectAllDept");
        for (Dept dept : selectList) {
            System.out.println(dept);
        }

    }
    @Test
    //根据编号修改部门信息
    public void updateDeptTest(){
          Dept dept=new Dept();
          dept.setDeptNo(1);
          dept.setDeptName("市场部");

          int count = session.update("cn.happy.entity.Dept.updateDept",dept);
          session.commit();
          System.out.println(count+"update ok!");
          session.close();

    }
    @Test
    //删除一个部门
    public void deleteDeptTest(){
         Dept dept=new Dept();
          dept.setDeptNo(1);
          int count=session.delete("cn.happy.entity.Dept.deleteDept",dept);
          session.commit();
          System.out.println(count+"del ok!");
          session.close();
    }
    @Test
    //模糊查询部门信息 关键词为“财”
    public void likeDeptTest(){
         Dept dept=new Dept();
          dept.setDeptName("财");
          List<Dept> selectList=session.selectList("cn.happy.entity.Dept.likeDept",dept);
         for (Dept dept2 : selectList) {
            System.out.println(dept2);
        }
    }
    @Test
    //添加一个部门
    public void insertDeptTest(){
        Dept dept = new Dept();
        dept.setDeptName("女神部");
        int count = session.insert("cn.happy.entity.Dept.insertDept",dept);
        session.commit();
        System.out.println(count+"添加成功");
    }
}

感兴趣的可以根据如上四个步骤去玩一把,下面内容会逐步更新!!!需要以上素材的可以私聊我   下期再见~~

时间: 2024-10-10 02:17:42

Mybatis开篇以及配置教程的相关文章

Spring+SpringMvc+Mybatis框架集成搭建教程

一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼,网络上又没有很详细的讲解以及搭建的教程.闲来无事,我就利用空闲时间来写这样一个教程和搭建步骤,来帮助那些有问题的小伙伴,让你从此SSM搭建不再有问题. 二.教程目录 1.Spring+SpringMvc+Mybatis框架集成搭建教程一(项目创建) 2.Spring+SpringMvc+Mybat

MyBatis简介与配置MyBatis+Spring+MySql

1.1MyBatis简介 MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架.MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获.MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型.Map 接口和POJO 到数据库记录.相对Hibernate和Apache OJB等"一站式"ORM解决方案而言,Mybatis 是一种"半自动化"的ORM实现.需要使用的Jar包:mybatis-3.0.2.jar(mybatis核

IDEA 初始配置教程 很全偶

IDEA 初始配置教程 如果你是第一次使用 IDEA,或者对 IDEA 常用配置仍然不熟悉,那么本文就特别适合你. 本文只是根据我自己的使用经验来进行配置,不一定适合所有的情况,但是对你肯定会有帮助. IDEA 官方地址 https://www.jetbrains.com/idea/ 官方提供免费的[社区版],还有收费的[高级版](可以免费试用 1 个月). 下面的设置针对[高级版]进行设置,[社区版]由于功能不完整,所以设置也会有所不同,这里不做介绍. 初始启动界面  如果你第一次安装使用,首

MyBatis之旅-配置MyBatis的环境

我使用Gradle来构建MyBatis的依赖,构建代码如下: def mybatisVersion     = "3.3.0" def mybatisSpringVersion = "1.2.3" compile ( "org.mybatis:mybatis-spring:$mybatisSpringVersion", "org.mybatis:mybatis:$mybatisVersion" ) 然后我在项目下再新建一个So

Cocos2d-x 3.x 全平台新手开发配置教程

本文为Cocos2d-x 3.x 全平台(Android,iOS)新手开发配置教程攻略,希望对大家有所帮助.因为这篇文章是面对新手的.所以有些地方会啰嗦一些,请勿见怪.如果教程中有错误,欢迎指正.如果在配置开发平台时还遇到问题,欢迎大家讨论. 本文所使用的环境是PC(Win7),HTC G18,MacBook Air 以及 Mini iPad. 一.通用准备工作 1.安装Cocos2d-x 3.1 在Cocos2d官网上下载Cocos2d-x 3.1引擎,下载后解压缩. 2.安装Eclipse与

MyBatis中的OGNL教程

MyBatis中的OGNL教程 有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL. 如果我们搜索OGNL相关的内容,通常的结果都是和Struts有关的,你肯定搜不到和MyBatis有关的,虽然和Struts中的用法类似但是换种方式理解起来就有难度. MyBatis常用OGNL表达式 e1 or e2 e1 and e2 e1 == e2,e1 eq e2 e1 != e2,e1 neq e2

OpenGL 4.3配置教程

OpenGL 4.3配置教程 下载开发包 需要下载的开发包主要包含如下几个组件:freeglut+glew+ OpenGL.Development.Cookbook+源码+GLM+SOIL. Opengl SDK并不存在,寻找真正的OpenGL开发工具 1.下载 这些软件需要FQ才能下载,所以提供了完整压缩包: freeglut (latest version available from: http://freeglut.sourceforge.net) GLEW (latest versio

Spring、Spring MVC、MyBatis整合文件配置详解

使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. Spring:http://spring.io/docs MyBatis:http://mybatis.github.io/mybatis-3/ 基本的组织结构和用法就不说了,前面的博客和官方文档上都非常的全面.jar包可以使用Maven来组织管理.来看配置文件. web.xml的配置                                           

Mac下Android studio 之NDK配置教程

Mac下Android studio 之NDK配置教程(一) 1.概述 最近项目全线转移到Mac下使用使用Android studio开发.遇到关键代码封装到 ***native***层,此时在win下的NDK配置步骤全部失效. 为此,花费了大量时间用来查阅资料,在此,记录下来,分享给大家供以后配置中作为参考. 2.环境 本人使用的开发配置 是:MAC OS 10.10 +androioid studio 1.2+android-ndk-r10e-darwin-x86_64+git .其他配置类