第三讲 配置文件解析

一、mybatis-config.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>
     <!-- environments:指 mybatis可以配置多个环境;default:指向默认的环境。
           每个SqlSessionFactory对应一个环境environment。
     -->
     <environments default="development">
           <environment id="development">
                <!-- 在MyBatis中有两种事务管理器类型(也就是type="[JDBC|MANAGED]"):
                     JDBC – 这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
                     MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命
                           周期(比如Spring或JEE应用服务器的上下文)。
                 -->
                <transactionManager type="JDBC" />
                <!-- 有三种内建的数据源类型(也就是type="???"):
                     UNPOOLED – 这个数据源的实现是每次被请求时简单打开和关闭连接。
                     POOLED – 这是JDBC连接对象的数据源连接池的实现,用来避免创建新的连接实例时必要的初始连接和认证时间。
                           这是一种当前Web应用程序用来快速响应请求很流行的方法。
                     JNDI – 这个数据源的实现是为了使用如Spring或应用服务器这类的容器,容器可以集中或在外部配置数据源,
                           然后放置一个JNDI上下文的引用。
                 -->
                <dataSource type="POOLED">
                     <property name="driver" value="com.mysql.jdbc.Driver" />
                     <property name="url" value="jdbc:mysql://localhost:3306/test" />
                     <property name="username" value="root" />
                     <property name="password" value="123456" />
                </dataSource>
           </environment>
     </environments>
     <mappers>
           <!-- 定义映射SQL语句的文件 -->
           <mapper resource="com/liujie/model/user.mapper.xml" />
     </mappers>
</configuration>

二、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:命名空间,防止sql语句的id重名。
     namespace命名:包名+类名  / 包名+mapper文件名。
     parameterType:指sql语句参数类型。
     resultType:返回结果类型。
     useGeneratedKeys="true":使用自增主键。
 -->
<mapper namespace="com.liujie.model.UserMapper">
     
     <!-- 查询单个用户
           id在该文件中唯一
      -->
     <select id="selectUser" resultType="com.liujie.model.User">
           select * from user where id = #{id}
     </select>
     
     <!-- 查询所有用户 -->
     <select id="selectAll" resultType="com.liujie.model.User">
           select * from user
     </select>
     
     <!-- 添加用户 -->
     <insert id="addUser" parameterType="com.liujie.model.User" useGeneratedKeys="true">
           insert into user(name, pwd) values(#{name}, #{pwd})
     </insert>
     
     <!-- 更新用户信息 -->
     <update id="updateUser" parameterType="com.liujie.model.User">
           update user set name=#{name}, pwd=#{pwd} where id=#{id}
     </update>
     
     <!-- 删除用户 -->
     <delete id="deleteUser">
           delete from user where id=#{id}
     </delete>
     
</mapper>

三、执行流程

   读取核心配置文件 ---> 创建SqlSessionFactory ---> 获得SqlSession --->(执行相关操作)

四、优化配置文件

      导入properties配置文件

  1. 下加入db.properties配置文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456

  1. 在mybatis-config.xml中添加properties标签

<?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>
     
     <environments default="development">
           <environment id="development">
                <transactionManager type="JDBC" />
                <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="com/liujie/model/user.mapper.xml" />
     </mappers>
</configuration>

五、别名的优化









mybatis-config.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>
     
     <typeAliases>
           <!-- 为指定类型指定别名,使得在mapper映射文件中可以简化引用
           <typeAlias type="com.liujie.model.User" alias="User"/>
            -->
           <!-- 为某个包下的所有类指定别名,默认别名是对应的类名 -->
           <package name="com.liujie.model"/>
     </typeAliases>
     
     <environments default="development">
           <environment id="development">
                <transactionManager type="JDBC" />
                <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="com/liujie/model/user.mapper.xml" />
     </mappers>
</configuration>









user.mapper.xml

<?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">
<mapper namespace="com.liujie.model.UserMapper">
     
     <!-- 查询单个用户 -->
     <select id="selectUser" resultType="User">
           select * from user where id = #{id}
     </select>
     
     <!-- 查询所有用户 -->
     <select id="selectAll" resultType="User">
           select * from user
     </select>
     
     <!-- 添加用户 -->
     <insert id="addUser" parameterType="User" useGeneratedKeys="true">
           insert into user(name, pwd) values(#{name}, #{pwd})
     </insert>
     
     <!-- 更新用户信息 -->
     <update id="updateUser" parameterType="User">
           update user set name=#{name}, pwd=#{pwd} where id=#{id}
     </update>
     
     <!-- 删除用户 -->
     <delete id="deleteUser">
           delete from user where id=#{id}
     </delete>
     
</mapper>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值