2017-10-11 7 views
-2

データベース(mysql)にデータを挿入するサーブレットを作成しようとしています。問題は、サーブレットから呼び出している他のクラスに記述し、getParameter()を使わずにデータを挿入する必要があることです。 UPD:ここで私は、引数getParameter()を使用しないJavaサーブレットのデータベースへの挿入。

  1. UserController.java

    protected void doPost(UserDao request, HttpServletResponse 
        response) throws ServletException, IOException { 
    
    
    
        UserDao.addUser(); 
    
    } 
    
  2. UserDAO.java

    含まれているクラスの2クラス、サーブレットの1、1に圧縮したいの完全なコードがあります
    public class UserDao { 
    
        private static Connection connection; 
    
        public UserDao() { 
        connection = (Connection) DBconnect.getConnection(); 
        } 
    
    public static void addUser(String fname, String lname, String dob,  String email, String uid) { 
        try { 
    PreparedStatement preparedStatement = ((java.sql.Connection)  connection).prepareStatement("insert into users(firstname,lastname,dob,email) values (?, ?, ?, ?);"); 
        preparedStatement.setString(1, fname); 
    preparedStatement.setString(2, lname); 
    preparedStatement.setString(3, dob); 
    preparedStatement.setString(4, email); 
    preparedStatement.executeUpdate(); 
    
    } catch (SQLException e) { 
    e.printStackTrace(); 
    } 
        } 
    
    
    } 
    
+2

引数として他のクラスにそれらの値を渡します。 – BackSlash

+0

すべてのコードを表示します。 –

+0

@BackSlash OK、それをやろうとします* – Nurik

答えて

1

コードから、リクエストのすべてのパラメータが使用中に設定されていることがわかりますrオブジェクト。

- >ユーザーオブジェクトを取り込むDAOレイヤークラスを作成します。次に、ユーザーオブジェクトでデータを挿入するためのクエリを作成します。

+0

あなたが言ったことを私は理解していません。あなたにフルコードを表示させてください* – Nurik

+0

私は自分のコードを編集しました – Nurik

+0

コードがうまくいくように見えます。 dbにデータを挿入する際に直面しているエラーは何ですか? – Arun

0

私はあなたに何を求めているのかよくわからないので、私はそれを2つの異なる方法で行いました... これはあなたがしたいことを何でもするのに十分な例を与えてくれることを願っています。 USERオブジェクトと

---- ----

サーブレット:

protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException { 

String fname = request.getParameter("firstName"); 
String lname = request.getParameter("lastName"); 
String dob = request.getParameter("dob"); 
String email = request.getParameter("email"); 
String uid = request.getParameter("userid"); 

dao.newUser(fname,lname,dob,email,uid); 

} 

userDao

public class UserDao { 

private Connection connection; 

public UserDao() { 
connection = DbConnect.getConnection(); 
    } 

public void newUser(String fname, String lname, String dob, String email, String uid){ 

    User user = new User(); 
    user.setFirstName(fname); 
    user.setLastName(lname); 
    user.setDob(dob); 
    user.setEmail(email); 

    addUser(user);} 

} 

    public void addUser(User user) { 
     try { 
    PreparedStatement preparedStatement = connection 
      .prepareStatement("insert into  
    users(firstname,lastname,dob,email) values (?, ?, ?, ?)"); 

    preparedStatement.setString(1, user.getFirstName()); 
    preparedStatement.setString(2, user.getLastName()); 
    preparedStatement.setString(3, user.getDob()); 
    preparedStatement.setString(4, user.getEmail()); 
    preparedStatement.executeUpdate(); 

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


} 

---- USERオブジェクトを使用せず----

サーブレット:

protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException { 

String fname = request.getParameter("firstName"); 
String lname = request.getParameter("lastName"); 
String dob = request.getParameter("dob"); 
String email = request.getParameter("email"); 
String uid = request.getParameter("userid"); 

dao.addUser(fname,lname,dob,email,uid); 

} 

userDao

public class UserDao { 

private Connection connection; 

public UserDao() { 
connection = DbConnect.getConnection(); 
    } 

public void addUser(String fname, String lname, String dob, String email, String uid) { 
    try { 
PreparedStatement preparedStatement = connection 
     .prepareStatement("insert into users(firstname,lastname,dob,email) values (?, ?, ?, ?);"); 

preparedStatement.setString(1, fname); 
preparedStatement.setString(2, lname); 
preparedStatement.setString(3, dob); 
preparedStatement.setString(4, email); 
preparedStatement.executeUpdate(); 

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


} 
+0

私はそれを感謝します。それは私が望んでいない。私は何をしたいかを言い換えようとします: – Nurik

+0

1. getParamater()を全く使わないでください。私はデータベース(文字列、int、日付など)に挿入したいデータのタイプを知りません。2.サーブレットから値を挿入しているコールクラス – Nurik

+0

httpからフォームからデータを送信している場合。あなたはgetParameter()を使う必要があります。デフォルトでは、これらの値は文字列値ですが、必要なものに変換することができます。 –

関連する問題