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

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>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值