3

PHP では、単純にファイルを作成します。たとえばconnect.php 、このファイルを好きなすべてのページに含めます。

Java では、呼び出された同じプロジェクト フォルダに別のファイルを作成しconnect.java、他のファイルでそれを呼び出そうとしたため、それらのファイルはデータベース接続を取得しましたが、これまでのところうまくいきませんでした。

前回試してみましたが、驚いたことに、接続ページのいくつかの変数がメイン プログラムで使用できませんでした。誰か助けてください。以下は、mysqlに接続するために使用するコードであり、いくつかのものを印刷しています

しかし、接続するためだけに何も印刷しない別のファイルにしたいので、必要なものをすべて別のファイルに印刷します

したがって、php 用語で話す場合は、接続が必要な他のファイルに含めたいと思います。

try {
                Class.forName("com.mysql.jdbc.Driver");
                System.out.println("Driver loading success!");
                String url = "jdbc:mysql://localhost:3306/saloon";
                String name = "root";
                String password = "";
                try {

                    java.sql.Connection con = DriverManager.getConnection(url, name, password);
                    System.out.println("Connected.");
             // pull data from the database 
    java.sql.Statement stmts = null;
    String query = "select  userid, username, name , address, hairstyle from saloonuser ";
    stmts = con.createStatement();
    ResultSet rs = stmts.executeQuery(query);
    int li_row = 0;
    while(rs.next()){
        mysTable.setValueAt(rs.getString("username"),li_row,0);
        mysTable.setValueAt(rs.getString("name"),li_row,1);
        mysTable.setValueAt(rs.getString("address"),li_row,2);
        mysTable.setValueAt(rs.getString("hairstyle"),li_row,3);

        int userid = rs.getInt("userid");
        String username = rs.getString("username");
        String name1     = rs.getString("name");
        System.out.println(name1);
        li_row++;
        } } catch (SQLException e) {
                    e.printStackTrace();
                }

            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }

        }

    }
4

2 に答える 2

9

アプローチする方法の 1 つは、オブジェクトBaseDAOを返すメソッドを使用することです。ここでは、次のコードを使用できます。Connection

public class BaseDAO {

 public Connection getConnection() {
   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost:3306/saloon";
   String name = "root";
   String password = "";

   Connection con = DriverManager.getConnection(url, name, password);
   return con;
 }
}

BaseDAO次に、これを他のすべてのクラスで拡張するDAOか、クラスのオブジェクトを作成してオブジェクトをBaseDAO取得できConnectionます。

残りのコードは別DAOのクラスになります。(と呼びましょうGetDataDAO)。

public class GetDataDAO extends BaseDAO {

  Connection con = getConnection();
  Statement stmts = null;
  String query = "select  userid, username, name , address, hairstyle from saloonuser ";
  stmts = con.createStatement();
  ResultSet rs = stmts.executeQuery(query);
  int li_row = 0;
  while(rs.next()){
    mysTable.setValueAt(rs.getString("username"),li_row,0);
    mysTable.setValueAt(rs.getString("name"),li_row,1);
    mysTable.setValueAt(rs.getString("address"),li_row,2);
    mysTable.setValueAt(rs.getString("hairstyle"),li_row,3);

    int userid = rs.getInt("userid");
    String username = rs.getString("username");
    String name1     = rs.getString("name");
    System.out.println(name1);
    li_row++;
    }
  }
于 2013-07-06T23:34:27.107 に答える
1

PHP と Java の開発アプローチの方法は大きく異なります。

Java が主に使用するアプローチは、PHP の Zend フレームワークに似ています。

構成を外部化できるフレームワークは数多くあります。

あなたは Java から始めたばかりのようですので、私は言わなければなりません - それは長い道のりです... しかし、長期的には、JBoss ASなどの Java Application Server を検討することをお勧めします。これらのサーバーは JDBC 接続を「データソース」と呼ぶので、それを構成する必要があります。

persistence.xmlそれらでは、通常、次のようなファイルを使用する JPA - Java Persistence API を使用します。

<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

  <persistence-unit name="educationPU" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/COE" />
        <property name="hibernate.connection.username" value="root" />
        <property name="show_sql" value="true" />
        <property name="dialect" value="org.hibernate.dialect.MySQLDialect" />
    </properties>
  </persistence-unit>
</persistence>

(この場合、説明のために DB プロパティが定義されていますが、データソースは通常 AS でそれを定義します)

次に、と呼ばれるものを作成し、そこからEntityMangerFactory「接続」( EntityManager) を取得し、メソッドを呼び出してデータを操作したり、SQL を実行したりします。

アプリケーションがスタンドアロンの場合、Weld-SE、Guice、Spring Framework などのいわゆる IoC フレームワークを見ることができます。これにより、アプリの構成と構造を外部 XML (およびその他) に配置できます。ファイル。

これらのいずれも使用したくない場合は、通常のように独自の「DbManager」を作成しますが、少なくともパフォーマンス上の理由から、「接続プール」が必要になります。たとえばC3P0を参照してください。

于 2013-07-07T00:51:46.293 に答える