嗨,我想知道你是否可以帮助我。我有一个登录表单或框架,而不是我的应用程序。它有用户名和密码文本字段,我的应用程序连接到访问数据库。我希望用户在可以在应用程序上执行其他操作之前登录。在visual basic中是一块蛋糕,但java是一块摇滚,这是我的代码
import java.sql.*;
public class Login1 extends JavaApplication1
{
private static Connection conn;
static Statement state;
public static void login()
{
String url = "jdbc:odbc:Java_Testing";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url);
System.out.println("The driver was loaded successfully");
}
catch(ClassNotFoundException error)
{
System.out.println("Unable to load the driver" + error);
}
catch(SQLException error)
{
System.out.println("Could not connect to the database" + error);
}
try
{
String query1 = "SELECT Username , User_Password From Users Where Username = ('"+ JavaApplication1.txtUsername.getText() + "' AND User_Password ='" + JavaApplication1.txtPassword.getText() + "')";
state = conn.createStatement();
ResultSet results = state.executeQuery(query1);
System.out.println("Congradulations you have succefully loged in");
}
catch(Exception error)
{
System.out.print("Enable to login the user: " + error);
}
}
}
JavaApplication1
只是另一个正在处理所有事件并具有awt控件的类。
当我运行此代码时,这是我得到的错误
Unenable to to login the user: java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
如果您有安装请分享并再次查看第二个试块,我知道这就是问题所在。
提前致谢。
答案 0 :(得分:1)
您忘记在URl
中提供数据库登录凭据 String url = "jdbc:odbc:Java_Testing;user=dbusername;password=passwordfordb";
答案 1 :(得分:1)
您的SQL不正确。你的括号位置错误。
SELECT Username , User_Password From Users
Where Username = ('txtUsername' AND User_Password ='txtPassword')
由于您似乎不需要它们,我会从SQL中删除括号。
答案 2 :(得分:0)
查看您的错误我可以说存在数据类型不匹配,这意味着您传递的值的数据类型与您在数据库中声明的数据类型不匹配。因此,只需在数据库中检查数据类型。