データベースから管理レベルのIDを特定するためのプログラムの作成。私はサイトを通して何度もこの同じ接続方法を使用しましたが、それ以外の場所ではハングしません。しかし、これらのメソッドは実際のクラスには埋め込まれていません。この特定のコードをJavaクラスに入れてハングアップさせる理由はありますか?ただ、繰り返しにjavaでのデータベース接続の取得がハングする
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
import oracle.jdbc.driver.OracleDriver;
import java.sql.*;
public class connection
{
public Connection getDBConnection()
{
java.sql.Connection conn=null;
try
{
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection("stuff"); //Hangs here for like 2 seconds
}
catch (Exception e)
{
e.printStackTrace();
}
return conn;
}
}
は、私がまっすぐJSP(つまりJSPでいないクラス)を介してこれを使用するサイトをthroughtが、この特定のセグメントのために、私はクラス内のメソッドとしてそれを実装しました。これが唯一の場所です。また、データベースの接続作業を行うための特定のインポートを私に与えることができれば、私はそれらのいくつかを取り除くことができます。* ... ...それはすばらしいでしょう。 ありがとう
編集:オブジェクトXを作成し、オブジェクトXにこのメソッドを呼び出す接続クラスオブジェクトを作成します。
ので、
someClass whatever = new someClass();
Connection conn = null;
conn = whatever.getDBConnection(); //hangs
ベストプラクティスの考え方 - クラス名は大文字( 'Connection')で始まる必要があります。 'java.sql.DriverManager'と' oracle.jdbc.driver.OracleDriver'をインポートするだけです。クラス名を変更する場合は、戻り値の型を 'java.sql.Connection'に変更してください。ほとんどの場合、JSPからのデータベース接続は避ける必要があります。これを行うデータアクセス層が必要です。 –
しかし、私はjspのデータアクセス層と思った。バー、私は本当にこの事を知っていた誰かを知りたがっています。 – cphilpot
@cphilpot私はMrJamesの答えにあなたの提案された編集を承認しました。その情報はまだそこにあった投稿のリビジョン履歴で利用可能であることに注意してください。通常、SOで完全に削除されるものはありませんが、この場合はmodからDBからパージできるかどうかを確認するフラグが付きます。 – Pops