本篇博客运用到:
java连接mysql数据库连接(数据搜索)
下面是登录系统的完整代码
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class login extends JFrame implements ActionListener{
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/message";
static final String USER = "root";
static final String PASS = "123456";
JButton jb1=new JButton("登录");
JButton jb2=new JButton("注册");
JLabel jl1=new JLabel("账号:");
JLabel jl2=new JLabel("密码:");
JTextField jt1=new JTextField();
JTextField jt2=new JTextField();
public login() {
//设置各个组件的位置和大小
//括号内分别为x坐标,y坐标,宽,高
jt1.setBounds(90, 48, 180, 25);
jt2.setBounds(90, 98, 180, 25);
jl1.setBounds(44, 42, 70, 35);
jl2.setBounds(44, 92, 70, 35);
jb1.setBounds(60, 150, 70, 35);
jb2.setBounds(190, 150, 70, 35);
//添加组件
this.add(jb1);this.add(jl1);this.add(jl2);
this.add(jt1);this.add(jt2);this.add(jb2);
//添加监听器
jb1.addActionListener(this);
jb2.addActionListener(this);
//设置窗口属性
this.setTitle("login");
this.setSize(350,250);
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setLayout(null);
this.setResizable(false);
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new login();
}
@Override
public void actionPerformed(ActionEvent e1) {
// TODO Auto-generated method stub
if(e1.getSource()==jb1) {//点击jb1
if(jt1.getText().equals("")||jt2.getText().equals("")) {//内容为空时
JOptionPane.showMessageDialog(null, "账号或密码不能为空", "警告",JOptionPane.ERROR_MESSAGE);
}
else {//搜索数据库
Connection conn = null;
Statement stmt = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL,USER,PASS);
stmt = conn.createStatement();
String sql;
sql = "SELECT * FROM login";
ResultSet rs = stmt.executeQuery(sql);
int pd=0;
while(rs.next()){
// 通过字段检索
String id = rs.getString("id");
String password = rs.getString("password");
if(id.equals(jt1.getText())&&password.equals(jt2.getText())) {
JOptionPane.showMessageDialog(null, "账号密码正确,登陆成功!", "提示",JOptionPane.INFORMATION_MESSAGE );
pd=1;//账号密码匹配成功
break;
}
}
if(pd==0) {//账号密码匹配失败
JOptionPane.showMessageDialog(null, "账号或密码错误", "警告",JOptionPane.ERROR_MESSAGE);}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
}
}
else { /*new zhuce();dispose();*/}
//注册页面的内容在下一篇博客,这段代码没有,所以注释了
//后面会有整个完整代码
}
}
代码运行截图:
运行的界面:
账号或密码为空时,登陆失败:
密码错误时,登陆失败:
密码正确时,登陆成功: