2019-03-17 原始dao的开发方法

原始dao的开发方法(程序员需要写dao接口和dao实现类)

dao接口

package cn.iven.mybatis.dao;
/**
 * dao接口实现
 */
import cn.iven.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;
}

dao实现类

package cn.iven.mybatis.dao;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

/**
 * dao接口实现类
 */
import cn.iven.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();
        
    }

}

Test

package cn.iven.mybatis.dao;

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 cn.iven.mybatis.po.User;

public class UserDaoImplTest {

    private SqlSessionFactory sqlSessionFactory;
    
    //此方法在执行testFindUserById()之前执行
    @Before
    public void setUp() throws Exception{
        //mybatis配置文件
        String resource = "SqlMapConfig.xml";
        //得到配置文件流
        InputStream inputStream = Resources.getResourceAsStream(resource);
        
        //创建会话工厂,传入mybatis的配置信息
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }
    
    @Test
    public void testFindUserById() throws Exception {
        
        //创建UserDao的对象
        UserDao userDao = new UserDaoImpl(sqlSessionFactory);
        
        //调用UserDao的方法
        User user = userDao.findUserById(28);
        
        System.out.println(user);
    }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文章项目工程结构见mybatis入门之增删改查 一 、SqlSession使用范围 1.1 SqlSessionF...
    Eugene1024阅读 6,927评论 1 13
  • java事务的处理 转 https://www.cnblogs.com/Bonker/p/5417967.html...
    小小的Jobs阅读 5,381评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,902评论 1 32
  • 今天学校星期,我就在家做家务,先把开学这七八天一家人的脏衣服放在洗衣机里面洗着,然后再做其他的,做着做着我...
    醒着前行阅读 1,810评论 0 3
  • 青山路口的那个乞丐对着我哭了五分钟,我没给他一分钱!晦气!我更想哭!候机厅后面的那对夫妻在吵架,我默默玩着手机,并...
    走马不看花阅读 3,012评论 0 0

友情链接更多精彩内容