当前位置: 首页 > news >正文

那个网站的机票做便宜简单网站建设流程

那个网站的机票做便宜,简单网站建设流程,唐山网站建设价格,国外网站首页设计在开始使用新工具时要克服的最大障碍是让您着手处理小事情。 到目前为止#xff0c;您可能对新的Java 8 Stream API的工作方式充满信心#xff0c;但是您可能尚未将其用于数据库查询。 为了帮助您开始使用Stream API创建#xff0c;修改和读取SQL数据库#xff0c;我整理了… 在开始使用新工具时要克服的最大障碍是让您着手处理小事情。 到目前为止您可能对新的Java 8 Stream API的工作方式充满信心但是您可能尚未将其用于数据库查询。 为了帮助您开始使用Stream API创建修改和读取SQL数据库我整理了此快速入门。 希望它可以帮助您将信息流提升到一个新的水平 背景 Speedment是一个开源工具包 可用于生成Java实体和管理器以与数据库进行通信。 使用图形工具您可以连接到数据库并生成一个完整的ORM量身定制以代表您的域模型。 但是Speedment不仅是代码生成器而且还是插入您的应用程序的运行时并可以将Java 8流转换为优化的SQL查询。 这是我将在本文中重点介绍的部分。 产生程式码 要开始在Maven项目中使用Speedment请将以下行添加到pom.xml文件中。 在此示例中我使用的是MySQL但您也可以使用PostgreSQL或MariaDB。 企业客户可以使用Oracle等专有数据库的连接器。 pom.xml propertiesspeedment.version3.0.1/speedment.versiondb.groupIdmysql/db.groupIddb.artifactIdmysql-connector-java/db.artifactIddb.version5.1.39/db.version /propertiesdependenciesdependencygroupIdcom.speedment/groupIdartifactIdruntime/artifactIdversion${speedment.version}/versiontypepom/type/dependencydependencygroupId${db.groupId}/groupIdartifactId${db.artifactId}/artifactIdversion${db.version}/version/dependency /dependenciesbuildpluginsplugingroupIdcom.speedment/groupIdartifactIdspeedment-maven-plugin/artifactIdversion${speedment.version}/versiondependenciesdependencygroupId${db.groupId}/groupIdartifactId${db.artifactId}/artifactIdversion${db.version}/version/dependency/dependencies/plugin/plugins /build 现在您可以访问许多新的Maven目标这些目标使使用工具包变得更加容易。 启动Speedment UI执行 mvn speedment:tool 这将指导您完成连接数据库和配置代码生成的过程。 开始时最简单的方法就是您与默认设置一起运行。 一旦按下“ Generate”Speedment将分析您的数据库元数据并用诸如实体和经理类之类的新资源填充您的项目。 初始化速度 生成域模型后轻松设置Speedment。 创建一个新的Main.java文件并添加以下行。 您看到的所有类都是生成的因此它们的名称将取决于数据库模式表和列的名称。 Main.java public class Main {public static void main(String... param) {final HaresApplication app new HaresApplicationBuilder().withPassword(password).build();} } 上面的代码使用生成的生成器模式创建一个新的应用程序实例。 使用该构建器可以设置任何运行时配置详细信息例如数据库密码。 有了应用程序实例后就可以使用它来访问生成的管理器。 在这种情况下数据库中有四个表。 “野兔”“胡萝卜”“人”和“朋友”。 您可以在此处查看整个数据库定义 。 final CarrotManager carrots app.getOrThrow(CarrotManager.class); final HareManager hares app.getOrThrow(HareManager.class); final HumanManager humans app.getOrThrow(HumanManager.class); final FriendManager hares app.getOrThrow(FriendManager.class); 这些管理器现在可以用来执行我们的所有CRUD操作。 创建实体 创建实体非常简单。 我们使用生成的实体实现为列设置所需的值然后将其持久化到数据源。 hares.persist(new HareImpl().setName(Harry).setColor(Gray).setAge(8) ); persist方法返回一个可能新的Hare实例其中已设置了自动生成的键例如“ id”。 如果我们要在持久化Harry后再使用Harry则应使用由persist返回的实例。 final Hare harry hares.persist(new HareImpl().setName(Harry).setColor(Gray).setAge(8) ); 如果持久性失败例如如果外键或唯一约束失败则抛出SpeedmentException。 如果有什么阻止我们坚持野兔我们应该检查并显示错误。 try {final Hare harry hares.persist(new HareImpl().setName(Harry).setColor(Gray).setAge(8)); } catch (final SpeedmentException ex) {System.err.println(ex.getMessage());return; }读取实体 Speedment运行时中最酷的功能是可以使用Java 8 Streams流化数据库中的数据。 “为什么这么酷” 你可能会问自己。 “如今即使Hibernate也支持流 ” Speedment流的美丽之处在于在构造流时它们考虑了中介和终止操作。 这意味着如果在创建流之后向该流添加过滤器则在构建SQL语句时仍将其考虑在内。 这是一个例子。 我们要计算数据库中的野兔总数。 final long haresTotal hares.stream().count(); System.out.format(There are %d hares in total.%n, haresTotal); 将生成的SQL查询如下 SELECT COUNT(*) FROM hares.hare; 终止操作是.count因此Speedment知道它是要创建的SELECT COUNT…语句。 还知道“ hare”表的主键是“ id”列这使得将发送给数据库的整个语句缩减到此范围内成为可能。 一个更复杂的示例可能是查找名称以字母“ rry”结尾且年龄大于或等于5的野兔数量。可以这样写 final long complexTotal hares.stream().filter(Hare.NAME.endsWith(rry)).filter(Hare.AGE.greaterOrEqual(5)).count(); 我们使用Speedment为我们生成的谓词构建器来定义过滤器。 这使我们可以以编程方式分析流并将其简化为以下SQL语句 SELECT COUNT(id) FROM hares.hare WHERE hare.name LIKE CONCAT(%, ?) AND hare.age 5; 如果我们向流添加无法优化Speedment的操作它将像任何Java 8流一样被解析。 我们绝不仅限于使用生成的谓词构建器它只是使流更有效。 final long inefficientTotal hares.stream().filter(h - h.getName().hashCode() 52).count(); 这将产生以下效率极低的语句但仍将起作用。 SELECT id,name,color,age FROM hares.hare;更新实体 更新现有实体的方式与读取和保留实体的方式非常相似。 在我们在管理器中调用update方法之前对实体的本地副本所做的更改不会影响数据库。 在这种情况下我们采用了哈利先前创建的野兔并希望将其颜色更改为棕色 harry.setColor(brown); final Hare updatedHarry hares.update(harry); 如果更新被接受管理员将返回新的野兔副本因此在此之后我们应该继续使用该实例。 就像在“创建”示例中一样更新可能会失败。 也许将颜色定义为“唯一”列并且已经存在“棕色”兔子。 在这种情况下将抛出SpeedmentException。 我们还可以通过将其与流组合来同时更新多个实体。 假设我们要将所有名为“哈利”的野兔都变成棕色。 在这种情况下我们这样做 hares.stream().filter(Hare.NAME.equal(Harry)).map(Hare.COLOR.setTo(Brown)).forEach(hares.updater()); // Updates remaining elements in the Stream 我们还应该将其包装在try-catch中以确保在约束失败时向用户发出警告。 try {hares.stream().filter(Hare.NAME.equal(Harry)).map(Hare.COLOR.setTo(Brown)).forEach(hares.updater()); } catch (final SpeedmentException ex) {System.err.println(ex.getMessage());return; }移除实体 我们需要知道的最后一个CRUD操作是如何从数据库中删除实体。 这几乎与“更新”相同。 假设我们要删除所有10年以上的野兔。 然后我们这样做 try {hares.stream().filter(Hare.AGE.greaterThan(10)).forEach(hares.remover()); // Removes remaining hares } catch (final SpeedmentException ex) {System.err.println(ex.getMessage());return; }摘要 在本文中您学习了如何在Maven项目中设置Speedment以及如何使用Java 8 Streams从数据库创建更新读取和删除实体。 这只是Speedment可以做的所有事情的一小部分但是它是开始弄脏双手的很好的介绍。 可以在GitHub-page上找到更多示例和更高级的用例。 直到下一次 翻译自: https://www.javacodegeeks.com/2016/10/database-crud-operations-java-8-streams.html
http://icebutterfly214.com/news/75868/

相关文章:

  • 2025西安网站建设公司推荐3家口碑好的网站制作公司
  • oe投搞
  • 小样本学习实现大规模计算机视觉任务
  • Tokenizer学习心得
  • 应用安全 --- 软件安全 之 选择性加固
  • 四、Nodejs基于 Koa 框架的 WebServer 构建与原理解析 - 实践
  • 深耕代码质量,筑牢工程根基——《代码大全2》第四部分读后感
  • 2025年工业冷风机创新技术排行,制造车间通风降温/锻打车间通风降温/铁皮棚车间通风降温/有热源的车间通风降温工业冷风机源头厂家口碑推荐榜
  • 2025年优秀的酚醛胶厂家最新TOP排行榜
  • 03-几何建模基础
  • 07-REST-API与自动化
  • iFlow x Kimi K2实战案例:10分钟完成IP段设置任务
  • 2025年线上1对1记单词课程电话联系方式完整汇总:全国主流品牌官方联系通道与高效选课指南
  • 2025年河北沥青路面摊铺公司权威推荐榜单:河道护坡工程/市政道路大修/停车场路面改造服务商精选
  • 2025年南通床上用品销售厂家排行榜TOP5:红九窗帘领跑行业
  • Git可视化管理工具SourceTree管理代码仓库
  • 2025年口碑好的冷拉型钢三角钢/冷拉型钢圆钢TOP品牌厂家排行榜
  • vue for devexpress report 集成到项目内的总结
  • 2025年11月助听器验配机构市场报告:高性价比解决方案排行榜
  • 2025沈阳留学机构TOP10榜单
  • 2025年深圳回收基恩士控制器公司权威推荐榜单:回收基恩士通讯模块/回收基恩士测量仪‌/传感器回收‌源头公司精选
  • 2025年深圳优质的光纤激光打标机厂家最新推荐排行榜
  • 2025年陇尚合牛肉面加盟top10:权威排名与深度解析
  • 2025年十大伸缩楼梯品牌售后服务与安装效率排行榜,新乡优品
  • 2025年热门的铝制品压铸最新TOP厂家排名
  • 2025年口碑好的现场机加工在线带压开孔/现场机加工水切割高评价厂家推荐榜
  • EPC酒店装修公司推荐:行业优质服务企业盘点
  • 2025年评价高的三体系认证公司/信息技术服务认证公司服务口碑榜
  • 海淀区离婚律师事务所推荐:专注婚姻家事法律服务机构盘点
  • 2025 第 21 类商标购买平台测评:8 大靠谱平台 标源 / 过户 / 费用全解析