本人今天小遇JavaBean,苦恼于其中的数据库连接。
本人于本机SQL server 2000中建立了一个名为J2EE的数据库,名且在其中建了一个表 JavaBean,表里面只有一个属性pinNo,下面程序用以查询这个数据库里边是否存在某个pinNo值,1433端口已经打开。
代码如下 : import javax.swing.*;import java.awt.*;
import java.awt.event.*;
import java.sql.*;
/**
* @author Administrator
* 功能说明 :一个登陆界面,用户输入一个pinNo,如果数据库中有此记录,则显示正常登陆的消息,否则也显示相关信息
*
*/
public class LoginBean extends JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
JLabel logoLabel;
JLabel pinNoLabel;
JTextField pinNoText;
BorderLayout b1;
private String logo = "<Bank> + <Logo>";
public String getLogo(){
return logo;
}
public void setLogo(String text){
logo = text;
logoLabel.setText(logo); // ???
}
public LoginBean(){
super();
logoLabel = new JLabel(logo);
Font font =new Font("Times New Roman",Font.BOLD,30);
logoLabel.setFont(font);
logoLabel.setForeground(Color.DARK_GRAY);
pinNoLabel = new JLabel("Enter Pin Number : ");
pinNoText = new JTextField(6);
b1 = new BorderLayout();
setLayout(b1);
add("North",logoLabel);
add("West",pinNoLabel);
add("East",pinNoText);
}
public void validatePinNo(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ?
Connection conn = DriverManager.getConnection("jdbc:odbc:J2EE","user1",""); // ?
PreparedStatement state = conn.prepareStatement("select * from Login where cPin no = ?");
state.setString(1, pinNoText.getText());
ResultSet result = state.executeQuery();
if(!result.next()){
JOptionPane.showMessageDialog(this, "Invalited Pin Number", "Error Message", JOptionPane.ERROR_MESSAGE);
}
else{
JOptionPane.showMessageDialog(this, "Valid Pin Number", "Welcone Message", JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception e){
System.out.println("不能执行查询 : "+e);
}
}}
检测Bean的程序 :
public class TestLoginBean { /**
* @param args
*/
public static void main(String[] args) {
LoginBean obj = new LoginBean();
obj.validatePinNo();
}}运行显示 :不能执行查询 : java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序所以,问题求解~~呵呵~~
本人于本机SQL server 2000中建立了一个名为J2EE的数据库,名且在其中建了一个表 JavaBean,表里面只有一个属性pinNo,下面程序用以查询这个数据库里边是否存在某个pinNo值,1433端口已经打开。
代码如下 : import javax.swing.*;import java.awt.*;
import java.awt.event.*;
import java.sql.*;
/**
* @author Administrator
* 功能说明 :一个登陆界面,用户输入一个pinNo,如果数据库中有此记录,则显示正常登陆的消息,否则也显示相关信息
*
*/
public class LoginBean extends JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
JLabel logoLabel;
JLabel pinNoLabel;
JTextField pinNoText;
BorderLayout b1;
private String logo = "<Bank> + <Logo>";
public String getLogo(){
return logo;
}
public void setLogo(String text){
logo = text;
logoLabel.setText(logo); // ???
}
public LoginBean(){
super();
logoLabel = new JLabel(logo);
Font font =new Font("Times New Roman",Font.BOLD,30);
logoLabel.setFont(font);
logoLabel.setForeground(Color.DARK_GRAY);
pinNoLabel = new JLabel("Enter Pin Number : ");
pinNoText = new JTextField(6);
b1 = new BorderLayout();
setLayout(b1);
add("North",logoLabel);
add("West",pinNoLabel);
add("East",pinNoText);
}
public void validatePinNo(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // ?
Connection conn = DriverManager.getConnection("jdbc:odbc:J2EE","user1",""); // ?
PreparedStatement state = conn.prepareStatement("select * from Login where cPin no = ?");
state.setString(1, pinNoText.getText());
ResultSet result = state.executeQuery();
if(!result.next()){
JOptionPane.showMessageDialog(this, "Invalited Pin Number", "Error Message", JOptionPane.ERROR_MESSAGE);
}
else{
JOptionPane.showMessageDialog(this, "Valid Pin Number", "Welcone Message", JOptionPane.INFORMATION_MESSAGE);
}
}catch(Exception e){
System.out.println("不能执行查询 : "+e);
}
}}
检测Bean的程序 :
public class TestLoginBean { /**
* @param args
*/
public static void main(String[] args) {
LoginBean obj = new LoginBean();
obj.validatePinNo();
}}运行显示 :不能执行查询 : java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序所以,问题求解~~呵呵~~
检查清楚再说吧。
Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver ");
String url= "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JavaBean ";
Connection con=DriverManager.getConnection(url, "sa ", "sa");
有三个驱动包不知道你导入了没