我试图弄清楚如何使用Java在MariaDB中编写存储过程。周围有一个补丁,说有可能。我不确定这是否已成为标准。
如果您使用Java成功地为MariaDB / MySQL编写了存储过程,请告诉我。
我很难找到一个描述不是流式传输的解决方案的词,而是分阶段或阶段处理所有内容,从而将所有内容保存在内存中.批量处理不是正确的解决方案.
举个例子,我们目前有一个具有标识符列表的机制.该列表有一百万个条目,可以加载到内存中,处理并释放内存,或者在流式解决方案中逐行加载列表,每行都立即处理,因此内存占用优于第一个解决方案.
那么用什么词来描述第一个算法/解决方案.
我必须将Java 8代码转换为JavaScript(单向,一生一次).为了加快速度,我希望尽可能自动化,然后使用测试套件来修复所有剩余的问题.
我想知道Java 8 lambdas和JavaScript(函数)之间的区别是什么?
任何重要的不兼容性?
在CMT J2EE环境(容器管理事务)中,当我JDNI查找DataSource对象并调用时,使用什么事务/连接DataSource.getConnection?
这个连接是(可能是分布式的)交易的一部分吗?getConnection()每次我为同一个DataSource对象调用它时,是否返回相同的Connection?我只知道使用本机SQL语句由同一个EntityManager使用Connections.
这让我感到困惑.据我所知,SessionContext定义了一个每次使用数据源时都使用的事务系统.我有一个问题,在使用会话bean a DataSource.getConnection(),然后关闭此连接.如果遇到问题SessionContext.setForRollBack(true)则发出.
因此,服务的事务上下文如何与DataSource相关?
如果我们每次使用数据源或者至少查找数据源时都会生成一个新的连接,那么我就无法理解我已经知道的事情.任何澄清都会很精彩.我知道容器管理的事务和其他系统,但DataSource的实际行为完全超出了我.
我看一下看起来搞砸了的合并标记.为了给你这种情况,让我们:
public void methodA() {
prepare();
try {
doSomething();
}
catch(Exception e) {
doSomethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
现在进入合并(我使用SourceTree进行拉动).标记看起来像这样:
<<<<<<<<< HEAD
try {
doSomething();
}
catch(Exception e) {
doSomethingElse();
}
============================
private void methodB() {
doOtherStuff();
>>>>>>>> 9832432984384398949873ab
}
Run Code Online (Sandbox Code Playgroud)
所以拉取提交的作用是完全删除methodA并添加methodB.
但是你注意到有些线条完全缺失.
根据我对该过程的理解,Git正在尝试所谓的自动合并,如果这种情况失败并且检测到冲突,则完整合并由标记为"<<<*HEAD"+ +之前的部分表示==== '+ after +'>>>*CommitID'并准备手动冲突解决方案.
那么为什么它会遗漏一些线条呢.它看起来更像是我的错误.
我使用的是Windows7,安装的git版本是2.6.2.windows.1.虽然最新的版本是2.9,但我想知道是否有任何关于具有如此规模的合并问题的git版本的知识?这不是我第一次经历这样的事情......
我现在有一个 Maven 问题。我创建了一个新的测试项目来简化问题:
错误接缝为:
Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.util.cli.CommandLineException
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
... 59 more
Run Code Online (Sandbox Code Playgroud)
-v 给我:
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100) Maven 主页:/home/ubuntu/workspaces/projectx/test/EMBEDDED Java 版本:1.7.0_21,供应商:Oracle Corporation Java 主页: /usr/lib/jvm/java-7-openjdk/jre 默认语言环境:de_DE,平台编码:UTF-8 操作系统名称:“linux”,版本:“3.0.0-32-generic”,arch:“amd64”,家庭:“unix”
而 pom 是:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
这给了我:
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building test 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) …Run Code Online (Sandbox Code Playgroud) 我刚刚了解了 JMH 微基准测试框架(http://openjdk.java.net/projects/code-tools/jmh/)。我只是想知道他们是如何实现 @CompileControl 注释功能的。从源代码中,他们在单个文本文件中简单地向编译器编写了一系列指令(提示)。
我只是想知道是否可以找到一些关于底层机制的附加文档,它仅适用于 OpenJDK。
我想用Java创建一个快速的霍夫曼代码解码器,因此考虑了查找表。由于这些表占用内存,并且我们使用Java代码导航和访问表,因此可以轻松(或不容易)编写表示同一表的程序/方法。
这种方法的问题是,我不知道什么是最佳策略。我知道很多有关缓存和分支预测的内容。同样,切换案例的实现意味着实际的ASM在我之外。如果我有一个内存中查找表(或它的层次结构),则可以简单地跳入和跳出,但是出于我的目的,我建议将该表放入高速缓存中。
由于我实际上是走一棵树,因此可以像执行其他语句一样需要一定数量的比较来实现它,但是对于每个比较,它都需要附加的二进制运算。
因此存在以下选项:
编写和基准测试非常棘手,因此任何初步想法都会很棒。
起作用的另一个问题是位的顺序。最重要的位始终位于最前面,这意味着它以相反的顺序存储。
如果您的树是A = 0,B = 10,C = 11以编写BAC,则它实际上是01 + 0 + 11(加上意味着追加)。
因此,实际上必须以相反的顺序编写代码。对组使用if / else或switch方法将不会有问题,因为屏蔽位很简单,并且位的反转也很可能,但是由于相反,它将失去将组内的索引移出掩码的想法位顺序的添加和删除具有不同的含义,并且不可能进行简单的查找。
反转位是一项昂贵的操作(我使用4位查找表),不会超过二进制操作的性能损失。
但是,在旅途中反转位更适合此操作,并且每位需要四个操作(上移,屏蔽,加法以及下移输入)。由于我提前读取了所有这些操作,因此所有这些操作都将在寄存器中完成,因此它们可能只需要几个周期。
这样,我可以使用switch,sub和if来找到正确的符号组并返回它们。
最后,我需要一些建议。由于我的代码在语言处理方面是全球通用的,因此可以进行硬连线(即在源代码中)。
我想知道像ANTRL这样的解析器生成器是用来表达那些决定的。由于他们也根据输入符号来缝制切换或是否/其他,这可能会给我一个提示。
[更新]
我发现了一种简化方法,可以避免反向位问题,但仍会增加每组的成本。因此,我最终按照要遍历的组的顺序编写了位。因此,我不需要每个位四个修改,而是每个组(不同的位长)。
对于每个组,我们都有:1.第一个元素的值,大小(以及该组中最后一个元素的值)。
因此,对于每个组,算法如下:1.读取mbits并与当前读取值组合。2.将值与该组的最后一个值进行比较,如果它不在该组中,则该值在该组中较小。->接下来阅读3.如果在组内,则可以访问值数组或使用switch语句。
这是完全通用的,可以不使用循环就可以有效地使用。同样,如果检测到该组,则代码的位长是已知的,并且可以从源中消耗这些位,因为代码看起来很远(从流中读取)。
[更新2]
要访问实际值,可以使用按组分组的单个大元素数组。由于按组分组的可传输性降低,因此很可能有相当一部分适合L2或L1缓存,从而加快了访问速度。
或者使用switch语句。
[更新3]
根据开关的情况,编译器会生成表开关或查找开关。查找开关的复杂度为O(log n),并存储密钥,jmp偏移对,因此不理想。因此,检查组更适合if / else。
tableswitch本身仅使用跳转偏移量表,并且仅需进行减法,比较,访问,jmp即可到达目标,而它必须对常量执行返回值。
因此,表访问看起来更有希望。另外,为了避免不必要的跳转,每个组可能包含访问和返回组符号表的逻辑。将所有内容存储在一个大表中是有希望的,因为每个符号可能是int或short,而我的代码通常最多只有1000到4000个符号,这实际上使它很短。
我将检查1-模式是否将使我有机会以更好的方式存储和访问掩码,从而允许二进制搜索正确的组而不是前进O(n),甚至可能在处理期间完全避免任何移位操作。
我正在寻找一个有一个run像Runnable 这样的方法但返回结果的接口的好名字.
我目前考虑的选项是:
计算 - >过于数学,而不是返回结果的所有内容都是计算
功能 - >接近我正在寻找的东西,但它仍然是数学上太过分了
动作 - >是不适合因为它没有必要产生结果
操作 - >这将是我目前最喜欢的,但在数学上它可能只描述一种关系,而不会产生更多的结果.与行动相同
提供者 - >提供者意味着给某人/某事物提供某些东西,但并非总是这样,因为返回这种可运行的结果是很常见的
供应商 - >参见供应商
任务 - >是值得考虑的事情,但会干扰任务的另一种表示法,即由调度程序执行的任务.
工作 - >可能工作但工作流程更好地保存工作流程.
工作 - >与任务相同
过程 - >可能工作但是最好保留,并且不是所有结果都是由实际过程产生的(getter示例)
这些是我找到的替代品.最接近的赌注是供应商或ResultSupplier界面,但听起来很尴尬.
有没有人有更好的命名理念或知道与所呈现的(或目前错过的)替代方案幸福生活的框架?
java ×8
naming ×2
benchmarking ×1
conflict ×1
database ×1
eclipse ×1
ejb-3.0 ×1
git ×1
huffman-code ×1
inline ×1
java-8 ×1
javascript ×1
mariadb ×1
maven ×1
merge ×1
mysql ×1
parsing ×1
performance ×1