午後はみんな、
私はJavaとプログラミング全般に不慣れなので、これまでのところ、他のスニペットから少し石畳になっています。
私が持っているクラスの前提は、(最終的には SOAP サービスを介して) ユーザーからの入力を受け取り、SQL DB を検索して関連する行を返すことです。検索は一意の ID に対して行われるため、1 行のみが返されます。
以下のコードは私が望むように機能しますが、検索する文字列入力を受け入れるようにコード化する方法がわかりません。
package my.pack;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
//import java.util.List;
public class ShowRow {
public ArrayList<String> ShowResults(){
Connection connection = null;
String url = "jdbc:mysql://localhost:3306/";
String dbName = "******";
String driverName = "com.mysql.jdbc.Driver";
String userName = "******";
String password = "******";
ArrayList<String> rowArray = new ArrayList<String>();
try{
Class.forName(driverName).newInstance();
connection = DriverManager.getConnection(url+dbName, userName, password);
try{
Statement stmt = connection.createStatement();
String selectquery = "SELECT * FROM `thisTable` WHERE `uniqueID` = 12345";
ResultSet rs = stmt.executeQuery(selectquery);
while(rs.next()){
rowArray.add(rs.getString(1));
rowArray.add(rs.getString(2));
rowArray.add(rs.getString(3));
System.out.println(rowArray);
}
}
catch(SQLException s){
System.out.println(s);
}
connection.close();
}
catch (Exception e){
e.printStackTrace();
}
return rowArray;
}
}
問題の行は次のとおりです。
String selectquery = "SELECT * FROM `thisTable` WHERE `uniqueID` = 12345";
12345 はユーザー入力から取得されます。
「ユーザー入力」を明確にするために、次のクラスでは「これ」の入力が必要になります (ただし、それ以外の場合は私の質問とはほとんど関係ありません!)。
public class Input {
public String typeHere(String this){
return "You typed " + this;
}
}
お時間をいただき、ありがとうございました。