002 Mybatis的入门样例 (通过写实现类来实现)

首先明确

我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式。
不管使用XML还是注解配置。
但是Mybatis它是支持写dao实现类的。

这里只是作为演示,并且提高个人理解

接口

package com.tubai.dao;

import java.util.List;

/**
 *      首先需要明确:
 *        我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式。
 *        不管使用XML还是注解配置。
 *        但是Mybatis它是支持写dao实现类的。
 *         这里采用Impl仅仅是作为演示
 */
public interface UserDaoByImpl {
    List<String> selectAllAddress();
}

实现类

package com.tubai.dao.impl;

import com.tubai.dao.UserDaoByImpl;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

/**
 * 这个实现类的说明请看UserDaoByImpl
 */
public class UserDaoAddressImpl implements UserDaoByImpl {
    private SqlSessionFactory factory = null;
    public UserDaoAddressImpl(SqlSessionFactory factory){
        this.factory=factory;
    }
    @Override
    public List<String> selectAllAddress() {
        SqlSession sqlSession = factory.openSession();
        //从这里我们可以得出 在xml文件中 仅仅有一个id是无法精准定位是哪个接口的方法 还需要namespace进行限定
        List<String> addressList = sqlSession.selectList("com.tubai.dao.UserDaoByImpl.selectAllAddress");
        sqlSession.close();
        return addressList;
    }
}

配置信息

在SqlMapConfig.xml中配置

<mappers>
     <mapper resource="com/tubai/dao/UserDaoByImpl.xml"/>
</mappers>

然后创建一个名为UserDaoByImpl.xml

因为我这得到的结果是String类型的

因此resultType=“java.lang.String”

<?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.tubai.dao.UserDaoByImpl">
    <select id="selectAllAddress" resultType="java.lang.String">
        select address from user;
    </select>
</mapper>

测试类中使用

private static void demo03() throws Exception{
    //演示自己实现Impl的demo
    InputStream is = Resources.getResourceAsStream("SqlMapConfig.xml");
    SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    SqlSessionFactory factory = builder.build(is);
    UserDaoByImpl userDao = new UserDaoAddressImpl(factory);
    List<String> allAddress = userDao.selectAllAddress();
    for (String address : allAddress) {
        System.out.println(address);
    }
    is.close();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值