07_MyBatis原始的Dao编写方法

【UserDao.java 】

package com.Higgin.Mybatis.dao;

import com.Higgin.Mybatis.po.User;

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

    //添加用户信息
    public void insertUser(User user) throws Exception;

    //删除用户信息
    public void deleteUser(int id) throws Exception;
}

【UserDaoImpl.java】

package com.Higgin.Mybatis.dao;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import com.Higgin.Mybatis.po.User;

public class UserDaoImpl implements UserDao{
    //需要向Dao实现类中注入SqlSessionFactory
    private SqlSessionFactory sqlSessionFactory;
    //这里通过构造方法注入
    public UserDaoImpl(SqlSessionFactory sqlSessionFactory){
        this.sqlSessionFactory=sqlSessionFactory;
    }

    @Override
    public User findUserById(int id) throws Exception {
        SqlSession sqlSession=sqlSessionFactory.openSession();
        User user=sqlSession.selectOne("test.findUserById",id);
        //补充一个释放资源的代码
        sqlSession.close();
        return user;
    }

    @Override
    public void insertUser(User user) throws Exception {
        SqlSession sqlSession=sqlSessionFactory.openSession();
        sqlSession.insert("test.insertUser",user);
        //提交事务,必须!
        sqlSession.commit();
        //补充一个释放资源的代码
        sqlSession.close();
    }

    @Override
    public void deleteUser(int id) throws Exception {
        SqlSession sqlSession=sqlSessionFactory.openSession();
        sqlSession.delete("test.deleteUser",id);
        //提交事务
        sqlSession.commit();
        //补充一个释放资源的代码
        sqlSession.close();
    }
}

【UserDaoTest.java】

【建立Junit测试方法流程】

1.新建一个测试类,右击,选择Junit Test Case

2.如下图选择,点击Next

3.选出需要测试的方法

4.会自动生成以下模板代码

代码如下

package com.Higgin.Mybatis.dao.test;

import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;
import com.Higgin.Mybatis.dao.UserDao;
import com.Higgin.Mybatis.dao.UserDaoImpl;
import com.Higgin.Mybatis.po.User;

public class UserDaoTest{

    private SqlSessionFactory sqlSessionFactory; 

    //此方法在执行testFindUserById() 之前执行
    @Before
    public void setUp() throws Exception {
        //创建sqlSessionfactory
        //MyBatis配置文件
        String resource="SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream=Resources.getResourceAsStream(resource);
        //创建会话工厂,传入MyBatis的配置文件信息       //这里千万别写成SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);    //不然会NullPointerException报错        sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    }

    @Test
    public void testFindUserById() throws Exception {
        //创建UserDao的对象
        UserDao userDao =new UserDaoImpl(sqlSessionFactory);
        //调用UserDao的方法
        User user =userDao.findUserById(4);

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

}

【运行结果】

sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

时间: 2024-10-23 16:01:30

07_MyBatis原始的Dao编写方法的相关文章

【MyBatis学习03】原始dao开发方法及其弊端

上一篇博文总结了一下mybatis的入门,接下来就要开发dao方法了,这篇博文主要总结一下mybatis中原始dao开发的方法,最后并总结一下原始dao开发方法的弊端.mybatis中dao开发应该使用mapper代理的方法,这将在下一篇博文中介绍. 原始dao开发思路比较简单,写个dao接口和dao实现类即可.需要向dao实现类中注入sqlSessionFactory,在方法体内通过sqlSessionFactory创建sqlSession.为什么在方法体内创建呢?因为mybatis中sqlS

mybatis开发dao的方法

mybatis开发dao的方法 1.1     SqlSession使用范围 1.1.1     SqlSessionFactoryBuilder 1 //以流的方式读取总的配置文件 2 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); 3 4 //生成SqlSessionFactory 5 SqlSessionFactory sqlSessionFactory = new SqlSessionFa

java-mybaits-00202-DAO-原始DAO开发方法

原始Dao开发方法需要程序员编写Dao接口和Dao实现类. 原本的ibatis的 需要在dao实现类中注入一个SqlSessionFactory工厂. 1.思路 程序员需要写dao接口和dao实现类. 需要向dao实现类中注入SqlSessionFactory,在方法体内通过SqlSessionFactory创建SqlSession 2  映射文件 使用上一节 3.Dao编写 public interface UserDao { // 一般会把异常抛出 public User getUserBy

mybatis系列-04-mybatis开发dao的方法

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

11Mybatis_mybatis开发Dao的方法

在介绍开发Dao的方法之前先介绍下SqlSession. 1.先介绍一下SqlSessionFactoryBuilder:通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory 将SqlSessionFactoryBuilder当成一个工具类使用即可,不需要使用单例管理SqlSessionFactoryBuilder. 在需要创建SqlSessionFactory时候,只需要new一次SqlSessionFactoryBuilder即可. 2.再介绍一

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

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

MyBatis学习--mybatis开发dao的方法

简介 使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法. 主要概念介绍: MyBatis中进行Dao开发时候有几个重要的类,它们是SqlSessionFactoryBuilder.SqlSessionFactory.SqlSession. SqlSession中封装了对数据库的操作,如:查询.插入.更新.删除等.通过SqlSessionFactory创建SqlSession,而SqlSessionFactory是通过SqlSessionFactoryB

Dao开发方法

使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法. 1.1    需求 将下边的功能实现Dao: 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户信息 1.2    SqlSession的使用范围 SqlSession中封装了对数据库的操作,如:查询.插入.更新.删除等. 通过SqlSessionFactory创建SqlSession,而SqlSessionFactory是通过SqlSessionFactoryBuilder进行

如何编写方法

1.编写方法要考虑的内容 (1)通过项目的需求了解方法要完成的具体任务是什么 (2)确定方法的可访问性(private默认) (3)这个方法调用后能够产生的结果是什么 (4)给这个方法起一个"响亮"的名称 (5)调用这个方法需要的条件是什么(参数) 2.方法具体定义规范 访问修饰符 返回值类型  方法名称(各个参数) { ////方法具体要完成的任务 return 返回值: }