mybatis配置文件

首先是mybatis全局配置文件中主要用到这几个标签:

  1. properties:用来在外部引入properties文件,这样就不需要在环境里面书写驱动,url,name和password,下面的sql环境里面配置就直接使用${指定位置.内容}
<!-- mybatis的主配置文件-->
    <environments default="mysql">
        <!--配置mysql环境 -->
        <environment id="mysql">
            <!--配置事务类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!-- 配置数据库连接的基本信息-->
                <property name="driver" value=""/>
                <property name="url" value=""/>
                <property name="username" value=""/>
                <property name="password" value=""/>
            </dataSource>
        </environment>
    </environments>
  1. settings:进行设置,里面还有一些标签,进行操作设置。

  2. typeAliases:别名处理器,可以用来设置别名。

    3.1 typeAlias里面的type属性指定的是实体类的全限定类名。Alias属性指定别名,如果指定别名,那么不在区分大小写

    3.2 packing标签配置别名:指定配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不在区分大小写。
    eg:

<typeAliases>
		<typeAlias type="com.pojo.User" alias="user"/>
</typeAliases>

这种只能给一个类起别名,要是想给多个起别名,可以在里面多写几个typeAlias子标签,也可以使用package子标签(name属性是要起别名的包)。

<typeAliases>
        <package name="com.pojo"/>
</typeAliases>
  1. typeHandlers:类型处理器,将java和数据库中的类型进行适配。

  2. plugins:插件。可以增加插件进行操作

  3. environments:用来配置环境,因为有的时候可能不仅在一个环境中进行测试,这个时候就可以搭配多个环境,需要在哪个环境中操作就可以使用

  4. databaseIdProvider:支持多数据库厂商来进行操作,可以运行不同的sql语句在不同的数据库中。

  5. mappers:用来进行映射对应的sql文件

    8.1 批量映射:<package name="mapper"/>,将以mapper结尾的文件进行映射
    8.2 单个映射:<mapper resource="mapper/LogMapper.xml"></mapper>
    这种是将一个xml文件进行映射,里面是sql语句,也可以使用class来代替里面的resource,在写上class文件即可,但是这个class必须要使用注解来讲sql语句写在上面。

类的映射文件
resultMap标签:用来配置查询结果的列名和实体类的对应的属性名的对应关系
eg:

<resultMap id="userMap" type="com.gy.domain.User">
        <!-- 主键字段的对应-->
        <id property="id" column="id"></id>     
        <!-- property是java类的属性,严格区分大小写;column是数据库里面对应的列-->
        <!-- 非主键字段的对应-->
        <result property="username" column="username"></result>
        <result property="birthday" column="birthday"></result>
        <result property="sex" column="sex"></result>
        <result property="address" column="address"></result>

</resultMap>

动态sql:及<if><where><foreach>标签
eg:

<!--根据queryVo的id集合查询用户 -->
<select id="findUserInIds" parameterType="com.gy.pojo.QueryVo" resultMap="userMap">
        select * from user
        <where>
            <if test="ids != null and ids.size() > 0">
                <foreach collection="ids" open="and id in (" close=")" item="uid" separator=",">
                    #{uid}
                </foreach>
            </if>
        </where>
</select>

if标签就是语句判断;test属性就是需要判断的语句
where标签是sql语句后面不用写where;如果有where标签就会将where添加在sql后面。
foreach标签就是遍历集合的时候会用到。collection属性是要遍历的集合名;open是语句开头要添加的;close是遍历完后语句要添加的;item就是集合里面的(可以随便起名);separator就是遍历一遍用什么分割的。在中间要遍历的用#{item名}取出即可

在进行CRUD操作的时候;即select,update,delete,insert标签的时候,parameterType就是参数类型(dao层的对应方法的参数类型)
resultType就是返回的结果类型(需要查询出来的类型)
resultMap就是上面定义的userMap,需要用的时候用里面的id就行(作用和resultType类似)
eg:

<!--根据name查询用户 -->
    <select id="findByName" parameterType="java.lang.String" resultType="com.pojo.User">
        select * from user where username like #{username}
    </select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值