zoukankan      html  css  js  c++  java
  • 13mybatis的DAO层开发

    传统开发方式:

    1. 编写UserDao/UserMapper接口
    2. 编写UserDao/UserMapper实现类,里面有各种增删改查方法
    3. service层创建UserDao/UserMapper,并调用其中方法

    Mybatis的开发方式:代理开发方式(Mapper接口开发)

    • 编写Mapper接口(相当于Dao接口,也在dao包中)
    • Mapper接口的名、方法、参数、返回值等要与映射文件中的一致。

    Mapper接口开发需要遵循的规范:

    1. 映射文件中的namespace和mapper接口的全限定名相同
    2. mapper接口中的方法名要与映射文件中的执行语句id相同
    3. mapper接口中的方法参数要与映射文件中的parameterType的类型相同
    4. mapper接口中的方法返回值类型要与映射文件中的resultType的类型相同

    代码实现:

    1. 定义dao包中的接口

      public interface UserMapper {
          public List<User> findAll() throws IOException;
      }
      
    2. 定义映射文件userMapper.xml(注意其中的namespace/resultType/id)

      <?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.dao.UserMapper">
          <select id="findAll" resultType="com.domain.User">
              select * from user
          </select>
      </mapper>
      
    3. 定义配置文件sqlMapConfig.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配置文件-->
          <properties resource="jdbc.properties"/>
      <!--    数据源环境-->
          <environments default="developement">
              <environment id="developement">
                  <transactionManager type="JDBC"/>
                  <dataSource type="POOLED">
                      <property name="driver" value="${jdbc.driver}"/>
                      <property name="url" value="${jdbc.url}"/>
                      <property name="username" value="${jdbc.username}"/>
                      <property name="password" value="${jdbc.password}"/>
                  </dataSource>
              </environment>
          </environments>
      <!--    加载映射文件-->
          <mappers>
              <mapper resource="UserMapper.xml"/>
          </mappers>
      
      </configuration>
      
    4. 测试

      InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
      SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(resourceAsStream);
      SqlSession sqlSession = factory.openSession();
      // 这里和原来的不一样
      // 这里使用了getMapper方法
      UserMapper mapper = sqlSession.getMapper(UserMapper.class);
      List<User> all = mapper.findAll();
      System.out.println(all);
      
  • 相关阅读:
    JVM调优总结(四)-垃圾回收面临的问题
    JVM调优总结(三)-基本垃圾回收算法
    JVM调优总结(二)-一些概念
    Java8 Lambda表达式教程
    Java8 Lambda表达式教程
    Java8 Lambda表达式教程
    JVM调优总结(一)-- 一些概念
    Hibernate 3中如何获得库表所有字段的名称
    easyUI-datagrid带有工具栏和分页器的数据网格
    easyui-tabs
  • 原文地址:https://www.cnblogs.com/mingriyingying/p/13639599.html
Copyright © 2011-2022 走看看