mybatis中常用配置文件

7 篇文章 0 订阅
4 篇文章 0 订阅

mybatis中的配置文件

1.全局配置文件

1.1 properties:读取外部资源

properties文件,以key-value形式读取,以=为分隔符

例如:

resources下创建db.properties文件:

 在全局配置文件中进行加载:

    <properties  resource="db.properties">
        <property name="userName" value="root"/>
        <property name="password" value="1234"/>
    </properties>

读取配置位置:

<property name="username" value="${userName}"/>
<property name="password" value="${password}"/>

 如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:

  • 首先读取在 properties 元素体内指定的属性。

  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。

  • 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的则是 properties 元素中指定的属性。

1.2 setting:全局的参数配置

例如:

    <settings>
        <!--开启二级缓存-->
        <setting name="cacheEnabled" value="true"/>
    </settings>

img

1.3 typeAliases:类型别名

类型别名是给设定一个较短的名字,他是和XML配置有关,存在的意义是减少全限定名的冗余。

<typeAliases>
        <!--
        给单个类取别名
        type属性:给定pojo类的全路径
        alias属性:给定的别名 可以随便给定,一般建议是pojo类的首字母小写的类型-->
         <typeAlias type="com.jing.pojo.Student" alias="student"/>
        <!--批量的取别名
        name属性给定的是要批量取别名的包路径
        默认的别名是包下的类名首字母小写,其他不变-->
        <package name="com.jing.pojo"/>
</typeAliases>

mybatis-config.xml:

studentmapper.xml:

1.4 environments:环境变量

 <!--配置数据源-->
    <environments default="development">
        <!--环境配置,可以配置多个环境-->
        <environment id="development">
            <!--事务管理器 使用JDBC的事务管理器-->
            <transactionManager type="JDBC"/>
            <!--数据源  池类型的数据源-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/jing"/>
                <property name="username" value="${userName}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

img

img

1.5 mappers:映射器

定义的SQL语句的配置文件,需要告诉mybatis如何找到这些SQL

主要提供了三种形式:

  <!--映射文件引入-->
    <mappers>
        <!--resource方式: 指定单个映射文件,-->
        <mapper resource="mapper/studentmapper.xml"/>
        
        <!--class方法:通过mapper的接口文件来加载单个映射文件,将mapper接口文件和mapper.xml放在同一个目录下,且名称相同-->
        <mapper class="com.jing.mapper.StudentMapper"/>
        
        <!--package方式:批量加载映射文件,将mapper接口文件和mapper.xml放在同一个目录下,且名称相同-->
        <package name="com.jing.mapper"/>
    </mappers>

2.mapper.xml配置文件解析

2.1 查询操作:

 <!--
    resultMap:显性指定映射关系
    id属性:取名字
    type属性:映射的Java的pojo类的全限定名
    id标签:主键使用id标签,一般返回结果只有一个id标签
    result标签:非主属性使用result标签进行显性指定映射关系
      property属性:映射java的属性名
      column属性:数据库中字段名
      javaType:java属性名的类型
      jdbcType:数据库字段名的类型
      typeHandler:指定类型转换器
    -->
​
    <resultMap id="studentMap" type="student">
        <id property="id" column="SID"/>
        <result property="Sname" column="Sname"/>
        <result property="Ssex" column="Ssex"/>
        <result property="Sage" column="Sage"/>
    </resultMap>
​
    <!--
    select标签:查询操作标签
    id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,
    parameterType:表示参数类型
    parameterMap:表示参数类型 入参是Map类型
    resultType:指定返回类型
    resultMap:指定返回结果类型
​
    #{XXX}:表示占位符  ?
    -->
    <select id="selectStudentById"  parameterType="int" resultMap="studentMap">
        select * from student where SID = #{id}
    </select>

resultMap和resultType的异同点:

相同点:指定返回结果的

不同点: resultType:给定映射的java对象,完成自动映射,如果数据库字段名和java字段一致建议选用resultType

resultMap:需要显性的指定映射关系,如果数据库字段名和java字段不一致必须选用resultMap显性指定映射关系

2.2 删除操作

  <!--delete标签:删除数据
    id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,
    parameterType:入参类型-->

    <delete id="deleteStudentById" parameterType="int"  >
        delete from student where SID = #{id}
    </delete>
​

2.3 插入操作

<!--insert标签:插入数据
    id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,
    parameterType:入参类型
    useGeneratedKeys:表示是否采用数据自增主键 true|false
    keyProperty:主键对应的Java类的属性名 ()
    keyColumn:主键对应的数据库的字段名-->
    <insert id="insertStudent" parameterType="student"  keyProperty="" keyColumn="" useGeneratedKeys="true">
</insert>
   

2.4 变更操作

<!--update标签:变更操作
        id:statementID,一般是对应接口中方法名称,在同一个命名空间下具有唯一性,
        parameterType:入参类型
       keyProperty:主键对应的Java类的属性名-->
    <update id="updateStudent"  parameterType="student">
    </update>
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值