我们使用JDBC的标准代码部分是......
Connection conn = getConnection(...);
Statement stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
ResultSet rset = stmt.executeQuery (sqlQuery);
// do stuff with rset
rset.close(); stmt.close(); conn.close();
Run Code Online (Sandbox Code Playgroud)
问题1:使用连接池时,是否应该在结束时关闭连接?如果是这样,汇集失败的目的不是?如果没有,DataSource如何知道什么时候释放Connection的特定实例并且可以重用?我对这个有点困惑,任何指针都赞赏.
问题2:以下方法是否接近标准?看起来是尝试从池中获取连接,如果无法建立DataSource,请使用旧式DriverManager.我们甚至不确定哪个部分在运行时被执行.重复上面的问题,是否应该关闭连接出来的这种方法?
谢谢, - MS.
synchronized public Connection getConnection (boolean pooledConnection)
throws SQLException {
if (pooledConnection) {
if (ds == null) {
try {
Context envCtx = (Context)
new InitialContext().lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/NamedInTomcat");
return ds.getConnection();
} catch (NamingException e) {
e.printStackTrace();
}}
return (ds == null) ? getConnection (false) : ds.getConnection();
}
return DriverManager.getConnection(
"jdbc:mysql://"+ipaddy+":"+dbPort …Run Code Online (Sandbox Code Playgroud) 在下面的示例中,我有3种不同的语法/机制来定义继承.所有这些都有效.有人能告诉我哪一个是首选的,为什么(是的,我知道"有更多......").另外,为什么我需要在1例中使用"WB"而不是其他2.使用TIA
主要的 -
#!/usr/local/bin/perl -w
#######################
use strict;
use River;
use Ocean;
use Lake;
my $pName = $0; $pName =~ s/.*\///; $pName =~ s/\.\w+$//;
my @sources = (Ocean->new ('Pacific', 1),
River->new ('Brazos', 0),
Lake->new ('Tahoe', 0) );
foreach (@sources) {
$_->printIfSaline ($pName);
}
Run Code Online (Sandbox Code Playgroud)
模块(湖泊,河流和海洋继承自WaterBody):
######################
# File: Lake.pm
######################
package Lake;
use strict;
use WaterBody;
our @ISA = ('WaterBody');
sub new {
my $class = shift;
$class->SUPER::new(@_)
}
sub printIfSaline {
my ($self, $prompt) = @_;
my $name = $self->getName(); …Run Code Online (Sandbox Code Playgroud) 我们在嘲笑了一段时间(几个小时)后得到了一个CommunicationsException(来自DBCP).错误消息(在Exception中)是在这个问题的结尾 - 但我没有看到在任何配置文件中定义wait_timeout.(我们应该在哪里看?在tomcat/conf目录之外的某个地方?).
其次,正如Exception所建议的那样,在哪里放置"Connector/J连接属性'autoReconnect = true'"?这是tomcat设置文件conf/context.xml中的资源定义:
<Resource name="jdbc/TomcatResourceName" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
username="xxxx" password="yyyy"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/dbname?autoReconnect=true"/>
Run Code Online (Sandbox Code Playgroud)
第三,为什么JVM会等到executeQuery()调用抛出异常?如果连接超时,getConnection方法应该抛出异常,不应该吗?这是我正在讨论的源代码部分:
try {
conn = getConnection (true);
stmt = conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rset = stmt.executeQuery (bQuery);
while (rset.next()) {
....
Run Code Online (Sandbox Code Playgroud)
最后,这里是Stack跟踪的前几行......
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 84,160,724 milliseconds ago. The last packet sent successfully to the server was 84,160,848 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring …Run Code Online (Sandbox Code Playgroud) 来自Apache-Tomcat背景,我需要在Websphere(v7)上做一些工作.必须说我被帮助部分的术语所震撼 - 一个"新项目"给了我17个选项,我不知道他们的意思; "Hello World"教程让我创建了一些我不知道如何使用的对象和结构(什么是中介,它如何帮助我编写客户端?).
一个示例问题:我想创建一个简单的Web服务 - 可以使用或不使用单词作为参数调用.如果没有参数,则会发回一个或多个列表,并将该列表中的单词作为参数,即其含义.Word不在列表中 - 错误消息消失.
我从哪里开始?我编写了wsdl,可以将类文件编写为servlet,但我想用Websphere方式,使用Eclipse/JUnit进行开发/测试.任何人都可以推荐一个解释类似步骤(简单性)的教程吗?我想学习EAR文件结构,脚本的位置和内容(如果使用它们)(如何/何时转换依赖项)和Xml编组,处理异常的级别,最佳日志记录实践,配置文件的位置是和什么可以配置等
如果教程没有涵盖上述所有内容,那就没关系,我只需要一个好的起点,以及我可以阅读和理解的材料.不需要商业模型或数据库访问的层/层,只需要简单易懂的东西.谢谢.
请允许我用一个例子来问这个问题:假设我们有以下3个列表(为清楚起见,省略了双引号):
L1: (a, c, b, d, f, j)
L2: (b, e, j, k)
L3: (a, d, e, g, h, j, i)
Run Code Online (Sandbox Code Playgroud)
输出列表可能如下所示(还有更多解决方案)
Lanswer1: (a, c, b, d, e, f, g, h, j, i, k)
Lanswer2: (a, c, b, d, f, e, g, h, j, i, k)
Lanswer3: (a, c, b, d, e, f, g, h, j, k, i)
Run Code Online (Sandbox Code Playgroud)
总之,生成的有序集
第四个列表,L4:(b,c,d),当添加到输入时,应抛出异常(因为c在L1之前的b之前)
我通过检查得出了答案.任何人都可以建议一个算法来做到这一点?谢谢, - MS
我们在tomcat引擎上有一组正在运行的servlet.当我们编译一个java文件并构建war时,tomcat需要不确定的时间来重新加载它.有时3秒,有时30秒等.当前的解决方法是停止tomcat并使用shell脚本重新启动它.我们将autodeploy和reloadable标志设置为true,但它无法正常工作.知道如何实现这一目标吗?指针也很受欢迎.这是关于ubuntu的tomcat v6.0.20.
这是我们的conf/server.xml文件的摘录:
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<DefaultContext reloadable="true">
</DefaultContext>
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
</Host>
</Engine>
Run Code Online (Sandbox Code Playgroud) 我们需要一个工具来测试一组相当复杂的Java应用程序.应用程序主要是独立的客户端程序或与远程站点的servlet或apache服务器通信的applet.眼镜:
我们正在考虑编写一个基于AWTRobot的工具来读取命令文件并执行此操作 - (不知道如何做#3或#4) - 有些人会问你们如何检测桌面上的窗口.您会建议使用开源工具吗?我们不需要任何花哨的东西来捕捉视频或截图.谢谢, - MS
我只是搞砸了一个机会,没有回答2个问题.我仍然不知道答案,所以寻找它们:
[1]你有一个带有私有变量的Java类,没有getter/setter方法.你如何修改这些变量?
我的回答:你不能这样做,私有变量无法从外部访问.采访者:正确答案是"使用反思".
[2]您使用哪种反射方法来完成上述操作?我的回答:我不确定.采访者:再见.
根据我的经验,我(1)检查类是否存在(2)创建实例(3)检查方法是否存在(4)调用方法(5)继续使用类的实例.当然,我会捕获类似ClassNotFound和MethodInvocation的异常.但是有一个修改私有变量的技巧吗?人们这样做吗?TIA.
java ×7
jdbc ×2
mysql ×2
inheritance ×1
perl ×1
reflection ×1
syntax ×1
tomcat6 ×1
websphere ×1