- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Netbeans 和 SQLite 作为我的 DBMS。奇怪的是,我可以向数据库添加一条记录,删除一条记录,并显示所有记录,但是,当我尝试更新一条记录时,什么也没有发生,甚至没有错误。有谁知道出什么问题了吗?
import java.sql.*;
import java.util.Scanner;
public class Example
{
public static void main(String[] args)
{
try
{
Class.forName( "org.sqlite.JDBC" );
} catch ( Exception e )
{
System.out.println( e );
}
Connection c = null;
try
{
c = DriverManager.getConnection( "jdbc:sqlite:Example.db" );
}
catch ( SQLException s )
{
System.out.println( s );
}
String sql = "INSERT INTO Classmates VALUES (?,?,?,?,?)";
String deleteSQL = "DELETE FROM Classmates WHERE cid = ?";
String updateSQL = "UPDATE Classmates SET firstname=?,lastname=?,age=?,gpa=? WHERE cid =?";
String showSQL = "SELECT * FROM Classmates";
int cid;
String firstname;
String lastname;
double age;
double gpa;
char selection;
boolean valid
Scanner in = new Scanner( System.in );
PreparedStatement p = null;
ResultSet r = null;
do
{
System.out.print("A -Add Classmate\n");
System.out.print("R - Remove Classmate\n");
System.out.print("S - Show all Classmates\n");
System.out.print("U - Update a Classmate\n");
System.out.print("Q - Quit\n");
selection = in.next().charAt(0);
switch(selection)
{
case 'a':
case 'A':
case 'r':
case 'R':
case 's':
case 'S':
case 'u':
case 'U':
case 'q':
case 'Q': valid = true;
break;
default: valid = false;
}
switch(selection)
{
case 'a':
case 'A':
System.out.print("Enter cid: ");
cid = in.nextInt();
in.skip("\n");
System.out.print("Enter first name: ");
firstname = in.nextLine();
System.out.print("Enter last name: ");
lastname = in.nextLine();
System.out.print("Enter age: ");
age = in.nextDouble();
System.out.print("Enter the gpa: ");
gpa = in.nextDouble();
try
{
p = c.prepareStatement( sql );
p.clearParameters();
p.setInt( 1, cid );
p.setString( 2, firstname );
p.setString(3, lastname);
p.setDouble(4, age);
p.setDouble(5, gpa);
p.executeUpdate();
}
catch ( SQLException s )
{
System.out.println( s );
}
break;
case 'r':
case 'R':
System.out.print("Enter cid: ");
cid = in.nextInt();
try
{
p = c.prepareStatement( deleteSQL );
p.setInt( 1, sid );
// execute SQL delete
p.executeUpdate();
}
catch ( SQLException s )
{
System.out.println( s );
}
break;
case 's':
case 'S':
try
{
p = c.prepareStatement( showSQL );
p.clearParameters();
r = p.executeQuery();
while( r.next() )
{
System.out.println( "CID: " + r.getInt( 1 ) + ", First Name: "
+ r.getString( 2 ) + ", Last Name: " + r.getString( 3 )
+ ", Age: " + r.getDouble( 4) + ", GPA: " + r.getDouble(5) );
}
}
catch ( SQLException s )
{
System.out.println( "Exception 4: " + s );
}
break;
case 'u':
case 'U':
System.out.print("Enter cid: ");
cid = in.nextInt();
in.skip("\n");
System.out.print("Update first name: ");
firstname = in.nextLine();
System.out.print("Update last name: ");
lastname = in.nextLine();
System.out.print("Update age of student: ");
age = in.nextDouble();
System.out.print("Update GPA of student: ");
gpa = in.nextDouble();
try
{
p = c.prepareStatement( updateSQL );
p.clearParameters();
p.setInt( 1, cid );
p.setString( 2, firstname );
p.setString(3, lastname);
p.setDouble(4, age);
p.setDouble(5, gpa);
p.executeUpdate();
}
catch ( SQLException e )
{
System.out.println( e.getMessage() );
}
break;
case 'q':
case 'Q':
try
{
r.close();
c.close();
}
catch( SQLException s )
{
System.out.println( "Exception 5: " + s );
}
break;
default:
System.out.println("Wrong Selection");
}
}while (selection != 'q' || selection != 'Q');
}
}
最佳答案
您的更新代码有 p.setInt( 1, cid );
但 cid 字段列在语句的最后: String updateSQL = "UPDATE Classmates SET fname=?,lname= ?,age=?,gpa=?WHERE sid =?";
关于java - JDBC 更新未显示错误但不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834151/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!