zoukankan      html  css  js  c++  java
  • 深入浅出mybatis之入门使用

    写在前面

    mybatis是一个持久层框架,可以支持SQL定制和存储过程,实现数据库记录到Java POJO对象之间的映射。
    所以说,mybatis是一个ORM框架。
    这个ORM可以通过2种方式实现:xml配置,java注解。
    使用mybatis可以大大提高数据库应用程序的编写效率,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
    既然mybatis有这么强大的功能,那么如何使用它呢?以及mybatis具体有哪些核心元素和特性呢?

    如何使用mybatis

    mybatis主要是解决数据库应用程序的中POJO对象与数据库记录之前的映射关系的。
    也就是说,只要是涉及关系型数据库的应用编程,都可以使用mybatis作为持久层开发组件。
    而多数与数据库打交道的应用程序通常都是B/S架构,如Java Web应用程序;另外,Spring作为Java世界中非常流行的容器框架,所以通常mybatis存在2种应用场景:
    其一:在Java Web应用中与Spring框架集成在一起使用,将mybatis中的相关组件交给Spring进行管理;
    其二:在普通的数据库应用程序中使用mybatis,此时mybatis的相应组件需要由程序员自己管理;


    在使用mybatis之前,需要对其进行一些基础配置,具体包括:
    1.properties 属性
    2.settings 设置
    3.typeAliases 类型别名
    4.typeHandlers 类型处理器
    5.objectFactory 对象工厂
    6.plugins 插件
    7.environments 环境
    ----environment 环境变量
    --------transactionManager 事务管理器
    --------dataSource
    8.databaseIdProvider 数据库厂商标识
    9.mappers 映射器


    如上这些属性,有些是必须明确配置的,有些可以不用配置,mybatis已经提供了默认值。
    具体来讲,environmentsmappers是必须配置的,其他的可以不用明确配置。
    举个例子: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>
    	<properties resource="jdbc.properties"></properties>
    
    	<settings>
    		<!-- 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 -->
    		<setting name="logImpl" value="LOG4J" />
    		<!-- 是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 
    			的类似映射。 -->
    		<setting name="mapUnderscoreToCamelCase" value="false" />
    	</settings>
    
    	<environments default="development">
    		<environment id="development">
    			<transactionManager type="JDBC" />
    			
    			<!-- 使用自定义的事务管理器: 自动提交事务 -->
    			<!-- <transactionManager type="org.chench.test.mybatis.transaction.MyJdbcTransactionFactory" /> -->
    			<dataSource type="POOLED">
    				<property name="driver" value="${driver}" />
    				<property name="url" value="${url}" />
    				<property name="username" value="${username}" />
    				<property name="password" value="${password}" />
    			</dataSource>
    		</environment>
    	</environments>
    
    	<mappers>
    		<!-- 将SQL语句写在xml文件中 -->
    		<mapper resource="org/chench/test/mybatis/mapper/TestMapper.xml" />
    
    		<!-- 将SQL语句写在Java代码中, 这里有2种方式:  -->
    		<!-- 方式一: 注册每一个映射器接口,需要明确注册每一个接口 -->
    		<!-- 方式二: 指定映射器接口所在包,则该包下的所有映射器接口都会被注册 -->
    		<!-- <mapper class="org.chench.test.mybatis.mapper.impl.TestMapper" /> -->
    		<package name="org.chench.test.mybatis.mapper.impl"/>
    	</mappers>
    </configuration>
    

    详细使用mybatis示例:https://gitee.com/cchanghui/test-mybatis.git

    mybatis核心组件和特性

    1.xml映射文件
    2.动态SQL
    3.映射器注解:在mybatis3上才可用
    4.SQL语句构建器

    【参考】
    http://www.mybatis.org/mybatis-3/zh/index.html

  • 相关阅读:
    @Transactional 什么情况下会失效?
    如何主持一场专业的面试?
    MIT-HIB 心率数据库及相关
    hadoop中Writable类
    XXX.jar has no source attachment
    Win10Eclipse配置个人本地hadoop
    js去除两个数组中重复的元素
    JS找出两个数组中不相同的元素
    flex中order控制元素的排列顺序
    flex中align-self设置侧轴的某元素的对其方式
  • 原文地址:https://www.cnblogs.com/nuccch/p/7689809.html
Copyright © 2011-2022 走看看