粉丝1035获赞1.1万

兄弟们,第二十三、今天我决定让 j d b c 正式退休。写了几天的原声, j d b c, 我 真的是写吐了。注册驱动获取连接,手动 set 参数,手动 get, 结果写代码变成了搬砖,这谁顶不住啊! 于是我上网买 betas, 感觉就像是给 j d b c 请了个管家,我只管在叉秒里面写 siri, 剩下的创建连接处理结果机买 betas 全包了,你看这代码量瞬间少了一半,这才是写代码该有的样子嘛。 最让我惊喜的是这个 result map, 以前数据库的叫做 students name, java 里面叫 name, 查出来就是 non 得手动,一个一个的。对,现在配置一个映涉关系,它自动就给我装备好了。这就好比两面插头不一样,奶贝特斯直接给了个转换头,直接通电, 再配合自己服装的工具类,以后再来改查就是一行代码的事,不用再担心忘记关流导致内存泄露,也不用写重复的 try catch 了。第二十三、买 betts 基础拿下,但这只是开胃菜,明天我们要挑战买 betts 的 进阶玩法,动态 circle 和逗表查询,听说能像写代码一样控制 circle 逻辑,咱们明天见!

g d b c 作为 java 语言访问数据库的一个标准规范,虽然功能强大,但在实际开发中存在代码领域 c 库硬编码等问题。 my b t s 作为一个优秀的持久层框架,正是为了解决这些痛点而生。今天我们就来深入对比 my b t s 与原生 g d b c, 剖析其核心优势与设计的一个哲学。如果你还在盲目刷题,不知道面试到底考什么,我已经把简历优化模板八,股文高频提 面试全流程应对策略、突击学习路线图全都打包整理好好了,不该从头递到谈心的每个环节,需要的评论区扣六六六直接领走。痛点一,资源管理的一个繁琐性在原生 g d b c 开发中,执行一个简单的查询,往往需要经历加载驱动、建立连接、创建语句、执行 c 股处理结果及关闭资源等一系列繁琐的一个部 步骤。其中资源的关闭必须在翻里快中严格执行,稍有不慎就会引发内存的一个泄露。 my 芭比森呢,封装了数据库连接的生命周期,管给开发者无需手动去处理。连接的一个开启与关闭框架呢,会自动去确保资源的正确释放,使开发者能够专注于业务逻辑的一个实现。痛点二, c 国的一个硬编码与 维护困难 c 库,它的一个语句通常以字母串的形式硬编码在 java 的 一个代码中,这种方式导致 c 库的一个逻辑与业务代码高度藕合且长。 c 库的一个拼接不仅可读性差,还容易引入语法错误。一旦数据库表 的一个结构变更,需要重新编一部署代码,还被彼此提倡将 c 库语句提取到柴庙配置文件或者注解中。这种设计实现了 c 库逻辑与 java 代码的一个物理分离,不仅提高了代码的可 维护性,还支持无需重编,亦即可调整 c 库的一个逻辑。痛点三,参数设置与结果级的一个映涉。机械性参数设置方面,需要通过 prepared statement 的 一个 set 叉叉叉的方法逐个去设置参数,操作反反索且 易错。结果映涉呢,需要手动去便利 result set, 并将每一列的数据逐个去复制给 java 对 象。对于字段较多的一些实体类,这种机械式的工作量非常巨大。而 myb 它的输入格式直接作为参数框架自动解析属性,并绑定到 c 库的一个占位符 输出。映涉方面呢,框架自动将查询结果集映涉为掌握对象,支持复杂的一个嵌套结构映涉。这种机制彻底消除了手动转换数据的一个样板代码。痛点四,复杂查询的一个构建难度 g d b c 在 处理动态查询条件的时候,开发者需要在 java 代码中编写大量的 e files 逻辑来拼接稀土的一个字符 串,这种做法不仅容易出错,而且难以维护。 mybatis 则提供了一副触测易且等丰富的一个标签,允许开发者在 chatmail 中以类似编程语言的方式构建动态 c 轨,这使得处理复杂的一个查询逻辑变得清晰且高效。总结下, mybatis 相对于原生 gdp 的 核心优势在于开发效率方面,消除了大量荣誉 的一个样板代码。自动化资源管理架构结构方面,实现了 c 构逻辑与 java 业务代码的分离,提升了可维护性。对向印刷方面呢,提供了强大的输入输出的一个印刷机制,简化了数据转换的过程。动态能力方面,内置动态的一个 c 构引擎, 灵活应对复杂的一个业务查询需求。 mybites 在 保留 gdp 灵活性的基础上,极大地提升了 java 持久层的一个拆发的一个生产力。

好,接下来咱们再分析啊,两个类的原码打开是不是配对文件。这两个类的原码呢,其实咱们刚刚已经看到了啊,一个是咱们的四个 ctrl b, 还有一个是 mate, 三点 啊,咱们将它呢打开看一看,这两类呢,其实都是 surme 和买贝类似啊,进行整合的那个价包里面提供的 啊。好,那在看原版之前呢,咱们看一看啊,这里面都是什么东西?首先是类型别名啊,还有数据源,还有咱们的主配置文件的路径啊,除此之外呢,还有什么属性呢?咱们这会跟进去看一下 啊,同样啊,看一下带的方法好看看 看啊,咱们常用的啊,不常用的就不说了,其中第四个再找拖拉机,这是设置咱们的插件啊, 当你使用买 baty 的插件的时候,同样可以在咱们的折扣筛选派克币里面设置相应的属性去配置 啊,注意,咱们以后会用到啊。好,再往下赛的 padplelex 还可以设置咱们的类型经营啊, 把那包一放进去就可以了。这两个咱们都用了啊,都会用的。好,再往下设置类型别名的副类型啊,咱们一般不会用到他。 再往下还有什么呢?哎,在的看这个老 k 审,设置咱们的主配置文件的路径啊,再往下再的 mate, 老 k 审就是设置咱们的映射 文件的路径啊,映射文件的路径。好,再往下 赛的街头哨子设置咱们的数据源啊,还有赛的蠢材损开腿设置咱们的事务工厂,还有赛的有歪门字设置咱们的运行环境 啊,那也就是说以后你在项目当中用到相关的属性的时候呢?哎,都可以在咱们的赛后赛事范丞变里面去设置啊。好,这是这个原码的飞机。接下来咱们再接着看另一个类, 好,打开它看一下当前这个类里面 max 杆子还有什么属性呢?好,首先第一个是基本包啊,基本 包键包呢,咱们当时是找的咱们的麦克的这个接口所在的包啊。麦克接口所在的包啊,好,再往下常用的。 哎,这有思考赛诊范范病内咱们进行设置了啊,指定咱们的思考赛诊病范范病好,还有什么呢? 嗯,其他就没有什么常用的了啊。如果你以后用到相关设置啊,也可以去 wifis 干的凯迪格里面去找性的属性啊。 ok, 这是咱们的 wifis 干的凯迪格的原版飞机啊。

myotis 是 优秀的框架。第一级, sql 执行黑盒捕坑生态。 myotis 的 插件繁荣,是框架制造,黑盒逼你填坑的铁证。 spring j d b c。 全链路白盒,不需要补丁。第二级, xml 动态 sql 更高级, xml 是 低配版矩阵拼接器, java 拼矩阵强大十倍。第三级,自称半 o r m 单表要靠插件,分页要插件,这是零 o r m 能力。第四级, sql 与 java 分 离就是结藕分离,不等于结藕,跨文件跳转四种语法混用,这是藕合升级版。 spring j d b c。 一个文件全搞定。第五级, type handler 提供类型安全。 spring j d b c。 用户根本不知道这东西安全是 j d b c driver 和 prepared statement 保证的。第六级,一级、二级缓存带来高性能, 业界公认 my botis 缓存分布式场景不可用。 spring j d b c。 可直接对接 radis caffeine 等专业缓存。第七级, 强大的结果自动映射 spring j d b c。 的 兵。 property romapper 优雅搞定,结果映射 my botis 在 sql 和 result map 两处定义映射。第八级,生态成熟文档多,教程全文档多,代表坑多,配置多,要学的东西多。 spring j d b c。 社区极少讨论,因为它没坑。第九级, d b a。 统一管理 x m l 里的 sql, d b a 翻不出你的 x m l 翻出来也看不懂标签套 sql, spring j d b c。 的 sql 一 目了然。 第十级, criteria limder wrapper, 防错又优雅,学一套框架专属方法,只解决单表问题,联表查询还得退回 c 库。 spring j d b c。 从一开始就直接写 c 库。第十一级, 制造三,一类异常,所以更细致,你伺候的不是业务,是框架。 spring j d b c 只有二到三类异常,全是数据库真实的错误。第十二级代码量更少,开发效率更高。 my vote is xml 体系,十几个注解,几十个标签,上百个属性,全是负担。 spring j d b c 零负担。 simple d a o 基于 spring j d b c, 它做到了单表对象化、拼条件自动化结果,即映射自动化、分页自动化、逻辑删除自动化、审计自动化、单表联表。同一套 api, 支持所有数据库日制控制到方法及日制,同时打印代餐。 coco coco 能力不受任何限制。原码已放在评论区, 关注我,坐等 simple d a o。 原码系列, coco first 的 理论系列、企业实战系列已完结,去我主页查看。


大家好,欢迎来到这期深度解析。今天呢,我们要聊一个让无数数据打工人,甚至是有经验的工程师都非常头疼的真实企业级场景,也就是企业级数据库的连接与底层架构。咱们直接进入正题。 作为在企业里摸爬滚打多年的数据分析工程师,我太常看到大家在这个环节被卡的死死的了。今天我们可不只是教你怎么点,下一步我们要把扒开表象,看看这些让人崩溃的连接失败,底层的真实逻辑到底是什么。 为了让大家有代入感,我们直接拿一个最典型的实际场景来开刀,使用最新的 knm, 五点八,通过 jdbc 驱动去连 ibm db2, 听起来是不是很简单,填个 ip, 填个密码,对吧?但实际上里面处处都是坑。 咱们先来看第一关,也就是最容易踩坑的第一阶段,排查 license, 寻找失踪的授权文件。 当你兴奋地配好地址,点下连接时,啪!报错了,非常有意思啊!仔细看这个错误提示,它根本不是说你密码错了或者网络不通,而是告诉你找不到 ibm db 二特有的 license 授权文件。 很多人看到这里直接就蒙了,无从下手。其实破解这招不难,你需要打开系统设置里的 classpath, 这里的核心细节是,千万记得你要把主驱动文件以及那个特殊的授权文件同时加进去, 如果你少加了,哪怕一个 j、 d、 b、 c 都会直接罢工,连门都不让你进好。当你搞定了授权文件,以为万事大吉的时候,往往会迎来第二季重锤。这就是我们要排查的第二阶段,新引擎和老驱动的底层冲突。 这时候系统可能会甩给你一个看起来特别吓人的报错提示,什么绘画无效? 别慌,抓重点,真正的关键线索在这儿。系统提示,当前的驱动不支持 is valid 这个特定的验证方法。 这就很有意思了,为什么会不支持呢?根本原因其实出在软件本身。 knmie 升级了它的底层引擎,全面拥抱了更高版本的 java 十七和 jdbc 四点 x 标准。 这就意味着你手里那个祖传的老旧的 d b j c c 点 j 二已经彻底被时代淘汰了,你必须果断抛弃它,换成支持新标准的新版驱动才行。 这里我必须要插一句,企业级的最佳实践,千万千万不要遇到驱动问题就去网上随便百度一个乱想。 要知道,很多企业级驱动是需要主述权限的,而且版本必须要和你们公司服务器上的版本严格匹配。听我一句劝,最靠谱的做法就是直接去找你们公司的 dba 数据管理员哟,真能帮你省去无数的麻烦。 经过这番折腾,换上对的驱动和 license 节点,终于亮起绿灯了,那种感觉确实很爽,常输一口气对吧?但是大家先别急着开枪兵, 这正是检验你是初级新手还是资深工程师的试金史。温体节点绿了,连接成功了,那你觉得服务器上那几百万上千万条数据,现在是不是已经乖乖躺在你的电脑硬盘里了? 答案是,绝对没有!这就引出了我们今天这一期解析最最核心的概念,下推优化,也就是教你如何真正压榨服务器的算力。 这神奇概念叫做下推优化,页内也常叫 sql pushdown。 它的本质是什么呢?此时此刻, k n i m 其实化身成了一个高级的 s q l 自动化指挥官。 他只是在给数据库发号施令,让数据库去干那些脏活儿、累活儿,而不是傻乎乎地把海量数据全部拖回你的本地电脑自己算。 你看,像建立、连接、执行、查询,甚至做数据分组、聚合这些代表数据操作的节点,他们其实都只是在后台默默生成 s q 罗语句,然后一脚踢给远端的 d b 服务器去执行。 我再强调一遍,在这个阶段,连一滴数据都没有留到你的本地电脑上,一滴都没有,我们到底图什么呢?当然是为了光明正大地利用企业及数据库服务器那庞大的 cpu 和内存资源呀! 你把表关联、过滤、排序这些句号资源的操作,留在数据的老家执行,不仅能享受底层所引的速度加成, 更关键的是,这彻底堵绝了你那台可怜的办公电脑因为瞬间塞进千万条数据而直接卡死崩溃的风险。 那数据到底什么时候才会进入本地呢?请大家死死记住这个特定的提取节点 db reader, 只有当工作流执行到它的时候,才是唯一的一个特定时刻,数据大门才被真正打开。 服务器端算好的精简过的数据才会被抽取并下载到了你本地的内存里,变成你能看到的数据表。这就是为什么我们需要一场彻底的范式转变,放下固有的思维,去真正拥抱企业级的工作流架构, 很多刚从 excel 转过来的同学,思维还停留在我要先把所有原始明细数据全下到本地,然后再去算,遇到几十个 g 的 数据,电脑直接原地升天。 而正中的企业级思维是什么?是把庞大的原始数据死死按在服务器上,尽情调用服务器的算力去处理,最后仅仅把那几百或者几千条轻量级的最终结果,也就是你的洞察下载到本地,这就是妥妥的降维打击。 好了,让我们稍微总结一下今天的核心要点,我们不仅带大家解决了真实环境里因为 license 缺失或者 java 版本引发的驱动操爆难题, 更关键的是,我们揭开了数据节点的真相,带你领略了下推优化和服务器端计算的霸道威力。记住,只要还没跨过那个数据读取节点,数据就还在远端。 既然你现在已经懂得了下推优化的精髓,那么我想留给你一个挑战,明天回到工位,打开电脑后,你会怎么重新审视你的数据工作流? 在你的日常任务中,还有多少原本在本地苦?哈哈,运算了重体力活,是可以反向推回给数据库服务器去承担的, 赶紧去试试看吧,那种性能飙升的感觉一定会让你上瘾。感谢收听这期解析,我们下次再见!

好,我们继续来看一下我们的手写框架专题讲解。我们来写我们的我们的麦贝迪斯沃尔木的一个 柱姐篇,那柱姐的时候,那我们这边已经把我们的柱姐然后写好,那么接下来我们写一个攻击队,这个攻击队我们就来操作 gdp c 的,那 gdpc 的时候呢,我们这边就不用柱姐的。那其实我们用柱姐的时候是不是直接要把什么烟 我们这个直肠进去,那么这个里面就用一个什么对应的一个吉利 bc 的一个最普通的,然后在这边所有的呃驱动,我们就在这边进行写好,那就是吉利 bc。 我们的 youtube。 那我这边优迪优斯,优迪优斯里面。那我们这边最主要就是我们的卡耐克水。那这边就是我们来操作,就是说所有的呃和我们的麦售后里面操作,我们都在这边进行执行。那这边就是我们的 pradaprada。 那我们这边是给他一个 staytics staytic 的时候,那这边是死菌,死菌呢 时候,那这边就是我们的卡耐克特。那这边相信大家对加我的 gdbc 这个用的比较熟悉,所以说我们这边写快一点,那这边就是我们的卡外特。然后我们的 stadid 可 死在地壳里面,然后我们是知音,然后对呢,我们给他一个抓耳朵,抓耳朵的时候呢,这边我们给他一个塔斯内蒙,塔斯内蒙的时候到我们这边是盘的,然后 stay teaco 斯莱地克,然后我们这边给他一个,是给他一个准点鱼饵, 那我们再给他一个正常时候这四代体格是不是都是大写,我们这边是现在默认的时候,给他写点小写吧。那这边就是默认的时候,应该都是大写的。那这边就是我们的四代体格,四代体格里面。那这边我们给他一个史珍 us, 我们的优内蒙。 那还有我们的 stadico。 那我们提交说。那这边事务的提交说是。呃,考米特还是自动?考米特还是我们手动的。那这边是我们的奥特,考米特。 那这边就是我们定的这几个队。那这个队的时候,那我们首先就是我们的一个。呃,是一个声明一个 可那个神。那这边我们来说明一个什么呀?说明一个,可那个神你得为精彩类 我们失明一个, 看那个谁类型的。竞赛类,竞赛属性类。那用来缓存什么呀?用来缓存一个已经存在的 燕燕。那这位就是我们的牌的。 好。那这边我们就来做一个什么呀? 自己的一个配置信息。那配置信息的时候,那我这边给他一个 prv 的。那这边就是 statit yoyoy 的 yoy 的时候。那我这边给他一个咖啡的 搞配合里面。那。首先我们这边就是获取我们定的驱动,然后这边是抓碗 招卡死。那么这边我定的就是什么我们的 cvm 点 mac 口,我这边就直接写死的。那这边就是不用什么注解的。 那这边我们柱姐的时候只是柱姐,我们对应的麦片。那这边有些事我们这是扎过。其实你也可以用什么我们上级课做的什么配置信息。那现在我们主要是验证什么,我们的一个麦片上面的柱姐。那这边我们的这个驱动,柱姐我们就不做做柱姐的。那这边就是获取它里面定的什么驱动, 那第二就是获取的第一呢?鱼儿嗷,那鱼儿嗷的时候呢?这边我们的鱼儿嗷是哪一个?那我们可以给他来在这边去操作一下。那我们这 这边是不是卡飞哥,那卡飞哥我们在哪地方配置的,是不是这里面进行一个配置,那配置的时候那我们这边的 url 是不是就他那我们就连接连连接什么呀?那这个幼儿,那这边就是我们吉利 bc, 那因为 gdp c 的时候呢,这边我们给他一个什么我们的优内幕,我们等于什么?等于 rot。 那这这里面我们让他自动提交的时候,那我们这边给他一个什么 boss, 我们一般是设为是设为手动提交,设置手动提交。 好,那这边就是我们的考核一个。 那考飞哥说我们是什么时候加载的呢?是不是就是现在我们在启动的时候就在加载,那我们就可以发放一个什么并进太队里面,那就相信什么,我们给他一个时代体格,现在在马快里面,那这边就是我们的所谓的咖啡科,然后可以进行加载,那这边又加载又有驱动的,那驱动的时候呢?现在我们 就是那这信息有了,那我现在我们要载入我们电动驱动,那是不是就扎起手用我们的卡斯什么呀,是不是我们加载我们,我们是不是可以加载我们电动驱动, 这些东西都是属于我们的基础 gdpc 里面这东西。这边给大家再再做一个什么复习,其实框架就是有基础的,然后 轻松在一起,然后按照你自己的思想,然后什么写出,写出来的。那这边又是载入我们的数据库驱动的, 那这个驱动力的时候,那就是我们的爬完的。然后这边就是我们的斯大利亚,然后我们的我们给他一个布尔,布尔说呢,我们这边给他漏的,漏的时候我们看是不是加载成功。那这边是我们把所有攻击队都写好,那这边就是我们的卡拉斯 点到内蒙,内蒙的时候,那我们这边就是给他一个抓握卡死。那这边我们会有一个异常,那异常时候那我们就得给大家进行什么?进行一个补货。 那这边我们会打印一个什么,你可以用 logo 也可以用什么呀? 我们的这个打印打印图呢。这边是驱动队加载一朝 兄弟,我们加入什么呢?我们的抓碗卡死,加载失败。 那这边一旦加载失败的时候,那我们应该履特些什么? boss, 那如果加载成功的时候,那这边我们应该屡特些什么?屡特印处。 那这边就是我们的载入收集驱动。那我们还要检测我们的缓存连接是否可用, 那不可用我们使用什么? 那我们首先要检测我们的我们要点击的时候,我们首先要检测检测我们的可能性,是不是可以用, 男生是否可用, 那怎么检测呢?那这边就是我们给他一个爬完的 process technique, 然后我们给他一个 bra 哇类型的时候,那这边就是 樱花地,樱花地的。你这边就是我们的驱动,看是不是可用,如果可用的时候反复出,不可用的反复放肆。那这边 我们怎么判断呢?那他趴到他里面,这可能是是不是得引到,如果他不得引到的时候, 那他不顶到,那我们就是给他做一个什么,看他是不是可逗死,那我们的可都,我们的叶子可都死,或者我们是什么样, 我们的可耐性, 伊德瓦迪德,然后什么样?他里面给他一个,他骂他三秒。 那这边 如果他外地是外地的,那这边 那你这边就给他返回一个什么呀,那他报什么错误,你有个解决,那你或者是直接什么呀,看他里面如果三秒钟,然后如果没返回,那这里面也是不可用的,那这边就是我们给他一个什么,他一出 那二号四处,那他的 又是烟。那这边就是它里面的乳胎因什么呀?乳胎因 boss。 那如果衣服的时候,那这边它里面有什么?是不是有 l s, l s 的时候,它里面如果它没有的时候就直接给它就可以,什么就可以放死。 好,那这边就是我们的检测,我们的可能是是不是可用,如果可用的时候,那这边有什么呀?那你其实也可以在这边去做,如果他里面什么如果他都不可用的,那他里面还有没关闭,那你可以给他进行关闭。那我现在只写最简单,然后判断我们可能是是不是可以, 那这边就是检测客厅。那我们还要建立我们的数据库,点击那建立数据库,点击我们就来返回我们对应的什么,是不是?那你这个可能是是是在哪地方?是不是要在哪 进行措手画,那我这边又要建立什么?我们的数据会连接那这边我要使我要使用这个数据会连接,那这个数据会连接的时候,你既然检测,那你要那默认的时候是现在文档,我们怎么给它复制呢?那接下来我们就要建立我们的数据会连接, 就是创建什么呀?我们的可耐克神。那怎么创建可耐克神呢?那这边就是我们的帕布蒂克,然后我们的 static, 然后这边我们给他一个可耐克神, 那卡纳克特,那这边就是我们怎么给他连接呢?那这边就是我们首先看他里面是不是可用的,那就是硬外地的,如果他 可用, 那这边就什么呀?那如果他啊,如果他里面什么呀?这里面就是反复出的时候就说明什么, 如果反复出的时候,那就说明什么,反复出的时候就说明他里面什么,是不是不可用,那就把你反复出,反复出代表不可用, 那这边又写为什么呀?不可用,返回什么返回出 好,那这边就是反复出的,反复出就不可用,不可用的时候,那我就干嘛,我是不是就相信什么?是不是这边又代表我们的连接失败,连接失败的时候,那我就相信什么?我们是不是就相信创建连接 临时的时候,那我就在这边去创业临沂,那我就在做用什么,是不是漏的我们定的这个值, 是不是我们这边有一个对的一个 dog, 那我们就加载我们这个驱动, 那驱动加载好之后,那我们现在要做什么?是不要做连接,那这边是我们的连接,就是我们等于我们定了什么抓我 该他也该他卡那个神,该他卡那个神里面,那他第一个就是我们所谓什么幼儿,幼儿,我们还有什么我们的优内姆,还有我们所有的什么帕斯沃的,那是不是这几个他会抛出一个低的异常, 那我该补货,那补货的时候呢?这边就是我们给他打印一个什么,他里面就是建立我们的卡莱克审, 建立我们的 考那个特, 那这边是我们的所谓的卡纳克塔, 那就是说句我的数据库失败, 那我要把什么说明是失败的原因给他答应出来,那这位就是我们的疑点 get a message。 那这边就是我们给他一个什么瑞特英卡耐克特, 我们把它日常用出去 好,那这边是建立年业,那建立年业说那我们这边我们有时还要做什么?是不是要提交事务的时候,那我就可以干嘛?我们设置它里面自动提交事务, 我们来设置是自动提交事务还是手动提交事务,那我们来做一个什么,是不是设置师傅自动提交事务,那这边就是我们的 politics or static, 然后这边是 word, 那我们就是我们的事务,就是 tricexi, 那缺三个神说,那这边你给他提交说那这边 是不是我们的卡耐克神。第二我们的赛道奥特,那这边就是我们的奥特卡密的 就是你传个字,他里面同时也会有异常,我们给他进行什么?进行补货,那这边就是我们可以在打印亚事务提交,就是这边就是设置 事物提交出现问题, 那我们答应出他里面出现的该他 messy 好,那我们还要什么呀?我们在创建数据库的时候是不是需要死在 mat, 那我们要创建什么?我们还要创 创建一个史莱曼的,那这边我们要创建什么?创建我们的史莱德曼的对象,那史莱曼对象的时候,那就是我们的帕布迪克 发布地壳,那我们用 stay, 用 stay teacup, 然后我们对呢 stay manta, 那斯莱曼的时候,那这边就是我们的斯莱曼的对对象,那这边就是这个方法。那这个方法时候,那我们就直接来创建一个什么,是不是斯莱曼的,那这边是 st, 我们得以什么?得以孬,得以孬的时候,那这边我们来给他定的什么?定定一个连接,是不是可耐克思思有可耐克特, 那卡兰特在连接的时候,那这边来判断什么呀?那我们来设置它里面这个提交姿势,提交方式是自动提交还是手动提交? 那手手动机。要说那这边就是我们的 st, 那我们就给他等于什么样?我们砍他个身,然后给他一个葵的 stat。 mat 那它里面也会有一个什么, 抛出一个低的异常, 那我们打印这个异常,那这个异常会就是创建史的慢,他无效。 我们答应出他里面定的什么 getting messy。 我们把我们定的什么,这一个 stay man 给他 retouch 出去, 那瑞特人出去,我们根据他,我们就可以去创建什么呀?我们的开会是一个 社会局,那用他来执行我们社会局,那我们还要执行一个什么?是不是我们可以去来创建一个? 我们给他一个帕萨特吧,帕萨特,然后我们史莱蒂克曼特,然后我们给他一个牌帕斯莱曼特, 那这边就是我们的牌牌, 那牌牌里面,那我们这边就给他一个四口,那我们可以给他一个四口,那给他一个什么我们的一个类型,那是不是他里面是不是 out, 是不是扎瑞福吧,那就是 jangenressen, 然后他里面定了一个 k 吧, 那这边就是需要这一个牌牌,四代馒头,那牌牌是不是四代馒头,那这边就是我们四代馒头,四代馒头里面他就等于什么?等于 ps, 等于 下次我们对你什么默认的时候,让他对你孬,对你孬的时候呢?这边我们也是的,那什么可耐克特, 那可能他说那这边他也是我们定什么川菜 x, 那川菜 x 的时候,那我们也是给他设置什么事务的提交方式, 那我在这边给他一个衣服,衣服我们的凹透 块的 k, 那这边就是他里面如果对你出的时候,那我们就是给他一个卡耐克神 professor man。 直接我们定到收口 那舌头的时候,那这边就是我们所谓的舌口,那同时还会有一个对应的死在馒头,它里面有一个对应的什么, 就用这个值,是不是他返回那这边我们戳这种方式的时候,我们还有一个什么方式,是不是 outs 二号死时候呢?这边我们会有一个直接用 ps, 然后现在执行我们的 ctrl c 点我们的牌门四扣,是不是那这边这两种方式,那这边他会有一个定的异常, 那我们爸什么,因为他俩都有,那我就把他放在外面, 那这边就是获取我们定的这个 ps, 那有个 ps 的时候,那这边我们就是 把他乳腾出去,那这边其实就在创建我们对应什么 stay man 的,还有我们的牌牌 stay man 是不是在创建这几个对象, 那就得如他用我们这个什么这个。 ps 大家如果对这些技术点不明白的时候,可以去看你最近的基础,那这边是最近第一次基础知识,那我这边就不做细讲。那这边是我们的创建什么呀?创建我们的四点半的对象 失败,那失败时候,那这边我们给他答应说答一下他里面失败的原因。 好,那这边就是创业我们的死在馒头对象。 好,那这边对象有的时候我们是不是就可以进行查询,是不是?那我们接下来就来做一些查询,还有什么对应的 其他什么增强改查是不是插入那液液操作,那这接下来我们就来看一下它里面的查询还有什么, 还有插入,还有它里面定的什么释放,那接下来我们就来看一下它里面的一个提交。

打破二十年僵局, java 持久层三分天下,二十年没变过。 hiv virus, spring j d b c。 市场上不下二十种框架,没一个能撼动它们。为什么?因为它们各自抓了一个不可替代的生态位。但各自也有一个致命短板, hiv 抓住对象化操作,单表 c r u d。 极田代驾读死 c r u d 路,窗口函数子查询 union all 全部支持。 coco 能力只剩三分之一,永远困在单表舒适区。 mybotis 抓住写 coco 的 自由。 hivernate 堵死的路,他开了一扇窗,这是他唯一的功能代价。 xml 标签地狱, ogl 表达式分页靠插件,权限靠插件,缓存靠插件。除了让你写 coco 一 无是处, 它流行不是因为好,是因为在那个年代,它是唯一的选择。 spring j d b c。 抓住极致透明和性能,金融、银行、大企业核心系统全是它,编辑白盒,执行白盒,扩展无限,但它太沉默,被遗忘了。它唯一的短板,拼条件稍显繁琐,单表样板代码重复。 simple d, a o 三大短板的终结者, o r m。 的 短板, c 库能力受限。 simple d a o。 不 封装任何 c 库,全量能力一行不减。 myotis 的 短板过度溶于 simple d a o。 极简,一个 base condition 单表连表,共用一套 api, 没有 x m l, 没有私有 d s l。 spring j, d b c。 的 短板,拼条件繁琐。 simple d a o。 的 base condition, 自动拼条件,自动收集参数,自动适配分页, 单表样板代码继承, based on 搞定。它保留了 o r m。 单表对象化的甜蜜,拥有 my botis 写 sql 的 自由,继承 spring j d b c。 的 全部性能与透明。更深层的真相,无论 j p a 还是 my botis, 最终执行 sql 的 底层永远是 spring j d b c 殊途同归, 既然都要回到 spring j d b c 为什么不从一开始就直接站在他肩膀上?二十年来,无数框架告诉你,写 sql 是 低级的,需要被封装,被隐藏,被翻译。 simple do 告诉你一个相反的答案, sql 是 你最强大的武器,没有任何东西值得夹在他和你之间。 这就是 sql first 二十年兜兜转转唯一正确的答案。十六集实战合集已完结,去我主页看,后续持续更新。

毕业设计打遍前,如果不知道怎么演示连接数据库的代码,一定要看这个视频。最近有一个粉丝被老师问到数据库用的是什么,这个学生回答说用的是 my sql 数据库,然后老师接着问说,那你项目是怎么连接数据库的?学生回答说是通过 gdp 协议连接数据库,然后老师接着说,那你数据库的配置在哪里?打开看一下, 结果这个学生就不知道在哪里配置,就直接二变了,老师说你自己做的项目你都不知道在哪配的吗?然后就答不上来。那其实我以这个系统为例,那我们的这个连接数据库的代码一般都在我们 s r c 下边有一个网页文件夹,下边的 有一个 java 和 resource, 在 resource 下边有一个 application 点 y m l 的 文件,在这个文件里边我们看到它不仅配了你项目访问的端口号,还有你的项目访问的一个地址,还有就是你数据库的配置,而这里边这个就是数据库,我们在那边看的里边打开的那个名字 就是本机的 ip, 这是数据库的账号和密码,就是通过这个配置,然后我们直接连接我们的数据库,连接完之后呢,我们在 control 层直接去 到我们的 mybeatplus 的 框架,还能够实现对某一张表的新增,就是整个连接过程,如果不确定你的是怎么连接的,把你的配置截图在评论区,我来一一给你回复。