JavaWebアーキテクチャの理解-7.データベース応用


動的Webサイトの基礎はデータベースです.JavaはJDBCによって一般的なデータベースを呼び出し、この方法で各データベースのアクセスの違いを遮断します.
MySqlのインストール、構成
インストールMySql注意カスタムモードインストール、インストール中に開発者、多機能データベース、DSS/OLAPモード、注意文字セット選択GBK、ポート3306を選択します.これらのパラメータは、インストール後にconfig wizardで変更できます.
JDBCのワークフローと使用手順
JDBCはJavaAPIの一部であり、JDBCのインタフェースとクラスを使用して、どのリレーショナル・データベースでもSQL文を同じ方法で実行できます.開発プロセスは次のとおりです.
1.      まず、現在使用されているデータベースに対応するドライバJarパッケージファイルをMySqlのWebサイトにダウンロードする必要があります.本稿ではmySqlを例に挙げます.
2.      このファイルをWEB-INF/libにコピーします.
3.      Class.forNameを使用してロードし、Class.forName(「com.mysql.jdbc.Driver」)
4.      データベースにアクセスするURLを設定します.基本的にJDBC+データベースIP+ポート+データベース名です.String url="jdbc:mysql://localhost:3306/dbtest”;
5.      データベース接続はJdbcのDriverManagerで作成します.Connection con = DriverManager.getConnection(URL,user,password);このメソッドはConnectionオブジェクトを返します.
6.      Connectionオブジェクトを使用して、Sql文を操作するStatementオブジェクトを作成します.Statement stmt = con.createStatement();またはconnectionオブジェクトを使用してPreparedStatementオブジェクトを作成します.
7.      Sql文はstatementオブジェクトによって実行され、このメソッドはResultSetまたは他のものを返します.
8.      実行結果をResultSetで表示します.
CURD操作
全体的にPreparedStatementを使うのは便利で、Statementを使うよりもっといいです.
1.      C
まず、同じConnectionオブジェクトを返す単一のスキーマを使用するデータベース接続クラスを作成します.
public class db {
  public staticConnection conn;
  public staticConnection getInstance() throws SQLException,ClassNotFoundException{
     if(conn!=null){
       return conn;      
     }else
     {
       Class.forName("com.mysql.jdbc.Driver");
       String URL="jdbc:mysql://localhost:3306/test";
       returnDriverManager.getConnection(URL, "root", "root");      
     }
  }
}

次に、操作オブジェクトuserとuserのデータベース操作クラスuserDaoを確立します.コードはそれぞれ次のとおりです.
User.java
public classuser {
private int id;
private String name;
public int getId() {
          return id;
}
public void setId(int id) {
          this.id = id;
}
public String getName() {
          return name;
}
public void setName(String name) {
          this.name = name;
}
}

userDao.java
public classuserDao {
public void newUser(user u) throwsSQLException, ClassNotFoundException{
          String sql = "insert intoguestbook (id,name) values (?,?)";
          PreparedStatement stmt =db.getInstance().prepareStatement(sql);
          stmt.setInt(1, u.getId());
          stmt.setString(2, u.getName());
          int r = stmt.executeUpdate();
}
}

jspページに上記の要素をインポートし、jspコードを使用して新規操作を行います.

2.      U

preparedStatement , 。

public intupdateUser(user o,user n) throws SQLException, ClassNotFoundException{
          String sql = "update guestbookset name=? where id = ?";
          PreparedStatement stmt =db.getInstance().prepareStatement(sql);
          stmt.setString(1, n.getName());
          stmt.setInt(2, o.getId());
          return stmt.executeUpdate();
}

3.      R

public ListreadUsers() throws SQLException,ClassNotFoundException{
     List list = newArrayList();
     String sql = "select *from guestbook";
     Statement stmt = db.getInstance().createStatement();
     ResultSet rs = stmt.executeQuery(sql);
     while(rs.next()){
       user t = newuser();
       t.setId(rs.getInt("id"));
       t.setName(rs.getString("name"));
       list.add(t);
     }
     returnlist;
}

4.      D

public intdeleteUser(user old) throws SQLException,ClassNotFoundException{
     String sql = "deletefrom guestbook where id = ?";
     PreparedStatement ps = db.getInstance().prepareStatement(sql);
     ps.setInt(1, old.getId());
     returnps.executeUpdate();
}

1. JavaWeb -1.

2. JavaWeb -2.JSP

3. JavaWeb -3.JSP

4. JavaWeb -4.JavaBean

5. JavaWeb -5.Servlet

6. JavaWeb -6.EL JSTL