MyBatis中的两个主要配置文件

mybatis中有两个主要的配置文件:

    1、mybatis-config.xml,这是核心配置文件,主要配置连接数据库的信息SQL映射文件的位置信息

该配置文件详细情况如下:

<?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">

<!--主配置文件 提供了数据库链接信息和sql映射文件的位置信息-->

<configuration>

    <!--

        mybatis-config.xml 文件加入日志配置,可以在控制台输出执行的 sql 语句和参数信息

        settings:控制mybatis全局行为

    -->

    <settings>

        <!-- 设置mybatis输出日志 -->

        <setting name="logImpl" value="STDOUT_LOGGING" />

    </settings>

<!--起别名-->

<typeAliases>

        <!--

                type:是用来指定需要起别名的类

                alias:是用来指定别名的名称

                在使用别名的时候不区分大小写,比如:下行代码所起别名是student,使用的时候写成sTudent,也不会报错。

                别名使用的位置是在xxxMapper.xml   sql映射文件中查询语句的resultType中使用

在映射文件中namespace中不能使用别名

        -->

 

        <!--<typeAliastype="com.yjg.domain.Student"alias="student"></typeAlias>-->

 

        <!--

                下面这种写法更加简洁,会将指定包下的所有类全部自动起别名,别名就是简类名  如果指定包下的类有很多,这样写就特别方便

        -->

        <packagename="com.yjg.domain"/>

</typeAliases>

    <!--

        文件中有可能存在几个数据库信息,这里的default的值应该是其中一个数据库环境的id值

        在该文件中可以是"development",也可以是"online"-->

    <environments default="development">

        <!--

            一个数据库信息的配置环境

            id:是一个唯一值,自定义,表示该环境的名称

        -->

        <environment id="development">

            <!--

                transactionManager:表示mybatis的事务类型(JDBC或者MANAGED

                type="JDBC"(表示使用jdbc中的Connection对象的commit,rollback做事务处理)

                type="MANAGED"   表示交给其它容器来管理事务,比如WebLogic、JBOSS等。如果没有管理事务的

容器,则没有事务。没有事务的含义:只要执一条DML语句,则提交一次。

 

            -->

            <transactionManager type="JDBC"/>

            <!--

                dataSource:表示数据源,连接数据库的

                type的属性值:UNPOOLED|POOLED|JNDI

                         type="UNPOOLED"  表示不使用连接池

                         type="POOLED"   表示使用连接池

                         type="JNDI"  表示采⽤服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器所能拿到DataSource是不一样。如果不是web或者maven的war工程,JNDI是不能使用的。

            -->

            <dataSource type="POOLED">

                <!--

                    driver,url,username,password 是固定的,不能自定义

                -->

                <!-- 数据库的驱动类名-->

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

                <!-- 连接数据库的url字符串-->

                <property name="url" value="jdbc:mysql://localhost:3306/bjpowernode"/>

                <!-- 访问数据库的用户名 -->

                <property name="username" value="root"/>

                <!-- 访问数据库的密码 -->

                <property name="password" value="******"/>

            </dataSource>

        </environment>

        <!--下面是另外一个数据库的配置环境信息-->

        <environment id="online">

            <transactionManager type="JDBC"/>

            <dataSource type="POOLED">

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

                <property name="url" value="jdbc:mysql://localhost:3306/bjpowernode"/>

                <property name="username" value="root"/>

                <property name="password" value="******"/>

            </dataSource>

        </environment>

    </environments>

    <!-- mappers 是指定sql映射文件的位置 -->

    <mappers>

        <!--

                  <mapper>标签可以有多个,每一个<mapper> 指定一个sql映射文件的位置

                  resource:是从类路径开始的路径信息, 从target/classes下开始的

                  具体操作是:在maven中编译代码(compile命令),然后去target/classes目录下找到StudentDao.xml文件,

                  在mapper文件上右击鼠标选择copy path命令,就可以得到该文件的全限定名称

         -->

         <!--

                  这里有四种配置方法,分别是:

                  <mapper resource="studentDao.xml"/>  这种方式studentDao.xml文件必须放到resource目录之下

                  <mapper url="d:///studentDao.xml"/>  这种方式在d盘下必须有studentDao.xml文件   不利于项目的移植

                  <mapper class="com.yjg.dao.StudentDao"/>  这种方式studentDao接口和studentDao.xml文件必须放到一起,在同一目录之下

                  <package name="com.yjg.dao"/> 这种方式使用最多,此时需要将studentDao接口和studentDao.xml文件都放到dao包下并且接口名和.xml文件的主名保持一致,这样dao包下的所有xxx.xml文件都配置好了,使用简单方便

                  注意:这里的xxxMapper.xml与xxxDao.xml都是指sql的映射文件

        -->

        <package name="com.yjg.dao"/>

    </mappers>

</configuration>

    2、XxxxMapper.xml,这个文件是专门用来编写SQL语句的SQL映射的配置文件。(一个数据库表对应一个)

        t_user表,一般会对应一个UserMapper.xml

        t_student表,一般会对应一个StudentMapper.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">

<!-- namespace:叫做命名空间,其值是唯一的,可以是自定义的字符串,这里要求你使用dao接口的全限定名称。-->

<mapper namespace="com.yjg.dao.StudentDao">

    <!--

        id:表示该查询语句的唯一标识,mybatis会根据这个id值来找到要执行的sql语句,要求使用接口中的方法称。

        resultType:表示结果类型,是sql语句执行之后得到的ResultSet被遍历后得到的java对象的类型,其值为类型的全限定名称

    -->

    <select id="selectStudents" resultType="com.yjg.domain.Student">

              select id,name,email,age from student order by id

    </select>

  <--  注意:占位符#{},大括号里面写:pojo(或domain、bean、entity)类的属性名  -->

<!--

        插入数据时获取自动生成的主键

        useGeneratedKeys="true"表示使用自动生成的主键值,如果是"false"表示不使用自动生成的主键值

        keyProperty="id"表示将主键值赋值给Student对象的id属性

-->

    <insert id="insertStudent">

        insert into student values (null,#{name},#{email},#{age})

    </insert>

    <!--  根据id查询学生信息  -->

    <!-- 

           大家注意观察,resultType的值写的是Student类的全限定名称,写这样的名称一般都很长,这里可以写别名 ,别名是在mybatis-config.xml文件中定义的

     -->

    <select id="selectById" resultType="com.yjg.domain.Student">

        select

            name,email,age

        from

            student

        where

            id = #{id}       //这里的{}内部的字符是任意的,但是不建议随便写,最好见名知意写对应实体类的属性名

    </select>

</mapper>

以下是对映射文件中各部分的介绍:

<!-- 该文件是sql映射文件(英文名称:sql mapper) 在这里写sql语句 mybatis会执行该文件中的sql语句

    1.指定约束文件部分:

        <!DOCTYPE mapper

            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

        其中:mybatis-3-mapper.dtd是约束文件的名称,其扩展名是.dtd

        它的作用是:限制、检查在当前文件中出现的标签属性必须符合mybatis的要求

    2.<mapper></mapper>是当前文件的根标签就如同HTML文件中的根标签是<html></html>一样

        其中属性namespace:叫做命名空间,其值是唯一的,可以是自定义的字符串,这里要求你使用dao接口的全限定名称。

    3.在该文件中可以使用特定的标签表示对数据库的特定操作

        <select></select>:表示查询,这里写查询语句

            id:表示该查询语句的唯一标识,mybatis会根据这个id值来找到要执行的sql语句,要求使用接口中的方法名称。

            resultType:表示结果类型,是sql语句执行之后得到的ResultSet被遍历后得到的java对象的类型,其值为类型的全限定名称

        <update></update>:表示更新,在此标签中写更新语句

        <insert></insert>:表示插入,在此标签中写插入语句

        <delete></delete>:表示删除,在此标签中写删除语句

-->

猜你喜欢

转载自blog.csdn.net/heliuerya/article/details/131239189