我使用java.swing
获取此登录表单,现在我想将我的登录名连接到一个表,即用户详细信息(用户名和密码)都应存储在本地数据库中以进行登录。我尝试创建一个具有访问权限然后连接它的表但我错过了“系统DNS”驱动程序。
我没有任何实际的数据库连接代码,因为我觉得最好最简单的方法来做这个,因为我真的很困惑,当我尝试时不起作用。
最后,我的问题是:是否可以在eclipse中创建数据库(如在visual studio中)?什么是正确和简单的方法?创建一个不同的类而不是在登录页面代码中填写它会更好吗?如果是,您如何实际连接两个页面?
public class Loginpage
{
private JFrame frmGooglePlusExtractor;
private JTextField usernametxt;
private JPasswordField passwordField;
/**
* Launches the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Loginpage window = new Loginpage();
window.frmGooglePlusExtractor.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Loginpage() {
initialize();
}
/**
* Initialise the contents of the frame.
*/
private void initialize() {
frmGooglePlusExtractor = new JFrame();
frmGooglePlusExtractor.setResizable(false);
frmGooglePlusExtractor.setTitle("Google Plus Extractor");
frmGooglePlusExtractor.setBounds(100, 100, 326, 200);
frmGooglePlusExtractor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmGooglePlusExtractor.getContentPane().setLayout(new GridLayout(1, 0, 0, 0));
JPanel panel = new JPanel();
panel.setBackground(Color.LIGHT_GRAY);
frmGooglePlusExtractor.getContentPane().add(panel);
usernametxt = new JTextField();
usernametxt.setColumns(10);
JLabel lblUsername = new JLabel("Username");
lblUsername.setForeground(Color.BLACK);
JLabel lblPassword = new JLabel("Password");
lblPassword.setForeground(Color.BLACK);
lblPassword.setBackground(Color.WHITE);
JButton btnLogIn = new JButton("Log In");
btnLogIn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
loginmsg dlg = new loginmsg();
dlg.setVisible(true);
frmGooglePlusExtractor.setVisible(false);
}
});
btnLogIn.setForeground(Color.BLACK);
final JButton btnCancel = new JButton("Quit");
btnCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if (e.getActionCommand().equals(btnCancel));
{
JOptionPane.showMessageDialog(null,"Are you sure you want to leave?");
frmGooglePlusExtractor.dispose();
}
}
});
btnCancel.setForeground(Color.BLACK);
passwordField = new JPasswordField();
btnNewButton.setForeground(Color.BLACK);
}
}
但是,我之前尝试过以下操作,但无法使其正常工作。
public static void main(String[] args) {
Connection cnctn;
try{
// load jdbc driver
String driver = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driver);
//create connection
String server = "localhost";
String port = "55555";
String database = server + port;
String url = "jdbc:JSQLConnect://" + database;
String username = "username";
String password = "password";
try {
cnctn = DriverManager.getConnection(url, username, password);
System.out.println("connected");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("could not connect");
}
}
catch (ClassNotFoundException e)
{
System.out.println("could not find db");
}
}
答案 0 :(得分:0)
大多数url(或所有url)都使用冒号来以这种方式分配服务器和端口号:server:port
。
数据库应该是一个实际的数据库名称(您的服务器上有)。因此,在大多数情况下,网址应如下所示:
String url="jdbc:JSQLConnect://"+server+":"+port+"/"+databaseName;
只是为了记录最后一个catch子句及其异常通知它无法找到驱动程序,而不是数据库。