MyBatis中的小技巧

1. 关于MyBatis中别名机制 : <typeAliases>

在MyBatis的核心配置文件中可以起别名:

namespace不能使用别名机制。resultType可以使用别名机制

<!--起别名-->
<typeAliases>
    <typeAlias type="com.xiaofan.mybatis.pojo.Car" alias="aaa"/>
    <typeAlias type="com.xiaofan.mybatis.pojo.Log" alias="bbb"/>
    或者
    <typeAlias type="com.powernode.mybatis.pojo.Car"/>
    <typeAlias type="com.powernode.mybatis.pojo.Log"/>
  <!-- type: 指定给哪个类型起别名
       alias:指定别名
       注意:别名不缺分大小写。alias属性是可以省略的。有默认的别名。
       省略alias之后,别名就是类的简名,比如:com.xiaofan.mybatis.pojo.Car的别名就是Car/car/cAR/cAr,不缺分大小写。 -->
    
    <!--将这个包下的所有的类全部自动起别名。别名就是类简名。不区分大小写。-->
    <package name="com.powernode.mybatis.pojo"/>
</typeAliases>

2.mybatis-config.xml文件中的mappers标签。

<mapper resource="CarMapper.xml"/> 要求类的根路径下必须有:CarMapper.xml
<mapper url="file:///d:/CarMapper.xml"/> 要求在d:/下有CarMapper.xml文件
<mapper class="全限定接口名,带有包名"/>

mapper标签的属性可以有三个:
    resource:这种方式是从类的根路径下开始查找资源。采用这种方式的话,你的配置文件需要放到类路径当中才行。
    url: 这种方式是一种绝对路径的方式,这种方式不要求配置文件必须放到类路径当中,哪里都行,只要提供一个绝对路径就行。这种方式使用极少,因为移植性太差。
    class: 这个位置提供的是mapper接口的全限定接口名,必须带有包名的。
        思考:mapper标签的作用是指定SqlMapper.xml文件的路径,指定接口名有什么用呢?
            <mapper class="com.powernode.mybatis.mapper.CarMapper"/>
            如果你class指定是:com.powernode.mybatis.mapper.CarMapper
            那么mybatis框架会自动去com/powernode/mybatis/mapper目录下查找CarMapper.xml文件。
        注意:也就是说:如果你采用这种方式,那么你必须保证CarMapper.xml文件和CarMapper接口必须在同一个目录下。并且名字一致。
        CarMapper接口-> CarMapper.xml
        LogMapper接口-> LogMapper.xml
        ....
提醒!!!!!!!!!!!!!!!!!!!!!!!
    在IDEA的resources目录下新建多重目录的话,必须是这样创建:
        com/powernode/mybatis/mapper
    不能这样:
        com.powernode.mybatis.mapper
这种方式在实际开发中是使用的。
<!-- 将包内的映射器接⼝实现全部注册为映射器 前提是:XML文件必须和接口放在一起。并且名字一致。--> 
        <mappers> 
                <package name="com.xiaofan.mybatis.mapper"/> 
        </mappers>
idea配置⽂件模板
mybatis-config.xml和SqlMapper.xml⽂件可以在IDEA中提前创建好模板,以后通过模板创建配置⽂ 件。

4.插入数据时获取自动生成的主键

    useGeneratedKeys="true" 使用自动生成的主键值。
    keyProperty="id" 指定主键值赋值给对象的哪个属性。这个就表示将主键值赋值给Car对象的id属性。
<insert id="insertCarUseGeneratedKeys" useGeneratedKeys="true" keyProperty="赋值的属性名">
    insert into t_car values(null,#{carNum},#{brand},#{guidePrice},#{produceTime},#{carType})
</insert>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值