MyBatis知识系列之三:MyBatis的配置文件:mybatis.cfg.xml和xxx.mapper.xml文件的解析

来源:互联网 发布:java equals重写 编辑:程序博客网 时间:2024/04/28 05:47

1、mybatis.cfg.xml

<configuration>

   <!--environments mybatis可以配置多个环境   default指向默认的环境

      每个SqlSessionFactory对应一个环境environment

   -->

   <environmentsdefault="development">

      <environmentid="development">

         <!-- JDBC – 这个配置直接使用JDBC的提交和回滚功能。它依赖于从数据源获得连接来管理

               事务的生命周期。

            • MANAGED– 这个配置基本上什么都不做。它从不提交或者回滚一个连接的事务。而是让

               容器(例如:Spring或者J2EE 应用服务器)来管理事务的生命周期

          -->

         <transactionManagertype="JDBC"/>

         <!--

            数据源类型:

               UNPOOLED – 这个类型的数据源实现只是在每次需要的时候简单地打开和关闭连接。

               POOLED – 这个数据源的实现缓存了JDBC连接对象,用于避免每次创建新的数据库连接时都初始

               化和进行认证,加快程序响应。并发WEB应用通常通过这种做法来获得快速响应。

               JNDI – 这个数据源的配置是为了准备与像Spring或应用服务器能够在外部或者内部配置数据

               源的容器一起使用,然后在JNDI上下文中引用它

          -->

         <dataSourcetype="POOLED">

            <propertyname="driver"value="com.mysql.jdbc.Driver"/>

            <propertyname="url"value="jdbc:mysql://localhost:3306/test"/>

            <propertyname="username"value="root"/>

            <propertyname="password"value="root"/>

         </dataSource>

      </environment>

   </environments>

   <mappers>

      <!-- 定义映射SQL语句文件。 -->

      <mapperresource="cn/sxt/entity/user.mapper.xml"/>

   </mappers>

</configuration>

2、mapper文件

<!-- namespace命名空间 防止sql语句的id重名

    namespace 命名 包名+类名/包名+mapper文件名

    parameterType sql语句参数类型

    resultType 返回结果类型

    useGeneratedKeys="true" 使用自增主键

 -->

<mappernamespace="cn.sxt.entity.UserMapper">

   <!-- 查询单个用户

      id在该文件中 唯一

     

   -->

   <selectid="selectUser"resultType="cn.sxt.entity.User">

      select * from user where id = #{id}

   </select>

   <!-- 查询所有用户 -->

   <selectid="selectAll"resultType="cn.sxt.entity.User">

      select * from user

   </select>

   <!-- 添加用户 -->

   <insertid="addUser"parameterType="cn.sxt.entity.User"useGeneratedKeys="true">

      insert into user(name,pwd) values(#{name},#{pwd})

   </insert>

   <!-- 更新用户信息 -->

   <updateid="updateUser"parameterType="cn.sxt.entity.User">

      update user set name=#{name},pwd=#{pwd} where id=#{id}

   </update>

   <!-- 删除用户 -->

   <deleteid="deleteUser">

      delete from user where id=#{id}

   </delete>

</mapper>

 

3、执行流程

读取核心配置文件--->sqlSessionFactory类----->sqlSession---->(执行相关操作)

4、优化配置文件

导入properties配置文件

a)在src下加入db.properties配置文件

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/test

username=root

password=root

b)在mybatis.cfg.xml中添加 properties标签

<configuration>

   <!--environments mybatis可以配置多个环境   default指向默认的环境

      每个SqlSessionFactory对应一个环境environment

   -->

   <properties resource="db.properties"/>

   <environmentsdefault="development">

      <environmentid="development">

         <!-- JDBC – 这个配置直接使用JDBC的提交和回滚功能。它依赖于从数据源获得连接来管理

               事务的生命周期。

            • MANAGED– 这个配置基本上什么都不做。它从不提交或者回滚一个连接的事务。而是让

               容器(例如:Spring或者J2EE 应用服务器)来管理事务的生命周期

          -->

         <transactionManagertype="JDBC"/>

         <!--

            数据源类型:

               UNPOOLED – 这个类型的数据源实现只是在每次需要的时候简单地打开和关闭连接。

               POOLED – 这个数据源的实现缓存了JDBC连接对象,用于避免每次创建新的数据库连接时都初始

               化和进行认证,加快程序响应。并发WEB应用通常通过这种做法来获得快速响应。

               JNDI – 这个数据源的配置是为了准备与像Spring或应用服务器能够在外部或者内部配置数据

               源的容器一起使用,然后在JNDI上下文中引用它

          -->

         <dataSourcetype="POOLED">

            <propertyname="driver"value="${driver}"/>

            <propertyname="url"value="${url}"/>

            <propertyname="username"value="${username}"/>

            <propertyname="password"value="${password}"/>

         </dataSource>

      </environment>

   </environments>

 

5、别名的优化

<typeAliases>

      <!-- 为指定类型指名 别名 使得在mapper映射文件中可以简化引用

      <typeAlias type="cn.sxt.entity.User" alias="User"/>

      -->

      <!-- 为某个包下的所有类指定别名 默认别名是对应的类名 -->

      <packagename="cn.sxt.entity"/>

   </typeAliases>

 

0 0
原创粉丝点击