mybatis 基本配置

  全局(核心)配置文件                      

mybatis-config.xml

  • 该配置文件没有名称命名的要求
  •  在全局配置文件中引入 DTD约束
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  • 具体配置如下(mybatis的全局配置文件约束的元素节点的顺序,顺序不对会报错)
<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置mybatis 的全局变量 -->
<!-- 引入 xml的dtd约束 -->
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
 <configuration>
       <!-- 导入properties文件 -->
    <properties resource="db.properties"/>
     <!-- 给 mybatis 添加 log4j日志的功能 -->
     <settings>
         <setting name="logImpl" value="LOG4J"/>
     </settings>
    <!-- environments 标签的属性 default 引用 environment的id,表示使用这个环境配置  -->
    <environments default="defa">
        <!-- 声明环境,可声明多个环境,用id区分 -->
        <environment id="defa">
            <!-- 声明使用的事务为 jdbc -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据库所需参数 -->
            <dataSource type="POOLED">
                <property name="driver" value="${dirver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    
    <!-- 引入mapper.xml 资源方式  -->
    <mappers>
        <!-- 使用相对于类路径的资源引用 -->
        <mapper resource="com/mapper/FlowerMapper.xml"/>
        <!-- 使用完全限定资源定位符(URL)不常用 -->
        <mapper url=""/>
        <!-- 接口绑定方式(处理一个接口),前提是配置文件名称要和接口一致,并且在一个包下 -->
        <mapper class="org.mybatis.builder.AuthorMappe"/>
        <!-- 接口绑定方式(和上面功能一样,但是可以处理多个接口),
        将此目录包下的所有的接口 全部注册为映射器,前提是配置文件名称要和接口一致,并且在一个包下 -->
        <package name="org.mybatis.builder" />
    </mappers>
 </configuration>

mapper.xml 映射文件配置 

  • 该配置文件主要用于 SQL 语句的编写,是使用 mybatis 的核心

  常用操作

  1. 增  <insert>标签
  2. 删  <delete>
  3. 改  <insert>
  4. 查  <select>标签

  标签属性

  • id:标签的名称,若使用接口绑定方式,id 必须是接口方法所在类的全限定类名+接口方法名
  • parameterType:可以控制参数类型
  • resultType:返回值类型
    SQL 查询的结果是 基本数据类型或者是与数据库字段对应的Javabean时,才能获取返回的结果
  • resultMap:当 SQL 查询的结果 需要赋值给多个参数时,或一个Javabean 无法对应 数据库的字段时
    使用 resultMap 将 SQL查询的结果自定义赋值。并且可以在 resultMap 中再次调用 一个查询

在核心配置文件中引入

<mappers>
    <mapper resource="com/mapper/abc.xml"/>
</mappers>

 

<?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="a.b">
    <select id="selBookALl" resultType="com.pojo.Books">
       select * from books
    </select>
</mapper>

 

   @Test
    public void test() throws IOException {
        InputStream resource = Resources.getResourceAsStream("mybatis_config.xml");
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resource);
        SqlSession sqlSession = sqlSessionFactory.openSession();
        List<Object> list = sqlSession.selectList("a.b.selBookALl");
        System.out.println(list);
    }
上一篇:Mybatis


下一篇:mybatis使用map传递多参数报错:A query was run and no Result Maps were found for the Mapped Statement