0
我有以下方法: 化妝連接連接錯誤的JTextField(代碼添加)
try {
kc = ArchiveConnectionHandler.makeMSSQLConnection(
MSSQLDriver,
MSSQLconnString,
guiValues.get(1),
guiValues.get(2),
guiValues.get(3),
guiValues.get(4));
JOptionPane.showMessageDialog(new JFrame("succes");
kc.close();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(new JFrame("error"),
"Error");
}
連接方法
public static java.sql.Connection makeMSSQLArchConnection(String driver, String connectionString, String user, String pass, String ipaddress, String port)
throws ClassNotFoundException, SQLException
{
if(MSArchiveConnection == null)
{
Class.forName(driver);
MSArchiveConnection = DriverManager.getConnection(connectionString + "://" + ipaddress + ":" + port, user, pass);
if(MSArchiveConnection != null)
{
System.out.println("MSArchiveConnection!");
}
}
return MSArchiveConnection;
}
用於發送GUI的方法值
public List<String> getGuiValues(){
List<String> values = new ArrayList<String>();
values.add(btngrp.getSelection().getActionCommand());
values.add(kanaUsernameTf.getText());
values.add(kanaPasswordTf.getText());
values.add(kanaIpAdressTf.getText());
values.add(KanaPortTf.getText());
values.add(archiveUsernameTf.getText());
values.add(archivePasswordTf.getText());
values.add(archiveIpAdressTf.getText());
values.add(archivePortTf.getText());
values.add(archiveDbNameTf.getText());
values.add(btngrp2.getSelection().getActionCommand());
values.add(archiveDateTf.getText());
values.add(sessionAmountTf.getText());
values.add(xmlLocation.getText());
values.add(oldAttachtmentLoc.getText());
values.add(newAttachmentLoc.getText());
return values;
}
我有一個方法在刪除列表中用戶輸入的GUI類中。 此列表用於與MSSQL數據庫建立連接。 該連接使用靜態方法進行。
這是我的問題,當我點擊按鈕的連接不重製。所以當我清空所有的字段並想重新測試連接時,測試仍然是成功的。誰可以給我解釋一下這個。
編輯
package com.kahuna.jkram.userinterface;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import com.kahuna.jkram.utils.ArchiveConnectionHandler;
public class ButtonHandler implements ActionListener {
private ArchiveUserInterface ui;
public ButtonHandler(ArchiveUserInterface ui){
this.ui = ui;
for(JButton button : ui.getButtons())
{
button.addActionListener(this);
}
}
@Override
public void actionPerformed(ActionEvent e) {
String MSSQLDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
List<String> guiValues = ui.getGuiValues();
String MSSQLconnString = "jdbc:sqlserver";
String action = e.getActionCommand();
Connection kc = null;
if(action.equals("kanaTest"))
{
if(guiValues.get(0).equals("MSSQL"))
{
try {
kc = ArchiveConnectionHandler.makeMSSQLConnection(
MSSQLDriver,
MSSQLconnString,
guiValues.get(1),
guiValues.get(2),
guiValues.get(3),
guiValues.get(4));
JOptionPane.showMessageDialog(new JFrame("Database connectie test."),
"De databaseverbinding is succesvol getest.");
kc.close();
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(new JFrame("SQL Fout"),
"Er is een databasefout opgetreden, controleer de verbinding");
}
}
}
else if(action.equals("archiveTest"))
{
try {
Connection ac = ArchiveConnectionHandler.makeMSSQLArchConnection(
MSSQLDriver,
MSSQLconnString,
guiValues.get(5),
guiValues.get(6),
guiValues.get(7),
guiValues.get(8));
JOptionPane.showMessageDialog(new JFrame("Database connectie test."),
"De databaseverbinding is succesvol getest.");
ac.close();
System.out.println(ac.isClosed());
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (SQLException e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(new JFrame("SQL Fout"),
"Er is een databasefout opgetreden, controleer de verbinding");
}
}
else if(action.equals("saveSettings"))
{
System.out.println("Save Settings");
}
}
}
是第一次連接嗎?如果是這樣,你怎麼知道連接沒有重新映射? – Chan
每次我點擊按鈕,我用輸入的值重新測試連接。每次我調用靜態方法進行連接時,該方法都將打印MSArchiveConnection。但是,當我第一次點擊按鈕時,這條消息就會消失。之後,我看不到消息。 – TrashCan
你不保留靜態引用嗎?你能發佈完整的代碼嗎? – Chan