ユーザーは、ms sql か my sql かのタイプを指定するべきではありませんか? 私はそれをネットビーンズでやりたいですか?そうでない場合、何か方法はありますか?
ありがとうございました
ユーザーは、ms sql か my sql かのタイプを指定するべきではありませんか? 私はそれをネットビーンズでやりたいですか?そうでない場合、何か方法はありますか?
ありがとうございました
編集
どういうわけか、複数のデータベースを処理できるアプリケーションを開発する方法を知りたいと思っていました。そんな時に役立つパターンです。ただし、実際にデータベースにクエリを実行し、そこから必要なすべてのデータを取得するには、対応する API を使用する必要があります。(たとえば、Java アプリケーションのJDBC )。この回答の最後まで読んでください。実際の Sql Server データベースで JDBC を使用する方法の例を追加しました。
(最初の部分:永続化レイヤーの管理方法)
プログラムには多層アーキテクチャが必要です。これらのレイヤーの 1 つは、データベースからデータをクエリ/取得する永続レイヤーである必要があります。これからは、この永続層についてのみ説明します。
これを行う 1 つの方法は、Java インターフェイスを使用することです。
public interface DataService
{
connect();
close();
ArrayList<IUser> retrieveUserDatas(..);
// other expected operations
....
}
次に、データベースの種類ごとにこのインターフェイスの実装クラスを 1 つ用意します。したがって、次のようになります。
class SqlServer implements DataService
{
// Implementation of your operations using Sql Server drivers
}
class Mysql implements DataService
{
// Implementation of your operations using Mysql drivers
}
そして、どのデータベースを使用するかを決定するマネージャーを持つことができます。
class Manager
{
DataService dataService;
public Manager(string databaseType)
{
if(databaseType.equals("sqlserver"))
{
dataService = new SqlServer();
}
else if(databaseType.equals("mysql"))
{
dataService = new Mysql();
}
}
}
したがって、上位層では、適切なデータベース システムを使用して永続化層のマネージャーを作成できます。
Manager manager = new Manager("mysql"); // I want to manage my database layer with mysql
dataService
これで、マネージャーからの属性がクラスのインスタンスにMysql
なり、このクラスの操作を使用できるようになります。これは、新しいデータベースをシステムに追加するたびに変更する必要がある 1 行のコードです (+ インターフェイスを実装し、データベースの特定のドライバーを使用するクラス)。
参考までに、これはブリッジのデザイン パターンです。
(第 2 部: JDBC の操作)
たとえば、Sql Server データベースの実装クラスは実際には次のようになります。
public class SqlServerAccess implements IDataServerAccess {
static final String url= "jdbc:sqlserver://localhost:1433;databaseName="NAME OF YOUR DATABASE";integratedSecurity=true;";
Connection connector;
public void connection() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
connector = DriverManager.getConnection(url, "root", "");
} catch (Exception ex) {
Logger.getLogger(SqlServerAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public void close() {
try {
if(connector != null){
connector.close();
}
} catch (SQLException ex) {
Logger.getLogger(SqlServerAccess.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
このconnection()
メソッドでは、Sql Server ドライバーを参照したことがわかります。com.microsoft.sqlserver.jdbc.SQLServerDrive
そのため、データベースごとに、特定のドライバーをダウンロード (.jar) し、実装クラスで指定する必要があります。
最後に、インサートは次のようになります。
public void insertData(Data data) {
try {
Statement st = dataServerAccess.connect().createStatement();
st.execute("INSERT INTO DATA(bla, bla, bla, bla, created_at)"
+ "VALUES('" + data.bla()
+ "', '" + ..
+ "', '" + ..
+ "', '" + ..
+ "','" + getTodayTimestamp() +"')");
} catch (SQLException ex) {
} finally {
dataServerAccess.close();
}
}
この説明が、あなたが望むものを構築するのに役立つことを願っています. これらすべてのキーワードをグーグルで検索する必要がある場合があります(JDBC、データベースレイヤーなど、後でJPAをさらに進めることができます。これはオブジェクトリレーショナルマッパーです。とにかく、キーワードをグーグルでチェックしてください!)。たとえば、mysql で JDBC を使用するのに役立つドキュメントがいくつかあります。