首页 > 其他分享 >MyBatis封装成工具类:入门大学生的极限

MyBatis封装成工具类:入门大学生的极限

时间:2024-11-17 11:45:32浏览次数:3  
标签:封装 入门 sqlSession static MyBatis return public MybatisTool maiBy

第一篇SDN文章,也不咋会写。这是自己总结了很久才实现的。

废话少说直接上代码。

我得先研究一下代码咋弄上来。

欧克。找到了。那么展示。

这是是主工具java类:

public class MybatisTool {
    // 构造方法私有化
    private MybatisTool(){}
    // 静态内部类
    private static final class MybatisImplement{
        // MybatisTool的实例化的
        private static final MybatisTool domainName = new MybatisTool();
        // 下面需要new的地方的实例化
        private static final SqlSessionFactory sqlSessionFactory;
        // 静态代码块
        static {
            try{
                InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
            }catch (IOException e){
                throw new RuntimeException("读取配置文件失败", e);
            }
        }
    }
    // 返回类的对象
    public static MybatisTool user(){
        return MybatisImplement.domainName;
    }
    // 较少步骤,调用类和接口方法
    public static <Q> Q maiBy(MaiBy<Q> maiBy) {
        return MybatisTool.user().myBatis(maiBy);
    }
    // 接口方法
    public <Q> Q myBatis(MaiBy<Q> maiBy){
        try (SqlSession sqlSession = MybatisImplement.sqlSessionFactory.openSession()){
            // 调用接口方法
            Q result = maiBy.execute(sqlSession);
            sqlSession.commit();
            return result;
        }catch (Exception e){
            System.out.println("读取配置文件失败"+e.getMessage());
        }
        return null;
    }
}

接口类: 

public interface MaiBy<T> {
    // 接口中定义的方法
    T execute(SqlSession sqlSession);
}

用的时候复制下来弄到自己类里面就好了。

 

public boolean sddBrand(Brand brand) {
        // 这块是我第一个版本的mybatis的工具包写的,还是很长的
        /*SqlSessionFactory factory = MySQLUtil.getFactory();
        SqlSession sqlSession = factory.openSession();
        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
        int rows = mapper.addBrand(brand);
        sqlSession.commit();
        sqlSession.close();*/
        // 这里是本次使用 
        int rows = MybatisTool.maiBy(sqlSession -> sqlSession.getMapper(BrandMapper.class/*【‘BrandMapper.class’这里写你的那个mapperr的接口类+Class】*/).addBrand(brand)/*【‘.addBrand(brand)’】这块是你要调用mapper处理数据的方法名(传参)*/);
        return rows > 0;
}

 想学习的下面是用到的知识:

1.泛型:目的穿啥类型都能用

2.静态内部类:一是减少资源的调用。二是增强程序并发

3.static{}静态代码块:基本上好像就上面哪一个正经开发用处

4.异常的处理:处理连接异常用的

5.lambda表达式:一种方法把,我也知道到咋介绍,要是有大佬看到并知到的可以告须小白我。

5.方正先到这的思路就是弄一个工具包->注意一下效能->并发->想到了我们老厉害的实战老师讲过的作文模板+那个lambda表达式和接口的使用。

剩下的就是疯狂的自学+Ai+实践

我也不到搞坏了几个项目还有java文件实验出来的,项目要就是tomact的工件没了运行不了了也不会修复了,Java文件就直接乱套或者成屎山代码。

补充:

咱们能来搜素这些东西的基本都有一定的基础了细节的知识应该都知道可能会有还小白的人这里补充一下:

1.接口类

2.静态方法

3.构造方法

应该就这些了没别的了把。。。。我想不到了

写点感言:

1.还是一个学生比较小白,上面代码啥的,或者语言啥的有问题的欢迎各位大佬指出问题,帮我改进。谢谢谢谢谢谢!!!!!!

2.好多东西都是大白话,要是有的地方还不理解可以找我问。欢迎欢迎!!!!!!!

3.写到这发现少东西了,万一有人复制完不会用咋办emmmm。。需要加个实例去。。让我研究一下啊。

4.写上面的时候发现忘了似乎还用到了lambda表达式。

感谢可以看到这里的个位。

标签:封装,入门,sqlSession,static,MyBatis,return,public,MybatisTool,maiBy
From: https://blog.csdn.net/2402_85760345/article/details/143816621

相关文章

  • HarmonyOS Next 网络加速入门:基础功能全解析
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、引言在当今数字化时代,网络已经成......
  • Pulsar 入门实战(5)--Java 操作 Pulsar
    本文主要介绍使用 Java 来操作Pulsar,文中所使用到的软件版本:Java17.0.7(Pulsar服务使用)、Java1.8.0_341(客户端使用)、Pulsar3.3.0、pulsar-client3.3.0。1、引入依赖<dependency><groupId>org.apache.pulsar</groupId><artifactId>pulsar-client</artifact......
  • HarmonyOS4+NEXT星河版入门与项目实战--------TypeScript语法(循环控制与函数方法)
    文章目录1、循环控制1、for循环与while循环2、数组快捷迭代方法2、函数1、function关键字2、可选参数3、默认参数4、匿名函数5、函数表达式6、结合使用7、函数声明案例1、循环控制1、for循环与while循环2、数组快捷迭代方法数组除了使用常规的for循环......
  • HarmonyOS4+NEXT星河版入门与项目实战--------TypeScript语法(变量声明与条件控制)
    文章目录1、变量声明1、格式与案例2、在线体验TypeScript2、条件控制1、if-else条件控制switch条件控制1、变量声明1、格式与案例TypeScript常见变量主要有string字符串、number数值、boolen布尔、any不确定类型、Object对象类型、Array数组类型以及......
  • HarmonyOS4+NEXT星河版入门与项目实战--------ArkTs语言与TypeScript语法
    文章目录1、ArkTs语言1、ArkTs特点2、ArkTs与Javascript关系2、TypeScript语法1、ArkTs语言在html的开发中,实现一个页面元素,比如Button,往往包含了以下三种要素:JS、HTML、CSS。JS处理逻辑与响应、HTML用来声明标签生成各种页面控件、CSS用来控制着也控件的样式......
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细
    续上篇博客(长期更新)《零基础入门ArcGIS(ArcMap)》实验一(上)----空间数据的编辑与处理(超超超详细!!!)-CSDN博客继续更新        本篇博客内容为道路拓扑检查与修正,有对本实验实验目的、实验介绍有不了解的,可以看下上篇博客。        上篇博客有宝子私信我下载......
  • mybatis 中 foreach collection的常见错误和用法小结(三种)
    主要介绍了mybatis中foreachcollection的用法小结(三种),需要的朋友可以参考下。foreach主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指......
  • 极简 Java 图像处理教程:压缩、封装、编码让传输更轻松!
    1.背景简介及目的这是一个java读取图片流并进行格式转换,图片高质量压缩,ZIP格式转Base64的极简教程。功能需求是在对接农行支付接口时产生的,满足农行二级商户管理接口中上传商户影印件的功能。写这篇博客的目的是分享给大家我在工作中遇到的实际需求,解决问题的思路,以及一些技......
  • CTF web解题 PHP http referer xff使用 burpsuite使用 新手入门 [SWPUCTF 2022 新生赛
    每日emo:burp可以抓包,你可以抓住到她的心吗?[SWPUCTF2022新生赛]xffFlag:NSSCTF{th1s_xff_1s_e4ay}打开靶机抓个包看一下根据打开靶机显示MustbeaccessedfromXiaohong'sowncomputer.传入X-Forwarded-For到127.0.0.1根据提示添加Referer到127.0.0.1......
  • 10分钟入门vue2!!
    概念:Vue是用于构建用户界面的渐进式(就是学一点就能够用一点)框架,总的来说,就是基于数据来构建用户页面,以便于用户看懂。Vue的两种使用方式:1.核心包开发2.核心包加插件加工程化开发1.Vue的基础语法1.创建第一个Vue实例准备容器div引包<scriptsrc="https://cdn.jsdelivr.......