0

Eclipse Juno IDE と phpMyAdmin を使用しています。

私はJavaアプリケーションを持っています。このアプリケーションのために、phpMyAdminでDBを作成しました。これで、DB メソッドのインターフェースができました。インターフェースが次のようなものだとしましょう。

public interface DBInterface{
  public Vector<Employees> getAllEmplyess();
  public void addNewEmployee(int ID, String name,String department);
}

次に、このインターフェイスを次の 2 つの方法で実装する必要があります。

1)JPA

2) JDBC

上記の 2 つの方法でインターフェイスを実装したとしましょう。

applicationContext.xml ファイルでスプリング メカニズムを使用する方法を選択するにはどうすればよいですか? それはどのように機能しますか?

4

2 に答える 2

2

JPA と JDBC の両方の実装が必要なのはなぜですか (JPA は JDBC に基づいています)。

2 つを区別する方法は、2 つの別個の DAO クラスを作成することです (どちらもインターフェイスを実装します)。

public class JDBCDao implements DBInterface {...}
public class JPADao implements DBInterface {...}

必要に応じて、Spring xml (アプリケーションコンテキストファイル) に適切な DAO Bean を挿入します。

たとえば、アプリケーション コンテキスト xml は次のようになります: ( daoEmployeeService クラスのメンバーの型はDBInterface)

<bean id="JPADAO" class="com.yourpackage.JPADao".../>
<bean id="JDBCDAO" class="com.yourpackage.JDBCDao".../>

<bean id="EmployeeService" class ....>
    <property name="dao" ref="JDBCDAO" />
    ...
</bean>

あるいは、DAO をコードに挿入することもできます。

ApplicationContext ctx = AppContext.getApplicationContext();  
EmployeeService svc = (EmployeeService) ctx.getBean("EmployeeService");  
DBInterface dao = (DBInterface) ctx.getBean("JPADAO");
svc.setDao(dao);
于 2012-09-03T11:14:51.167 に答える
1

JPAはJDBCに依存しているという事実はさておき....

ApplicationContext XML ファイルを介して制御したい場合、最も簡単な方法は、選択した実装を定義することです。2 つの実装があるとします。

 public class JpaDB implements DBInterface { ... }
 public class JdbcDB implements DBInterface { ... }

DBInterfaceそして、言うことを期待するサービス

 public class Service {
     private DBInterface db;

     public void setDBInterface(DBInterface db) {
        this.db = db;
     }
 }

次に、春の構成ファイルは次のようになります

...
<bean id="service" class="com.company.service">
    <!-- Select either "jpa" or "jdbc" depending on preference -->
    <property name="dbInterface" ref="jpa"/> 
</bean>

<bean id="jpa" class="com.company.JpaDB"/>
<bean id="jdbc" class="com.company.JpaDB"/>
于 2012-09-03T11:14:05.000 に答える