玩转MyBatis框架教程03之核心配置API

MyBatis进阶

1、MyBatis核心配置文件SqlMapConfig.xml

 SqlMapConfig.xml中配置的内容如下:

    <!-- 配置别名 -->

    <typeAliases></typeAliases>

    <!-- 配置多数据库支持  -->

    <databaseIdProvider type="">

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

    </databaseIdProvider>

   

    <!-- 配置全局变量 -->

    <settings>

     <setting name="" value=""/>

    </settings>

   

    <!-- 配置映射 -->

    <mappers>

      <mapper/>

      <package name=""/>

    </mappers>

   

    <!-- 对象工厂 -->

    <objectFactory type="">

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

    </objectFactory>

<!-- 配置插件 -->

    <plugins>

      <plugin interceptor="">

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

      </plugin>

    </plugins>

    <!-- 配置类型转换器 -->

    <typeHandlers>

      <package name=""/>

      <typeHandler handler=""/><

    </typeHandlers>

 <!-- 配置属性文件,如:jdbc.properties -->

    <properties>

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

    </properties>

<!-- 配置数据库环境相关 -->

    <environments default="">

       <environment id="">

          <!-- 数据源连接信息 -->

          <dataSource type="">

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

          </dataSource>

          <!-- 配置事务处理 -->

          <transactionManager type="">

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

          </transactionManager>

       </environment>

    </environments>

标签内容较多,红色标注表示常用,需要重点掌握

<properties>:属性文件配置

Settings:全局配置参数

typeAliases:别名配置

typeHandlers:配置类型转换器

objectFactory:对象工厂

plugins:插件配置

environments:环境变量配置集合

environment:具体环境变量配置项

transactionManager:事务处理配置

dataSource:数据源配置

mappersmapper映射配置

databaseIdProvider:多数据库配置

4.2 properties属性文件配置:

 新建properties

driver=com.mysql.jdbc.Driver

username=root

password=1234

url=jdbc:mysql://localhost:3306/mybatis01?characterEncoding=utf-8

修改SqlMapConfig.xml文件

把value值替换成表达式获取

<!-- 数据库相关配置 -->

    <environments default="development">

        <environment id="development">

            <!-- 声明事务类型 -->

            <transactionManager type="JDBC" />

            <!-- 连接数据库核心配置-->

            <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>

 

1.3 类型别名

类型别名的作用是为缩短类型书写简介,避免代码冗余;

类型别名分为自支持类型和自定义类型

已经为许多常见的Java 类型内建了相应的类型别名。它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。

比较常用的别名(大小写不敏感):string、int、byte、boolean、hashmap、arraylist等。

别名

映射的类型

_byte

byte

_long

long

_short

short

_int

int

_integer

int

_double

double

_float

float

_boolean

boolean

string

String

byte

Byte

long

Long

short

Short

int

Integer

integer

Integer

double

Double

float

Float

boolean

Boolean

date

Date

decimal

BigDecimal

bigdecimal

BigDecimal

object

Object

map

Map

hashmap

HashMap

list

List

arraylist

ArrayList

collection

Collection

iterator

Iterator

 

自定义类型别名:

配置别名

   <typeAliases>

      <!-- 为单个pojo设置别名 -->

      <typeAlias type="com.itcodeschool.domain.User" alias="User"/>

      <!-- 批量设置别名,指定路径到包,会自定将包下所有类设置别名,别名默认类名(类名不去人大小写)  -->

      <typeAlias type="com.itcodeschool.domain"/>

   </typeAliases>

配置别名以后,可以将resultType的com.itcodeschool.domain.User简写为User即可

<!-- id:设置唯一值,resultType 配置返回值类型User-->

    <select id="findUser" resultType="com.itcodeschool.domain.User"> 

    <!-- 编写 SQL 语句 -->

        SELECT * FROM User

    </select>

 

mappers(映射器)

Mapper配置的几种方法:

<mapper resource=" " />

使用相对于类路径的资源

如:<mapperresource="sqlmap/User.xml" />

 

<mapper class=" " />

使用mapper接口类路径

如:<mapperclass="com.itcodeschool.mapper.UserMapper"/>

 

注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。

 

<package name=""/>

注册指定包下的所有mapper接口

如:<package name="com.itcodeschool.mapper"/>

注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。

 

SqlSessionFactoryBuilder

SqlSessionFactoryBuilder用于创建SqlsessionFactory,SqlsessionFactory一旦创建完成就不需要SqlSessionFactoryBuilder了,因为SqlSession是通过SqlSessionFactory生产,所以可以将SqlSessionFactoryBuilder当成一个工具类使用,最佳使用范围是方法范围即方法体内局部变量。

SqlSessionFactory

         SqlSessionFactory是一个接口,接口中定义了openSession的不同重载方法,SqlSessionFactory的最佳使用范围是整个应用运行期间,一旦创建后可以重复使用,通常以单例模式管理SqlSessionFactory。

 

SqlSession

         SqlSession中封装了对数据库的操作,如:查询、插入、更新、删除等。

         SqlSession是一个面向用户的接口,sqlSession中定义了数据库操作方法。

         每个线程都应该有它自己的SqlSession实例。SqlSession的实例不能共享使用,它也是线程不安全的。因此最佳的范围是请求或方法范围。绝对不能将SqlSession实例的引用放在一个类的静态字段或实例字段中。

         打开一个SqlSession;使用完毕就要关闭它。通常把这个关闭操作放到 finally 块中以确保每次都能执行关闭。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值