欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mybatis框架中的 mybatis-config-xml 核心配置文件 以及mapper.xml映射配置文件

程序员文章站 2022-04-22 10:41:43
...

mybatis框架中的 mybatis-config-xml 核心配置文件 以及mapper.xml映射配置文件

文件头:组件<-configration><-/configration>

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

引用外部的属性文件(jdbc.properties)

 <!--引用外部的属性文件-->
    <properties resource="jdbc.properties">
    <!--     <property name="username" value="root"/>-->
    </properties>

全局信息设置

<!-- 全局信息设置 mapUnderscoreToCamelCase特定格式转换a_bc==aBc-->
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

类型命名

 <typeAliases>
<!--        给具体的实体类取别名-->
        <typeAlias alias="user" type="com.atguigu.pojo.User"></typeAlias>
<!--       注册包名-->
        <package name="com.atguigu.pojo"/>
    </typeAliases>

环境配置

<environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis0621"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>

注册映射文件(单次注册 & 批量注册 注:二者只能写一个,否则会报错)

 <mappers>
<!--单次注册:该包下的单个映射文件及绑定的接口会被注册-->
<!--        <mapper resource="com/atguigu/mapper/UserMapper.xml"/>-->
        <mapper class="com.atguigu.mapper.UserMapper"></mapper>
<!--  批量注册:该包下所有映射文件及绑定的接口都会被注册-->
        <package name="cmo.atguigu.pojo"/>
    </mappers>

mapper.xml映射配置文件

文件头<-mapper><-/mapper>组件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

命名空间

<!--namespace 命名空间(接口的全类名)-->
        <mapper namespace="com.atguigu.mapper.UserMapper">

增删改语句 parameterType
!–
所有的增删改标签没有resultType属性(默认返回值是int受影响的行数)
parameterType :参数类型 [可选的]
参数是pojo #{属性名字}
–>



    <delete id="delUserById" parameterType="int">
        delete from users where id=#{user}
    </delete>

    <update id="updateUser" parameterType="user">
         update users set last_name=#{lastName},sex=#{sex} where id=#{id}
    </update>
    ========================
     <!-- public int addUser(User user);
      获取最新的id值: 最后添加成功的用户id
      useGeneratedKeys:使用数据库id生成策略
      keyProperty: 将最新的id值赋值给当前的属性id
      useGeneratedKeys="true" keyProperty="id" 是insert标签中的属性
      selectKey标签: order属性 执行顺序  after 是添加语句执行之后执行
      keyProperty :pojo属性名字
      resultType: select last_insert_id() 返回值
   -
   =========================
   <insert id="addUser" parameterType="user">
        <selectKey order="AFTER" keyProperty="id" resultType="java.lang.Integer">
            select last_insert_id()
        </selectKey>
        insert into users values(null,#{lastName},#{sex})
    </insert>

查询语句 有resultType

 <select resultType="user" id="getUserById">
            select id ,last_name lastName,sex from users where id = #{id}
    </select>
    
    <select id="listUsers" resultType="user">
        select * from users
    </select>
相关标签: java 后端