MyBatis框架

2.6 Mapper接口开发MyBatis HelloWorld

  • 编写Mapper接口

public interface EmployeeMapper {

 

         public Employee getEmployeeById(Integer id );      

 

}

 

 

  • 完成两个绑定
  • Mapper接口与Mapper映射文件的绑定

在Mppper映射文件中的<mapper>标签中的namespace中必须指定Mapper接口

的全类名

  • Mapper映射文件中的增删改查标签的id必须指定成Mapper接口中的方法名.
  • 获取Mapper接口的代理实现类对象

         @Test

         public void test()  throws Exception{

                   String resource = "mybatis-config.xml";

                   InputStream inputStream =

                 Resources.getResourceAsStream(resource);

                   SqlSessionFactory sqlSessionFactory =

                                     new SqlSessionFactoryBuilder()

              .build(inputStream);        

                   SqlSession session =

                         sqlSessionFactory.openSession();

 

                   try {

                            //Mapper接口:获取Mapper接口的 代理实现类对象

                            EmployeeMapper mapper =

                 session.getMapper(EmployeeMapper.class);          

                            Employee employee =

                  mapper.getEmployeeById(1006);

                            System.out.println(employee);

                   } finally {

                            session.close();

                   }

       }

 

第3章 MyBatis全局配置文件

3.1 MyBatis全局配置文件简介

  • The MyBatis configuration contains settings and properties that have a dramatic effect on how MyBatis behaves.

MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息。

  • 文件结构如下:

configuration 配置

properties 属性

settings 设置

typeAliases 类型命名

typeHandlers 类型处理器

objectFactory 对象工厂

plugins 插件

environments 环境

environment 环境变量

transactionManager 事务管理器

dataSource 数据源

databaseIdProvider 数据库厂商标识

mappers 映射器

 

 

3.2 properties属性

  • 可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来配置

<properties>

     <property name="driver" value="com.mysql.jdbc.Driver" />

     <property name="url"

             value="jdbc:mysql://localhost:3306/test_mybatis" />

     <property name="username" value="root" />

     <property name="password" value="1234" />

 </properties>

 

 

  • 然而properties的作用并不单单是这样,你可以创建一个资源文件,名为properties的文件,将四个连接字符串的数据在资源文件中通过键值 对(key=value)的方式放置,不要任何符号,一条占一行

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/mybatis_1129

jdbc.username=root

jdbc.password=1234

 

<!--

                   properties: 引入外部的属性文件

                            resource: 从类路径下引入属性文件

                            url:  引入网络路径或者是磁盘路径下的属性文件

-->

<properties resource="db.properties" ></properties>

 

3)在environment元素的dataSource元素中为其动态设置

<environments default="oracle">

                   <environment id="mysql">

                            <transactionManager type="JDBC" />

                            <dataSource type="POOLED">

                                     <property name="driver" value="${jdbc.driver}" />

                                     <property name="url" value="${jdbc.url}" />

                                     <property name="username"

                         value="${jdbc.username}" />

                                     <property name="password"

                         value="${jdbc.password}" />

                            </dataSource>

                   </environment>

       </environments>

 

3.3 settings设置

  • 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
  • 包含如下的setting设置:

<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods"

           value="equals,clone,hashCode,toString"/>
</settings>

 

3.4 typeAliases 别名处理

  • 类型别名是为 Java 类型设置一个短的名字,可以方便我们引用某个类。

<typeAliases>

                 <typeAlias type="com.atguigu.mybatis.beans.Employee"

                   alias="emp"/>

</typeAliases>

 

 

  • 类很多的情况下,可以批量设置别名这个包下的每一个类创建一个默认的别名,就是简单类名小写

<typeAliases>

                 <package name="com.atguigu.mybatis.beans"/>

</typeAliases>

  • MyBatis已经取好的别名