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

带你实现简易的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); }

中国移动的iptv为什么一楼和六楼不给安装?iptv为什么一楼和六楼不给安装?我作为一名运营商人说说自己的理解。IPTV是什么?发展优势有什么?IPTV也就是交互式网络电视,主要是利用移动的有线宽带网络,集互联网多媒体通讯等苹果111213哪个性价比好?感谢邀请苹果111213哪个性价比好?实际就平时体验来说iPhone11我觉得确实完全足够,因为我个人确实也是iPhone的使用者,我们的情况应该是相差不多的。很少玩游戏,就是平时纳米限域催化链接国家自然科学奖一等奖纳米限域催化中国科学院大连化学物理研究所包信和团队提出纳米限域催化概念,系统阐明了催化活性中心构建原理和动态演变规律,在此理论指导下,将界面限域与孔道限域耦区块链共识机制之POS和DPOS工作量证明算法作为区块链第一个也是目前经受住足够实践检验的一个共识机制,解决的是分布式系统交易信息一致性的问题,在一个去中心化的网络中构建了彼此不信任节点的信任机制,也是比特币成功java好用工具类一箩筐java好用工具类一箩筐可修改原始类型对象引用包装类单线程MutableIntMutableLongMutableObject,便于一个方法修改参数lamda表达式中引用并修改多线百姓点题直播带货多带好货直播带货多带好货网友路遥知马力在天山网微信公众号留言现在网购很普遍,吃的喝的穿的用的都能一键到家,但我发现在直播间里买的东西,质量总是不尽如人意,找商家协商也不顺畅,希望相关部门能马斯克用一张图拜年水墨老虎搭中国红外国网友送祝福来源海外网海外网1月31日电1月31日,虎年新春来临之际,美国特斯拉首席执行官埃隆马斯克在微博向中国网友送出新春祝福。31日下午,马斯克在微博及社交平台推特上同时发布一张图片,图中腾讯内测语音软件Echo,对标DiscordYY等游戏开黑平台IT之家1月31日消息,IT之家网友发现,腾讯近日内测了一款名为Echo的语音软件,可创建私密语音房间,看起来像是对标国外火热的Discord,目前支持网页端和PC客户端。官网地址明天起,这些新规将正式实施2月1日起一批新规正式实施对生活有哪些影响?一文速览超100万用户网络平台运营者赴国外上市须申报网络安全审查国家互联网信息办公室等十三部门联合修订了网络安全审查办法,2月15日起施20。五种图像分类网络结构代码(基于PP深度学习框架)在20。卷积神经网络的图像分类花卉分类项目实现一文中,只给出了LeNet网络结构代码。本文提供五种图像分类的网络结构代码。图像输入大小2242243一LeNet定义LeNet网络结JAVA新特性的入场券函数式接口从Java8的新特性说起说到Java中的函数式编程,就不得不说到Java8中引入的lambda表达式streamAPI等特性。它们与函数式接口一起支撑起了Java的函数式编程。函数
渐变色那么多,为什么华为P30赤茶橘成了时尚爆款?智能手机发展到今天,早已不再是单单的通讯设备了,如今智能手机就像象征主人个性的时尚单品,正是因为如此,手机厂商越来越重视消费者对于手机的外观需求。不久前发布的华为P30系列手机赤茶喵喵机MAX,重新定义便携打印机提起打印机,我们的第一印象就是那种放在办公室里打印文件的大型机器,一般都是办公使用。那么有没有好用的便携式家用打印机呢?当然是有的,喵喵机,热敏打印,操作简单,身材小巧可爱去年喵喵高颜值办公平板华为MatePadPro华为的平板生态或从这里开始万铎发自凹非寺鹅板凳公众号ebandeng众所周知,Mate系列是华为发售的高端旗舰系列,只要是加上Mate命名的华为产品,就代表着最高端的定位最强劲的性能和最极致的体验。华为近日华为P40系列国内正式发布,4188元起售,P40Pro最贵8888元万铎发自猴姆鹅板凳公众号ebandeng时隔两周,华为2020年首款旗舰产品华为P40系列今晚在国内正式发布。手机外观和配置此前在国外发布会上已经公布,而今晚发布会大家最关注的,应小巧便携功能多,海备思高清无线投屏器使用体验我想大家都一个烦恼,各大视频app都开了会员,但是就是和家里的电视不互通,开通电视上的会员吧,又得多花好几百。如果能把手机上的资源共享到电视上,既省钱了不说,还获得了更佳的观影体验实体红包不够?还有两种微信红包玩法救急这几天是春节长假后陆续开工的日子,也是大家例行表态要开始努力工作的日子,首先祝大家开工大吉,给大家拜个晚年!开工大吉,对于大家来讲,开工第一天最具有仪式感的活动就是逗利是红包。不管双十一预售开始,可以闭眼买的手机,我只推荐这款在这个全民Vlog时代,你是否也是Vlog达人呢?你想不想用手机轻松拍Vlog呢?如果想,那一定不能错过这款华为nova9系列手机,在鸿蒙系统的加持下,华为nova9系列手机让你轻华为P10和iPhone7P谁续航快充更强经过近几年的发展,智能手机行业已经愈发地趋于成熟,无论是外观设计还是性能方面,都有了很大的提升,而随着越来越丰富的功能越来越大的屏幕和分辨率,当然,手机也越来越多的成为我们办公的助刚柔之美华为Mate9内外双修华为Mate系列一直是主打性能和体验的高端商务旗舰系列,而华为Mate9自上市以来好评如潮,无论外观设计硬件规格系统软件等等,从里到外提高了一个档次,可以说是焕然一新。机身正面采用华为终端首届开放日,余承东到底说了些什么华为媒体开放日其实放出了很多及其有价值的信息,不仅是指华为手机,也是指手机产业未来技术发展的趋势以及华为手机领导层对此的思考。可惜,大多数媒体报道里就只剩老余的几句话,完完全全的本引领5G关键技术联发科天玑新一代M805G调制解调器成就R16标杆体验5G时代,联发科展现出势不可挡的爆发力。近日,联发科秀出了一系列关键技术成果,其中支持最新3GPPR16标准的新一代5G调制解调器M80集合多项技术于一身,展示了联发科在5G时代的