
上面是我要洗掉指定行內容的資料庫,我按照網上說的方法為什么沒法洗掉掉庫中指定行的資料啊(我的設計是在視窗中輸入正確用戶名和密碼后點擊注銷洗掉掉該用戶賬號密碼)
下面是我的代碼
try
{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(sql_url, name, password); //連接資料庫
PreparedStatement ps = null;
ResultSet rs = null;
PreparedStatement preparedStatement = null;
int d=0;
DefaultTableModel model = (DefaultTableModel) table.getModel();
for (int i = 0; i < model.getRowCount(); i++)
{
Object value2 = model.getValueAt(i, 0);
System.out.println(value2);
Object value3 = model.getValueAt(i, 1);
System.out.println(value3);
if(textField.getText().equals(value2))
{
if(passwordField.getText().equals(value3))
{
System.out.println(i);
String sql = "DELETE FROM programer WHERE UserName = value2";
//preparedStatement = conn.executeUpdate("delete from programer where i ");
new prompt2();
frame2.removeNotify();
break;
}
else
{
JOptionPane pane = new JOptionPane("密碼錯誤");
JDialog dialog = pane.createDialog("警告");
dialog.show();
}
}
else
{
d++;
}
}
if(d>=model.getRowCount())
{
JOptionPane pane = new JOptionPane("無此用戶");
JDialog dialog = pane.createDialog("警告");
dialog.show();
}
}
catch (ClassNotFoundException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
uj5u.com熱心網友回復:
要學會貼代碼
我都沒看到你的sql執行陳述句,當然沒有刪掉。
uj5u.com熱心網友回復:
額,我是想用java操作不是在sql里操作啊,也要開sql執行陳述句嗎uj5u.com熱心網友回復:
(1)JDBC編程步驟:
第一步:加載資料庫驅動。通常使用Class類的forName()靜態方法來加載驅動:
//加載驅動
Class.forNamed(DriverClass);
其中DriverClass就是資料庫驅動類所對應的字串。例如,加載MySQL的驅動代碼如下
//加載MySQL驅動
Class.forName(“com.mysql.jdbc.Driver”);
第二步:通過DriverManager獲取資料庫連接,DriverManager提供了如下方法:
//獲取資料庫連接
DriverManager.getConnection(String url,String user,String pass);
第三步:通過Connection物件創建Statement物件。Connection創建Statement的方法有三個:
**createStatement() 創建基本的Statement物件
**prepareStatement(String sql) 根據傳入的sql陳述句創建預編譯的Statement物件
**prepareCall(String sql) 根據傳入的sql陳述句創建CallableStatement物件
使用Statement執行SQL陳述句。所有的Statement都有以下三個方法來執行SQL陳述句:
****excute() : 可以執行任何SQL陳述句,但是比較麻煩
****excuteUpdate() 主要用于執行DDL和DML陳述句,執行DML陳述句回傳受SQL陳述句影響的行數,執行DDL陳述句回傳0
****excuteQuary() 只能執行查詢陳述句,執行后回傳代表查詢結果的ResultSet物件。
第五步:操作結果集
如果執行的SQL陳述句是查詢陳述句,則執行結果將回傳一個ResultSet物件,該物件里保存跑SQL陳述句的查詢結果。程式可以通過操作該ResultSet物件來取出查詢結果。ResultSet物件提供了如下兩類方法:
**next() previous() first() last() beforeFirst() afterLast() absolute() 等移動記錄指標的方法
**getXxx()方法獲取記錄指標指向行 特定列的值,該方法既可以使用列索引作為引數,也可以使用列名作為引數。使用列索引做引數的性能更好,使用列名的可讀性更好。
第六步:回收資料庫資源,包括關閉ResuleSet,Statement和Connection等資源。
//使用DriverManager獲取資料庫連接,其中回傳的connection就代表Java金額資料庫的連接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "root");
//使用Connection來創建一個Statement物件
Statement stmt =conn.createStatement();
//執行SQL陳述句
ResultSet rs=stmt.executeQuery("select s. *,teacher_name"+"from student_table s,teacher_table t"
+"where t.teacher_id=s.java_teacher");
{
//ResultSet有一系列的getXxx()方法,用于獲取記錄指標指向特定行、列的值,不斷的用next()方法將指標移動到下一行,如果移動之后記錄指標依然
//指向有效行,則next()方法回傳true
while(rs.next()){
System.out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4));
uj5u.com熱心網友回復:
程式代碼里沒執行stmt.executeUpdate(sql) 。
uj5u.com熱心網友回復:
stmt該怎么定義設定啊uj5u.com熱心網友回復:
上面是我要洗掉指定行內容的資料庫,我按照網上說的方法為什么沒法洗掉掉庫中指定行的資料啊(我的設計是在視窗中輸入正確用戶名和密碼后點擊注銷洗掉掉該用戶賬號密碼)
下面是我的代碼
要學會貼代碼
我都沒看到你的sql執行陳述句,當然沒有刪掉。
uj5u.com熱心網友回復:
stmt該怎么定義設定啊 額,我是想用java操作不是在sql里操作啊,也要開sql執行陳述句嗎
程式代碼里沒執行stmt.executeUpdate(sql) 。
3樓不是告訴你了,從connection創建啊
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/239718.html
標籤:Eclipse
