027-MyBatis相关配置模板

Posted jepson6669

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了027-MyBatis相关配置模板相关的知识,希望对你有一定的参考价值。

SqlMapConfig.xml

<?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">
<configuration>
    <properties resource="db.properties" >
        <!-- 在properties内部用property定义属性 -->
        <!-- 如果外部配置文件有该属性,则内部定义属性被外部属性覆盖 -->
        <property name="jdbc.username" value="root123" />
        <property name="jdbc.password" value="root123" />
    </properties>
    
    <!-- 别名定义 -->
    <typeAliases>
        <!-- 单个别名定义 -->
        <typeAlias alias="user" type="com.test.mybatis.pojo.User" />
        <!-- 批量别名定义,扫描整个包下的类,别名为类名(大小写不敏感),头字母大小写都可以 -->
        <package name="com.test.mybatis.pojo"/>
        <package name="其他包"/>
    </typeAliases>
    
    
    <!-- 和spring整合后 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://39.105.94.154:3306/mybatis?characterEncoding=utf-8" />
                <property name="username" value="tom" />
                <property name="password" value="tom" /> -->
                
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="sqlmap/User.xml"/>
        <mapper resource="mapper/UserMapper.xml"/>
        
        <!-- mapper的其它配置方式  -->
        <!-- 
            方式1 :使用mapper接口类路径
            <mapper class="com.test.mybatis.mapper.UserMapper"/>
            注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
        -->
        
        <!-- 方式2:注册指定包下的所有mapper接口
            <package name="com.test.mybatis.mapper"/>
            注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。
         -->
    </mappers>
</configuration>

sqlmapper

<?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:命名空间,用于隔离sql,还有一个很重要的作用,后面会讲 -->
<mapper namespace="test">
    <!-- 根据id查询用户 -->
    <select id="queryUserById" parameterType="Integer" resultType="com.test.mybatis.pojo.User">
        <!-- id:statement的id 或者叫做sql的id-->
        <!-- parameterType:声明输入参数的类型 -->
        <!-- resultType:声明输出结果的类型,应该填写pojo的全路径 -->
        <!-- #{}:输入参数的占位符,相当于jdbc的? -->
        select * from user where id = #{id}
    </select>
    
    <!-- 实现根据用户名模糊查询用户 -->
    <!-- 如果返回多个结果,mybatis会自动把返回的结果放在list容器中 -->
    <!-- resultType的配置和返回一个结果的配置一样 -->
    <select id="queryUserByUsername1" parameterType="String" resultType="com.test.mybatis.pojo.User">
        select * from user where username like #{username}
    </select>
    
    <!-- 如果传入的参数是简单数据类型,${}里面必须写value -->
    <select id="queryUserByUsername2" parameterType="String" resultType="com.test.mybatis.pojo.User">
        select * from user where username like ‘%${value}%‘
    </select>
    
    <!-- 添加用户 -->
    <!-- 
        #{username}可以看成是getUsername方法,从User中取出。
     -->
    <insert id="insertUser" parameterType="com.test.mybatis.pojo.User">
        <!-- selectKey 标签实现主键返回 -->
        <!-- keyColumn:主键对应的表中的哪一列 -->
        <!-- keyProperty:主键对应的pojo中的哪一个属性 -->
        <!-- order:设置在执行insert语句前执行查询id的sql,还是在执行insert语句之后执行查询id的sql -->
        <!-- resultType:设置返回的id的类型 -->
        <selectKey keyColumn="id" keyProperty="id" order="AFTER" resultType="Integer">
            select last_insert_id()
        </selectKey>
        insert into user
        (username,birthday,sex,address) values 
        (#{username},#{birthday},#{sex},#{address})
    </insert>
    
    <!-- 修改用户 -->
    <update id="updateUser" parameterType="com.test.mybatis.pojo.User">
        update user
        set
        username=#{username},birthday=#{birthday}
        where 
        id=#{id}
    </update>
    
    <!-- 删除用户 -->
    <delete id="deleteUserById" parameterType="Integer">
        delete from user where
        id=#{id}
    </delete>
</mapper>

数据库database.properties

这个主要是给properties标签使用的

<properties resource="database.properties" ></properties>
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://39.105.94.154:3306/mybatis?characterEncoding=utf-8
jdbc.username=tom
jdbc.password=tom

Mapper动态代理方式的隐射文件

Mapper接口开发需要遵循以下规范:

1、 Mapper.xml文件中的namespacemapper接口的类路径相同。

2、 Mapper接口方法名和Mapper.xml中定义的每个statementid相同

3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql parameterType的类型相同

4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sqlresultType的类型相同

 

<?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:命名空间,用于隔离sql -->
<!-- 还有一个很重要的作用,使用动态代理开发DAO,1. namespace必须和Mapper接口类路径一致 -->
<mapper namespace="com.test.mybatis.mpper.IUserMpper">
    <!-- 根据用户id查询用户 -->
    <!-- 2. id必须和Mapper接口方法名一致 -->
    <!-- 3. parameterType必须和接口方法参数类型一致 -->
    <!-- 4. resultType必须和接口方法返回值类型一致 -->
    <select id="queryUserById" parameterType="Integer" resultType="user">
        select * from user where id = #{id}
    </select>
    <!-- 根据用户名查询用户 -->
    <select id="queryUserByUsername" parameterType="String" resultType="com.test.mybatis.pojo.User">
        select * from user where username like ‘%${value}%‘
    </select>
    <!-- 保存用户 -->
    <insert id="saveUser" parameterType="com.test.mybatis.pojo.User">
        insert into user
        (username,birthday,sex,address)
        values
        (#{username},#{birthday},#{sex},#{address})
    </insert>
</mapper>

 

 

 

 

以上是关于027-MyBatis相关配置模板的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 中的通用代码片段或模板

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段