java连接数据库怎么验证用户名和密码
我用myEclipse和sql server 2008做的学生成绩管理系统,其中的登陆界面需要连接到数据库验证用户名和密码但我不知道怎么写代码,希望各位大侠帮帮忙!!!前部分代码如下:
private String items[] = { "学生","教师","管理员" };
public LoginPane(){
super( "登录" ); //设置标题为登录
try{
Class.forName( "com.microsoft.sqlserver.jdbc.SQLServerDriver" ); //加载驱动程序
System.out.println( "Success loading MS SQl Server Driver" ); //显示加载成功信息
}
catch( ClassNotFoundException classNotFound ) //捕捉异常
{
JOptionPane.showMessageDialog( null,classNotFound.getMessage(),"Driver Not Found",JOptionPane.ERROR_MESSAGE ); //捕捉到异常后,显示究竟是何种异常
}
try{ //进行数据库连接
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=ScoreMSystem";
String login = "sa"; //用户名
String password = "123456"; //登录密码
conn = DriverManager.getConnection( url,login,password );
System.out.println( "Success connect the database" );
}
catch( SQLException sqlException ){ //捕捉异常,若连接失败则显示错误信息
sqlException.printStackTrace();
JOptionPane.showMessageDialog( null,sqlException.getMessage(),"Database Error",JOptionPane.ERROR_MESSAGE );
}
Container con = getContentPane(); //为登录界面加载容器,用于存放加进界面里控件
//为p1面板设置背景图片
p1 = new JPanel()
{
protected void paintComponent( Graphics g ){
g.drawImage( icon.getImage(),0,0,null ); //使用图像的原始物理大小绘制指定的图像
super.paintComponent( g );
}
};
p1.setLayout( new FlowLayout() ); //p1面板的布局管理器设置为流布局管理器
Box box1 = Box.createHorizontalBox(); //创建三个横向装放控件的箱容器
Box box2 = Box.createHorizontalBox();
Box box3 = Box.createHorizontalBox();
Box box4 = Box.createHorizontalBox();
num = new JLabel( "账号" ); //创建标签实例,并设置文本为账号
jt = new JTextField( 12 ); //创建文本域实例,用户于此输入账号
//将标签与文本域加入箱容器中
box1.add( num );
box1.add( jt );
//创建密码标签和输入密码的文本域,该文本域对用户隐藏,然后将两个控件加入箱容器
pwd = new JLabel( "密码" );
jp = new JPasswordField( 12 );
box2.add( pwd );
box2.add( jp );
//创建下拉选择框,并且将字符数组加入其中,设置选择框最大行数为3
model = new JLabel( "模式" );
jc = new JComboBox( items );
jc.setMaximumRowCount( 3 ); //设置JComboBox能显示的列表项的最大数目为3
//创建登录按钮并为按钮注册监听事件,当点击按钮时执行actionPerforme方法,实现密码验证并打开指定类型界面
b1 = new JButton( "登录" );
b1.addActionListener(
new ActionListener(){
public void actionPerformed( ActionEvent e ){
String s1 = jt.getText(), s2 = jp.getText(); //获取账号和密码
int i = jc.getSelectedIndex(); //获取下拉框索引号,i=0 代表学生登陆,i=1 代表教师登陆,i=2 代表管理员登陆
if(s1.equals( "" )|s2.equals( "" ) ){ //账号或密码为空则显示提示信息
JOptionPane.showMessageDialog( null,"账号或密码不能为空","提示信息",JOptionPane.PLAIN_MESSAGE );
return;
}
接下来我就不会写了,因为数据库中有三张表,分别为Students、Teachers、Administrators,每张表都有两个属性,即 username、pwd 两个属性,现在需要根据 i 的不同值连接到数据库不同的表中验证 用户名、密码,当 i = 0 时到Students表中验证,并且,如果验证成功则跳转到学生面板StudentPane,当 i = 1 时到 Teachers表中验证,并且,若成功则跳转到教师面板TeacherPane,当 i = 2 时到Administrators表中验证,并且,若成功则跳转到管理员面板AdministratorPane
我想了一天都没有想出来,头都快想爆了,希望高手们能给个源代码,再三谢谢!!!