MyException - 我的异常网
输入您需解决的 软件开发问题并开始搜索, 我的异常网可以方便地提供各类 程序错误解决方案。
当前位置: 我的异常网 » Eclipse

java 连接数据库,该怎么解决

java 连接数据库
package neuq.zpr;

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.sql.*;


public class MyFrame extends JFrame implements ActionListener {

JTextField textuser;
JTextField textpass;
JLabel labeluser;
JLabel labelpass;
JButton btnSubmit;
void init()
{
labeluser=new JLabel("用户");
labelpass=new JLabel("密码");
textuser=new JTextField("",20);
textpass=new JTextField("",20);
btnSubmit=new JButton("确定");
add(labeluser);
add(textuser);
add(labelpass);
add(textpass);
add(btnSubmit);
btnSubmit.addActionListener(this);
}
public MyFrame()
{
init();
this.setLayout(new FlowLayout());
this.setBounds(100,100,190,150);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}



@Override
public void actionPerformed(ActionEvent e) {
String s1=textuser.getText();
String s2=textpass.getText();
Connection con;
java.sql.Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException s){
System.out.print(s);
}
try{
con=DriverManager.getConnection("jdbc:odbc:aaa","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM ll WHERE username='"+s1+"' AND password='"+s2+"'");

if(rs.next())
{
JOptionPane.showMessageDialog(this,"欢迎","正确",JOptionPane.INFORMATION_MESSAGE);

}
else
{
JOptionPane.showMessageDialog(this,"对不起","警告对话框",JOptionPane.WARNING_MESSAGE);

}
con.close();

}
catch(SQLException e1)
{
System.out.println(e1);
}
// TODO Auto-generated method stub

}

}
创建主类运行后是一下提示求各位大牛帮助解决

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。

------解决方案--------------------------------------------------------
我这里已经调试可以跑成功了,我的数据库文件是E:/books.accdb你调整为自己的
还有运行这个可能需要装一个Access的OLE和JDBC驱动,我安装了AccessDatabaseEngine2010
如果运行不起来,可以加我QQ 519582737帮你解决
对应的数据表我建立的是users表,跟你原来的程序不同
Java code


import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.util.Properties;


public class MyFrame extends JFrame implements ActionListener {

    JTextField textuser;
    JTextField textpass;
    JLabel labeluser;
    JLabel labelpass;
    JButton btnSubmit;
    void init()
    {
        labeluser=new JLabel("用户");
        labelpass=new JLabel("密码");
        textuser=new JTextField("",20);
        textpass=new JTextField("",20);
        btnSubmit=new JButton("确定");
        add(labeluser);
        add(textuser);
        add(labelpass);
        add(textpass);
        add(btnSubmit);
        btnSubmit.addActionListener(this);
    }
    public MyFrame()
    {
        init();
        this.setLayout(new FlowLayout());
//        this.setBounds(100,100,190,150);
        this.pack();
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }



    @Override
    public void actionPerformed(ActionEvent e) {
        String s1=textuser.getText();
        String s2=textpass.getText();
        String url="jdbc:odbc:DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=E:/books.accdb;";
        Connection con;
        java.sql.Statement sql;
        ResultSet rs=null;
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        }
        catch(ClassNotFoundException ee){
            ee.printStackTrace();
        }
        try{
            Properties p=new Properties();
            p.put("charSet", "GBK");
            con=DriverManager.getConnection(url,p);
            sql=con.createStatement();
            String query="SELECT * FROM users WHERE username='"+s1+"' AND password='"+s2+"'";
            System.out.println("query:"+query);
            rs=sql.executeQuery(query);
            int i=0;
            while(rs.next()){
               System.out.println(rs.getInt("id"));
                i++;
            }
            if(i>=1){
                JOptionPane.showMessageDialog(this,"欢迎","正确",JOptionPane.INFORMATION_MESSAGE);

            }else{
                JOptionPane.showMessageDialog(this,"对不起","警告对话框",JOptionPane.WARNING_MESSAGE);

            }
            con.close();

        }
        catch(SQLException e1){
            e1.printStackTrace();
        }
// TODO Auto-generated method stub

    }

    public static void main(String[] args) {
        new MyFrame();
    }

}
				
软件开发 程序错误 异常 Exception Copyright © 2009-2012 MyException 版权所有