【发布时间】:2014-01-30 13:05:31
【问题描述】:
第一,我是 Java 新手。我学到的一切都归功于 Netbeans 和 Internet。 我在用 NetBeans IDE 7.0.1 jdk1.7.0_25 Java_ME_platform_SDK_3.2
项目 1st- InsrtDB
package insrtdb;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class InsrtDB {
private static Statement stmt = null;
private static Connection con = null;
public static String mt="0:00:00";
public static String sms="Test InsrtDB";
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws ClassNotFoundException, SQLException, Exception {
// TODO code application logic here
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:MADb");
System.out.println("Connected!");
stmt = con.createStatement();
int rowsEffected = 0;
// Example INSERT new record
rowsEffected = updateData("INSERT INTO Reqst (myTime,SMS) VALUES (' "+mt+" ',' "+sms+" ')");
System.out.print("Inserted a Row : ");
con.close();
}
public static int updateData(String SQL) throws Exception {
return stmt.executeUpdate(SQL);
}
}
输出-InsrtDB(运行) 跑: 连接的! 插入一行:构建成功(总时间:27 秒)
Project 2nd-SndRecvSMS(MIDlet 应用)
private class SmsReceiverThread extends Thread {
public void run() {
try {
// Receive Message
TextMessage txtMsg = (TextMessage) receiveCon.receive();
// Get the receiving SMS phone number
String senderTpNo = txtMsg.getAddress();
// Get the receiving SMS message
String senderMsg = txtMsg.getPayloadText();
// Create a TextBox and direct the incomming message to that
switchDisplayable(null, getTxtBox());
smt = senderMsg.substring(10);
msgSnt = senderMsg.substring(0, 10);
stringItem.setText(smt);
stringItem1.setText(msgSnt);
}
catch (IOException ex) {
}
}
}
我第一次在 JavaMEPhone1 上运行了这个 midlet,然后在 JavaMEPhone2 上运行,我可以成功发送和接收短信。 现在,当在第二个应用程序中,我在资源中添加第一个应用程序作为添加项目 & Clean & Build 我得到 输出:- 构建成功(总时间:8 秒)
现在当我添加代码时以粗体突出显示
private class SmsReceiverThread extends Thread {
public void run() {
try {
// Receive Message
TextMessage txtMsg = (TextMessage) receiveCon.receive();
// Get the receiving SMS phone number
String senderTpNo = txtMsg.getAddress();
// Get the receiving SMS message
String senderMsg = txtMsg.getPayloadText();
// Create a TextBox and direct the incomming message to that
switchDisplayable(null, getTxtBox());
smt = senderMsg.substring(10);
msgSnt = senderMsg.substring(0, 10);
stringItem.setText(smt);
stringItem1.setText(msgSnt);
} catch (IOException ex) {
}
insrtdb.InsrtDB.mt=smt;
System.out.println("New value of mt = " +insrtdb.InsrtDB.mt);
insrtdb.InsrtDB.sms=msgSnt;
System.out.println("New value 0f sms = " +insrtdb.InsrtDB.sms);
try {
insrtdb.InsrtDB.class.getClass().newInstance();
} catch (IllegalAccessException ex) {
} catch (InstantiationException ex) {
}
}
}
清理并构建并运行。
输出:- 对于 JavaMEPhone1
跑步
123456790
012345678917:12:50
跑:
构建成功(总时间:8 分 14 秒)
输出:- 对于 JavaMEPhone2
收到消息
mt 的新值 = 17:12:50
新值 0f 短信 = 0123456789
运行无构建:
构建成功(总时间:2 分 34 秒)
但已连接!
Inserted a Row 行丢失且未插入数据库行。
我错过了什么?
【问题讨论】:
标签: java sql multithreading netbeans database-connection