这是我正在进行的sql查询:
stmt = conn.createStatement();
String sql="INSERT INTO registration(phone,name,address,city,destination,date) VALUE ("+phone[i]+",'"+name[i]+"','"+address[i]+"','"+city[i]+"','"+destination[i]+"','"+date[i]+"')";
这是程序的相关部分,我在这里对上下文进行sql查询。这个问题似乎是正确的。程序没有抛出任何错误,但是数据没有被插入mysql表
case 1: {
System.out.println("Enter your Phone number:");
phone[i] = sc.nextInt();
sc.nextLine();
System.out.println("Enter your name:");
name[i] = sc.nextLine();
System.out.println("Enter your address:");
address[i] = sc.nextLine();
System.out.println("Enter your Pick up city:");
city[i] = sc.nextLine();
System.out.println("Enter your Destination:");
destination[i] = sc.nextLine();
System.out.println("Enter your Date:");
date[i] = sc.nextLine();
++i;
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to a selected database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected database successfully...");
//STEP 4: Execute a query
System.out.println("Inserting records into the table...");
stmt = conn.createStatement();
String sql="INSERT INTO registration(phone,name,address,city,destination,date) VALUE ("+phone[i]+",'"+name[i]+"','"+address[i]+"','"+city[i]+"','"+destination[i]+"','"+date[i]+"')";
}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)
conn.close();
}catch(SQLException se){
}// do nothing
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
break;
}
程序没有抛出任何错误,但mysql显示没有插入新条目。为什么会这样?
3条答案
按热度按时间k2arahey1#
您只是在这里创建语句,那里的查询将不会运行。我已经添加了一个代码行运行sql查询后,下面的行,请看下面的代码。我还看到您编写的sql查询有一个小错误。请把它正确(我做了下面的代码)。否则,它将在运行代码后引发异常。
uqcuzwp82#
据我所知你在构造弦
sql
但你不能在任何地方使用它。以下代码用于执行查询:
stmt.executeUpdate(sql);
有关这方面的详细信息,请参阅oracle-processing sql语句。与您的问题无关,但准备好的语句也是您可能需要研究的内容,因为您通常会将用户输入直接插入数据库。用户的输入也可能是恶意的,这里有更多的解释-sql注入
l7mqbcuq3#
你的
INSERT
语句应如下所示:你应该打电话:
stmt.executeUpdate(sql);
不是executeQuery()
因为后者用于返回行而不是插入行