范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

带你实现简易的JDBC封装

  在我们常规的jdbc操作中,代码冗余问题非常严重,所以我们就想将jdbc六部曲的操作进行封装处理,这样可以我们的操作更方便、简捷。
  演示新增操作:假设我们有一个关于Car信息的数据表,表中有汽车id、汽车名称、汽车颜色、汽车价格,我们此时需要做一个新增操作,我们自己通过Scanner输入要存储的信息,将这些信息写入到数据库中,而问题来了,我们自己手动输入的信息要保存在哪里呢,数组?不行,存是好存但是不方便取用,存了是为了在将数据写入数据库时 取 用;集合?不行,依然不好取用,domain实体对象,这个可以,我们在存值时,通过有参构造方法将我们手动输入的值存到属性中,在做数据库写入时,由于属性是私有的,所以我们通过getXXX()方法取到属性值。
  1.0 版:引入依赖、加载驱动、创建连接、创建命令行对象、执行SQL、各种关闭。 缺点:每一次做CURD操作,都要重新写一遍六部曲操作,而每一次的六部曲操 作中,只有SQL语句不同,于是就有了2.0版
  2.0 版:将SQL语句作为参数传递给CURD操作方法,这样每一次新的操作只需要更改SQL语句即可,但是依然存在很大的问题,1.0版和2.0版都存在SQL注入问题,非常的不安全,所以就有了3.0版。
  3.0 版 :通过采用预处理方式解决SQL注入问题,通过传递参数数组为预处理中的" ?"赋值,操作如下,Parma数组中装有参数数据,通过pstst.setObject()方法为"?"赋值。for(int i = 0;ik1){           //判断"#{"和"}"的索引位置是否获得到了             String key = sql.substring(k1+2,k2);           //通过subString将#{key}中的key截取出来             builder.append(key);           //截取出来后,拼接到事先准备好的builder字符串中             builder.append(",");           //key1于key2之间用逗号隔开             if(k2 得到getxxx方法,从而通过getxxx方法得到对应的属性值 public Object[] getParmaValue(Object parma,String []keys){     Object[] parmaValue = new Object[keys.length];   //将通过getxxx()方法得到的属性值存入数组中     for(int i = 0;i< keys.length;i++){         //keys[0]---->cname         String methodName = "get"+keys[i].substring(0,1).toUpperCase()+keys[i].substring(1);        //get + C + name,通过循环,参考SQLInfo中 key 数组得到,属性对应的getxxx()方法         System.out.println(methodName);       //打印输出获取到getxxx名字         Class clazz = parma.getClass();       //得到Parma类的类映射         try {             Method method = clazz.getMethod(methodName);           //通过反射机制操作Parma中的方法,----->getxxx()方法             Object key = method.invoke(parma);           //执行getxxx()方法             parmaValue[i] = key;           //并将得到的属性值存到事先创建的数组中         } catch (Exception e) {             e.printStackTrace();         }     }     return parmaValue;   //返回含有属性值的数组 }
  通过SQL处理器,我们将getXXX()方法通过程序装入到了数组中,接下来我们就可以执行CURD操作了。public void inserttext(String sql, Car car){     //调用处理器中的SQL语句处理方法    SQLProcessor processor = new SQLProcessor();       //通过处理得到jdbc认识SQL语句和#{key}中的key值     SQLInfo info = processor.getSql(sql);         //通过找到的key值,得到相应的getxxx()方法,并存入数组中     Object[] method = processor.getParmaValue(car,info.getKeys());        //执行sqlSession类中的新增方法     sqlSession session = new sqlSession();    //将处理好的SQL语句和装好的数组交个jdbc,做新增操作     session.insert(info.getSql(),method); }

高通898曝光或小米首发苹果新款M1X笔记本月底出货三星GalaxyZFold3ZFlip3折叠屏看点汇总Hello,大家好,这里是科技V报,我是龙二Pro,昨晚,三星召开全球新品发布会,正式推出了GalaxyZFold3和ZFli苹果新专利曝光这一次,干掉刘海前两天,一个新话题苹果新专利将消除iPhone刘海突降热搜。怎么回事呢?根据新浪科技的报道,苹果成功申请了一项名为可调节显示窗口的电子设备的专利。就是这项专利,解释了iPhone干iPadMini2021版或将在秋季发布,爆料称加量不加价最近有很多关于苹果的信息泄露,其中大部分是关于iPhone13的,预计将在9月发布,但也有一些关于其他产品的信息泄露,包括iPadMini。今年早些时候,有消息称苹果正在研发一款重我国首例女冷冻人展文莲后来怎样了?3年前,我国首例本土女冷冻人展文莲在医院被主治医生宣布死亡,而接下来等待她的不是死亡,而是另一场手术人体冷冻技术。据美国科学家阿伦德雷克介绍说死亡并不是一个瞬时概念,而且人们对死亡好礼送长辈,就选如意X2众志成城,抗击疫情。最近公园也渐渐对外开放了,老人家们在家闭关修炼少则也有七七四十九天了,是时候出来各显身手,带上你的神器,我们公园见,才艺舞艺一较高下。维尔晶如意X2,让您称心如地球绕着太阳转,为什么北斗七星启明星的位置基本不变?各种星球都有自己的归道,位置不变方位在转。北斗七星和启明星完全是不同的,北斗七星是恒星,是同太阳一样的恒星,距离我们十分遥远。而启明星就是金星,与地球一样围绕太阳运转的行星。而且,2021年您必须要了解的10大趋势性技术世界上唯一不变的永远是改变,这句话也适用于我们的职业生涯。如果您是一名技术研发人员,那很有必要了解2021年的10大趋势性技术,原因很简单,这些技术将会吸引大量的人才。众所周知,技本川智能深交所上市,掌握5G基站天线pcb核心技术图为本川智能的主要股东本川智能的基本情况江苏本川智能8月5日在深交所创业板上市,公司主要业务是印刷电路板,属于一家电子设备公司,旗下产品类型丰富,可以制作单面,双面,多层电路版,多旅行照,如何让表情更自然?不知道大家有没有这样的困扰帮小伙伴拍照的时候,不知道把人物放在画面的哪个位置才好。所以在这里,可以给大家分享一个小技巧。在景色中寻找自然的框架构图,比如后视镜窗户门充满几何元素的楼旅行中你最大的花费是在吃住行还是门票?我是一个己经退休的老年房车旅游爱好者,在我的房车自驾旅行过程中,吃住行门票四个方面最大的花费是还是行。一吃房车自驾旅行吃饭基本上都是自己做,车上有电,也有燃气灶,一般的饭菜在房车上魅族宣布接入华为鸿蒙系统,这应该是黄章最正确的决定安卓能有现在的成就一切源于苹果之外其它所有品牌都在使用,俗话讲众人拾柴火焰高就是这个道理。相对来讲华为鸿蒙要想做大做强必须有其它品牌支持才可以,如果华为自己一家使用是无法做到与苹果
欧盟推进数字化建设来源人民网欧盟委员会日前批准总额约20亿欧元的绿色和数字转型资金,用于完成数字欧洲项目的部分工作计划,重点针对人工智能公共数据空间网络安全和数字技能共享等领域进行战略投资。欧盟20无视美国命令,欧洲芯片巨头加大供货,抢占中国3000亿美元市场如今的美国是想要单边主义一条路走到黑,不仅仅对华为进行了芯片禁令,而且美国真正要打击的是我国的半导体发展,然而对于我国的打压,美国想要置身事外这也是不可能的,无视美国命令,欧洲芯片研究显示城镇化有助于中国实现碳中和据美国科学日报网站2月22日报道,事实证明,中国从农村向城市的大规模移民对中国的碳储量产生了积极影响。城镇化甚至可以在实现气候中和方面发挥作用。报道称,这是丹麦哥本哈根大学研究人员转角双层石墨烯产生超快光电流研究取得进展近期,中国科学院上海光学精密机械研究所强场激光物理国家重点实验室在激光控制转角双层石墨烯产生超快光电流方面取得新进展。相关研究成果发表于PhysicalReviewB上。超快光学技3月1日后,微信支付宝个人收款码可正常使用!2月22日晚间,中国支付清算协会发布关于优化条码支付服务的公告,宣布现行个人收款码不关闭不停用,同时新设个人经营收款码,服务不减体验不变,并可享受更高效的交易对账等服务。随后,微信五JSONPath使用(Java)1。开发环境JDK1。8SpringBoot2。1。182。添加依赖dependencygroupIdcom。jayway。jsonpathgroupIdjsonpathartif饭店洗碗机多少钱?酒店洗碗机的价格主要取决于清洁能力大小选用机型不同清洗原理不同等因素不同机型的商用洗碗机价格也不尽相同,普通的小型揭盖机一万元左右,而清洁效率明显优于揭盖机的通道式洗碗机,价格在3减肥用的体脂称哪个牌子比较好?这里要先想一下对你而言体脂称应该是什么?对我而言,体脂秤是一个方便自己的工具,在这里可以分享我选体脂秤的思路。1。需要能测量体重外的多项身体数据,并可以看到历史报告2。不用每次测量蔚小理,自动驾驶谁第一?文丨深途(IDshentucar),作者丨黎明,编辑丨魏佳2017年的春天,美国得克萨斯美洲赛道,一辆叫作EP9的电动超跑,在无人驾驶测试中跑出了每小时257公里的成绩,成为当时全乌镇互联网赋能美丽城镇建设千年乌镇,水乡画廊。美丽盈乎全域,文旅奏以雅韵。地连江浙,毗邻京杭古运河互联天下,不愧数字先行地。多年来,乌镇始终聚焦一业一网发展,旅游业保持优势地位,互联网产业持续蓬勃发展。经过28岁字节员工确认离世,给互联网打工人的几点警示想必大家都已经知道最近字节发生的员工猝死事件,如果还不知道,先简单回顾一下3月23日,就在上周,网上流传一份微信聊天记录,这份聊天记录,是字条跳动猝死员工的妻子找群友求助的相关内容