10_Mybatis开发Dao方法——mapper代理实现

【工程截图(几个关键的标红框)】

【UserMapper.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.Higgin.Mybatis.mapper.UserMapper">
    <select id="findUserById" parameterType="int" resultType="com.Higgin.Mybatis.po.User">
         SELECT * from USER WHERE id=#{id}
     </select>
 </mapper>

【UserMapper.java】

package com.Higgin.Mybatis.mapper;

import com.Higgin.Mybatis.po.User;

public interface UserMapper {
    //根据id查询用户信息
    public User findUserById(int id) throws Exception;
}

【sqlMapperConfig.xml】

千万不要配置好了UserMapper.xml却忘记加载!

    <!-- 加载映射文件 -->
    <mappers>
        <mapper resource="sqlmap/user.xml"/>

        <mapper resource="mapper/UserMapper.xml"/>    <!-- 这里千万不要为忘了加载 -->
    </mappers>

【UserMapperTest.java】

package com.Higgin.Mybatis.mapper.test;

import static org.junit.Assert.*;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;

import com.Higgin.Mybatis.mapper.UserMapper;
import com.Higgin.Mybatis.po.User;

public class UserMapperTest {

    private SqlSessionFactory sqlSessionFactory ;

    @Before
    public void setUp() throws Exception {
        //创建sqlSessionfactory
        //MyBatis配置文件
        String resource="SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream=Resources.getResourceAsStream(resource);
        //创建会话工厂,传入MyBatis的配置文件信息
        sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    }

    @Test
    public void testFindUserById() throws Exception {

        SqlSession sqlSession =sqlSessionFactory.openSession();

        //创建一个UserMapper对象,Mybatis自动生成mapper代理对象
      UserMapper userMapper=sqlSession.getMapper(UserMapper.class);

        //调用userMapper的方法
        User user = userMapper.findUserById(5);

        System.out.println(user.toString());
    }

}

【运行结果】

时间: 2024-11-05 18:35:58

10_Mybatis开发Dao方法——mapper代理实现的相关文章

09_Mybatis开发Dao方法——mapper代理开发规范

一.开发规范 需要编写mapper.xml映射文件(本项目为userMapper.xml,类似于前面的user.xml). 编写mapper接口需要遵循一些开发规范,这样MyBatis可以自动生成mapper接口实现代理对象. 1.在userMapper中namespace等于mapper接口地址 [UserMapper.xml]中的namespace: 2.UserMapper接口中方法名和UserMapper.xml中的statement的id一致 [UserMapper.java] [Us

MyBatis(3)开发dao方法

本次全部学习内容:MyBatisLearning SqlSession SqlSession是一个面向用户(程序员)的接口. SqlSession中提供了很多操作数据库的方法:如:selectOne(返回单个对象).selectList(返回单个或多个对象).. SqlSession是线程不安全的,在SqlSesion实现类中除了有接口中的方法(操作数据库的方法)还有数据域属性. SqlSession最佳应用场合在方法体内,定义成局部变量使用. SqlSession中封装了对数据库的操作,如:查

Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发(转发同上)

前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)--MyBatis的基础知识.MybatisFirst中存在大量重复的代码.这次简化下代码: 原地址:http://www.cnblogs.com/shanheyongmu/p/7121016.html 使用MyBatis开发Dao,通常有两种方法,即原始Dao开发方法和Mapper接口开发方法. 1.SqlSession使用范围 1.1 SqlsessionFactoryBuilder 通过SqlSessionFac

mybatis开发dao的方法——(三)

------------------------1.    SqlSession使用范围------------------- 1.1     SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory 将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBuilder. 在需要创建SqlSessionFactory时候,只需要new

第二节 Mapper代理开发模式

一:原始的开发dao 实际开发中,我们程序员需要写dao接口和dao的实现类. 1.1 dao接口 1.2 dao实现类 1.3 测试类 总结: 在dao接口实现类方法存在很大大量重复的方法,这样会增加程序员的代码量 调用sqlsession方法时将statement的id硬编码了 比如我根据用户的id查找用户 调用SqlSession调用增删改查的方法时,由于该方法的变量类型使用的泛型,这就在编译阶段,即使类似错误,也不会报错,不利于开发维护 二:mapper代理开发---->相当于一个dao

Mybatis学习记录(五)--整合spring开发Dao

mybatis和spring整合,也就是通过spring管理SqlSessionFactory.mapper接口. 一.导入架包 除了spring的包和mybatis的包,还需要导入两者的整合包,目前这个包由mybatis提供 mybatis-spring-1.2.0.jar 二.一些必要的配置文件 1.log4j配置 需要先导入log4j的架包,然后建立log4j.properties # Global logging configuration #在开发环境中要设置为DEBUG,不然不会打印

【MyBatis学习04】mapper代理方法开发dao

上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的步骤. 使用mapper代理的方法来开发dao时,程序员只需要干两件事即可: 需要编写mapper.xml映射文件 需要编写mapper接口(相当于dao接口) 从做的工作来看,使用mybatis中使用mapper代理来开发dao会很方便,完全不需要我们去写具体的实现类,只需要写出接口即可,但是接口

mybatis框架(入门方法,dao层原始开发方法,mapper代理开发)(sqlserver数据库)

1.入门方法 第一步:mybatis全局环境配置  configurs.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">

mybatis入门基础(二)----原始dao的开发和mapper代理开发

阅读目录 一:原始dao开发方法 二:mapper代理方法(只需要mapper接口,相当于dao接口) 承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先苦后甜嘛! 回到顶部 一:原始dao开发方法 概要:1.在上篇中搭建好的框价中编写dao接口和dao实现类 2.向dao接口实现类中注入SqlSessionFactory,在方法体内通过SqlSe