我正在创建一个具有多个输入表单的应用程序,其中大约 22 个。我想创建一个将表单数据保存到数据库中的类。表单只需通过 getter 获取文本字段值并通过调用数据库类构造函数保存值。
The huddle:
数据库类使用准备好的语句。我在传递将值绑定到参数的部分时遇到问题,该部分看起来像:
tmt.setInt(1, 35); // This would set a value such as age
stmt.setInt(2, 'Another value');
任何人都可以对如何解决这个问题有任何想法吗?
构造函数中的变量意味着: String data:各种文本字段值 String table:数据库中将存储值的特定表 String sql:将值绑定到参数的部分(我在上面的“The huddle”中提到过)
这是数据库类:
// STEP 1. Import required packages
import java.sql.*;
import java.util.List;
public class UpdateAndQuerry {
public static String data;
public static String table;
public static String sql;
public UpdateAndQuerry (String data, String table, String sql) {
this.data = data;
this.table = table;
this.sql = sql;
}
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/EMP";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
public static void main (String[] args) {
Connection conn = null;
PreparedStatement stmt = null;
try {
// STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
// STEP 3: Open a connection
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// STEP 4: Execute a query
System.out.println("Creating statement...");
// String sql = "UPDATE Employees set age = ? WHERE id = ?";
stmt = conn.prepareStatement(sql);
// Bind values into the parameters.
stmt.setInt(1, 35); // This would set age
stmt.setInt(2, 102); // This would set ID
// Let us update age of the record with ID = 102;
int rows = stmt.executeUpdate();
System.out.println("Rows impacted : " + rows );
// Let us select all the records and display them.
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
// STEP 5: Extract data from result set
while (rs.next()) {
// Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
// Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
// STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
} // nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
} // end finally try
} // end try
System.out.println("Goodbye!");
} // end main
} // end JDBCExample