java之mybatis之配置文件讲解

时间:2021-12-28 16:28:32

1.核心配置文件

<configuration>
    <!-- 它们都是外部化,可替代的属性。可以配置在一个典型的Java 属性文件中,或者通过
        properties 元素的子元素进行配置 -->
    <properties resource="jdbc.properties"></properties>
    <!-- 别名是一个较短的Java 类型的名称。用来设置别名 -->
    <typeAliases>
        <!-- 为指定的包下所有类设置别名,别名默认为类名 -->
        <package name="cn.sxt.vo"/>
        <!-- 为指定的类型设置别名 
        <typeAlias type="cn.sxt.vo.User" alias="User"/>
        -->
    </typeAliases>
    <!-- MyBatis 能够配置多套运行环境,这有助于将您的SQL 映射到多个数据库上。例如,在您的
    开发、测试、生产环境中,您可能有不同的配置。
        default指向默认使用的环境
     -->
    <environments default="development">
        <environment id="development">
            <!-- JDBC – 这个配置直接使用JDBC 的提交和回滚功能。它依赖于从数据源获得连接来管理 事务的生命周期。
                • MANAGED – 这个配置基本上什么都不做。它从不提交或者回滚一个连接的事务。而是让 容器(例如:Spring 或者J2EE 应用服务器)来管理事务的生命周期-->
            <transactionManager type="JDBC" />
            <!-- UNPOOLED – 这个类型的数据源实现只是在每次需要的时候简单地打开和关闭连接。
                POOLED – 这个数据源的实现缓存了JDBC 连接对象,用于避免每次创建新的数据库连接时都初始
                化和进行认证,加快程序响应。并发WEB 应用通常通过这种做法来获得快速响应。
                JNDI – 这个数据源的配置是为了准备与像Spring 或应用服务器能够在外部或者内部配置数据
                源的容器一起使用,然后在JNDI 上下文中引用它。
             -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- sql语句的映射文件配置 -->
        <mapper resource="cn/sxt/vo/UserMapper.xml"/>
    </mappers>
</configuration>

2.映射文件

<mapper namespace="cn.sxt.vo.UserMapper">
    <!-- select用来编写查询的sql语句 id在同一个namespace下是唯一的。 parameterType用来指定参数类型 #{id} 占位符 输入参数将会填充。建议和参数名要相同 resultType 用来指定返回值类型 -->
    <select id="selectUser" parameterType="int" resultType="User">
        select * from t_user where id = #{id}
    </select>
    <!-- insert用来映射插入语句 useGeneratedKeys 为true表示使用主键自增策略 parameterType用来指定参数类型 占位符中的 名称是参数的属性名,并且要提供get/set方法 -->
    <insert id="insertUser" useGeneratedKeys="true" parameterType="User">
        insert into t_user(name,age) values(#{name},#{age})
    </insert>
    <!-- delete 用来指定删除语句 -->
    <delete id="deleteUser" parameterType="int">
        delete from t_user where id=#{id}
    </delete>
    <!-- update 用来指定更新语句 -->
    <update id="updateUser" parameterType="User">
        update t_user set name=#{name},age=#{age} where id=#{id}
    </update>
</mapper>