SSM框架对MybatisUtils封装

public class MyBaitsUtil {

          //工厂
    private static SqlSessionFactory factory;
       //线程
    private static  final  ThreadLocal<SqlSession> local= new ThreadLocal<SqlSession>();

    static {
        try {
            //读取配置文件
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            factory  = new SqlSessionFactoryBuilder().build(is);
            
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    public static SqlSessionFactory getSqlSessionFactory() {
           return factory;
    }

    //不传参数  或者参数为false   手动提交    传参为true   自动提交
     //有参构造
    public    static SqlSession  getSqlSession(boolean isAutoCommit){
        //线程里面获取sqlSession
        SqlSession sqlSession = local.get();
        //如果为空  
        if (sqlSession==null){
            sqlSession = factory.openSession(isAutoCommit);
            //只创建一个
            local.set(sqlSession);
        }
        return sqlSession;
    }
     //无参构造
    public static   SqlSession  getSqlSession(){
        return getSqlSession(false);
    }

        //参数为dao时候---类  通过Mapper获取
    public  static <T extends Object>T getMapper(Class<T> c){
        SqlSession sqlSession = getSqlSession(false);
        return  sqlSession.getMapper(c);
    }


}

2.增加操作(添加用户+用户详情)

  @Test
    public  void   testInsertUser(){
        SqlSession sqlSession = MyBaitsUtil.getSqlSession();
        try {

            userDao userDao = sqlSession.getMapper(userDao.class);
            DetailDao detailDao = sqlSession.getMapper(DetailDao.class);
            User user = new User();

            user.setUserId(0);
            user.setUserName("zzh");
            user.setUserPwd("123456");
            user.setUserRealname("张子寒");
            user.setUserImg("02.jpg");
            //插入数据库
            int i = userDao.insertUser(user);

            Detail detail = new Detail();
            detail.setDetailId(0);
            detail.setUserAddr("江西省新余市渝水区");
            detail.setUserTel("1237987429");
            detail.setUserDesc("晒得很黑");
            //将用户表的id添加到用户详情表的id进行关联
            detail.setUserId(user.getUserId());
            //插入数据库
            int insertDetail = detailDao.insertDetail(detail);
            System.out.println(user);
            System.out.println(detail);
            //提交事务
            sqlSession.commit();
            //期望值
//        Assert.assertSame("添加user返回的值",1,i);
//        if (i==1){
//            System.out.println("添加用户成功");
//        }else  if (i!=1){
//            System.out.println("添加用户失败");
//        }
        }catch (Exception e){
            e.printStackTrace();
            //有一个操作失败进行回滚   添加失败
            sqlSession.rollback();
        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值