MyBatis讲解,简化BookServiceImpl

简化代码

将BookServiceImpl的代码简化

在util包内加入MyBatisUtil

package com.nz.util;

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;
public class MyBatisUtil {
   private static SqlSessionFactory factory;
   
   //保证service层 进行多次dao操作,公用一个SqlSession对象
   private static ThreadLocal<SqlSession>  tl = new ThreadLocal<SqlSession>();
   
   static{
      try {
         String resouce = "mybatis-config.xml";  //代表总配置文件的路径
         InputStream is = Resources.getResourceAsStream(resouce);//使用输入流读取配置文件
         factory = new SqlSessionFactoryBuilder().build(is);//facotry只需要创建一个
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   
   public static SqlSession getSqlSession(){
      SqlSession session = tl.get();
      if(session == null) {
         session = factory.openSession();
         tl.set(session);
      }
      return session;
   }

   //关闭的方法
   public static void close(){
      SqlSession session = tl.get();
      if(session != null){
         session.close();
         tl.set(null);
      }
   }   
}

BookServiceImpl简化成:

public class BookServiceImpl implements BookService {

    //查询
    public List<Book> queryList() {
        //获得sqlSession
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        //获取dao对象 session 代理
        //BookDao.class就是BookDao的类名
        BookDao bookDao = sqlSession.getMapper(BookDao.class);
        List<Book> list = bookDao.selectList();
      //关闭session
        MyBatisUtil.close();
        //反参
        return list;
    }

    //插入
    @Override
    public Boolean addBook(String bookName,String bookAuth,String bookBrief) {
        //获得sqlSession
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        //获得dao层对象  代理
        BookDao bookDao = sqlSession.getMapper(BookDao.class);
        //执行方法
        int i = bookDao.insertBook( bookName, bookAuth, bookBrief);
        if(i>0){
            sqlSession.commit();
            return true;
        }
        //反参
        return false;
    }

    //删除
    @Override
    public boolean removeBook(int id) {
        //获得sqlSession
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        //获得dao层对象  代理
        BookDao bookDao = sqlSession.getMapper(BookDao.class);
        //执行方法
        int i = bookDao.deleteBook(id);
        if(i>0){
            sqlSession.commit();
            return true;
        }
        //反参
        return false;
    }

    //修改
    @Override
    public boolean changeBook(Book book) {
        //获得sqlSession
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        //获得dao层对象  代理
        BookDao bookDao = sqlSession.getMapper(BookDao.class);
                                        //执行方法
        int i = bookDao.updateBook(book);
        if(i>0){
            sqlSession.commit();
            return true;
        }
        //反参
        return false;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值