java做一个数据库网站,用javaSwing和mysql数据库做的一个登录页面

用javaSwing和mysql数据库做的一个登录页面

用javaSwing和mysql数据库做的一个登录页面

一:首先在eclipse中新建一个java工程

二:然后新建一个包,并且在包中新建两个类:一个事登录用的界面(Login)类,一个事连接数据库的(jdbc)类我建立的是p4这个包

三:导入包mysql-connector-java-5.1.41-bin.jar并且要添加到构建路径不添加到构建路径项目工程不会读出来的

四:编写那个界面Login类

那个界面类的源代码如下:

package p4;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

public class Login extends JFrame implements ActionListener {

private JPanel pan = new JPanel();

private JLabel namelab = new JLabel("用户名");

private JLabel passlab = new JLabel("密 码");

private JTextField nametext = new JTextField();

private JPasswordField passtext = new JPasswordField();

public JButton denglu = new JButton("登录");

public JButton zhuce = new JButton("注册");

public JButton updatepass = new JButton("修改密码");

public JButton deleteuser = new JButton("删除用户");

public Login(){

Font font = new Font("宋体",Font.BOLD,12);

super.setTitle("欢迎登录本系统");

pan.setLayout(null);

namelab.setBounds(20,20,60,30);

nametext.setBounds(90,20,140,30);

passlab.setBounds(20,60,60,30);

passtext.setBounds(90,60,140,30);

denglu.setBounds(30,120,90,20);

zhuce.setBounds(140,120,90,20);

updatepass.setBounds(30,150,90,20);

deleteuser.setBounds(140,150,90,20);

pan.add(namelab);

pan.add(nametext);

pan.add(passlab);

pan.add(passtext);

pan.add(denglu);

pan.add(zhuce);

pan.add(updatepass);

pan.add(deleteuser);

passtext.setFont(font);

zhuce.setFont(font);

updatepass.setFont(font);

deleteuser.setFont(font);

denglu.addActionListener(this);

zhuce.addActionListener(this);

updatepass.addActionListener(this);

deleteuser.addActionListener(this);

super.add(pan);

super.setSize(300,250);

super.setVisible(true);

}

public static void main(String []args){

new Login();

}

@Override

public void actionPerformed(ActionEvent arg0) {

if(arg0.getSource()==denglu){

denglu();

}else if (arg0.getSource()==zhuce){

zhuce();

}else if (arg0.getSource()==updatepass){

updatepass();

}else if (arg0.getSource()==deleteuser){

deleteuser();

}

}

//登录按钮的事件处理函数

public void denglu(){

Jdbcs d =new Jdbcs();

String username = nametext.getText();

String password = passtext.getText();

if(d.compare(username, password)){

aJOptionPane.showMessageDialog(null,"登录成功!");

super.setVisible(false);

}

}

//注册按钮触发后的事件处理函数

public void zhuce(){

Jdbcs d =new Jdbcs();

String username = nametext.getText();

String password = passtext.getText();

d.insert(username,password);

}

//修改密码按钮触发后的事件处理函数

public void updatepass(){

pan.setEnabled(false);

JFrame frame1 = new JFrame("密码修改");

frame1.setSize(250, 200);

JPanel updatepass = new JPanel();

JLabel namelab1 = new JLabel("用户名");

JLabel passlab1 = new JLabel("旧密码");

JLabel newpasslab = new JLabel("新密码");

JTextField nametext1 = new JTextField(""+nametext.getText());

JPasswordField passtext1 = new JPasswordField();

JPasswordField newpasstext = new JPasswordField();

JButton ok = new JButton("修改");

JButton resert = new JButton("重置");

updatepass.setLayout(null);

namelab1.setBounds(5,5,70,20);

nametext1.setBounds(80,5,120,20);

passlab1.setBounds(5,30,70,20);

passtext1.setBounds(80,30,120,20);

newpasslab.setBounds(5,60,70,20);

newpasstext.setBounds(80,60,120,20);

ok.setBounds(10,110,60,20);

resert.setBounds(90,110,60,20);

updatepass.add(namelab1);

updatepass.add(nametext1);

updatepass.add(passlab1);

updatepass.add(passtext1);

updatepass.add(newpasslab);

updatepass.add(newpasstext);

updatepass.add(ok);

updatepass.add(resert);

frame1.add(updatepass);

frame1.setVisible(true);

ok.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

Jdbcs d =new Jdbcs();

String username = nametext1.getText();

String password1 = passtext1.getText();

String newpassword = newpasstext.getText();

if(d.update(username,password1,newpassword)){

frame1.setVisible(false);

}

}

});

//重置文本框 里的内容

resert.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

nametext1.setText("");

passtext1.setText("");

newpasstext.setText("");

}

});

}

//删除用户按钮触发后的事件处理函数

public void deleteuser(){

String username = nametext.getText();

String password = passtext.getText();

Jdbcs s = new Jdbcs();

s.delete(username,password);

}

}

五:写连接数据库的代码以及用到的操作的源代码

jdbc这个类的源代码如下:

package p4;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.swing.JOptionPane;

public class Jdbc {

Connection con = null;

Statement statement = null;

ResultSet res = null;

String driver = "com.mysql.jdbc.Driver";

String url = "jdbc:mysql://localhost:3306/user";

String name = "root";

String passwd = "123456";

public Jdbc(){

try{

Class.forName(driver).newInstance();

con = DriverManager.getConnection(url,name,passwd);

statement = con.createStatement();

}catch(ClassNotFoundException e){

System.out.println("对不起,找不到这个Driver");

e.printStackTrace();

}catch(SQLException e){

e.printStackTrace();

}catch(Exception e){

e.printStackTrace();

}

}

//对用户信息的修改实际上就是对密码的修改

public boolean update(String username1,String password1,String newpassword){

boolean judge = false;

boolean s =compare(username1,password1);

if(s){

String sql = "update user set password=\""+newpassword+"\"where username=\""+username1+"\"";

try {

int a = statement.executeUpdate(sql);

if(a==1){

JOptionPane.showMessageDialog(null,"密码修改成功!");

judge = true;

}

con.close();

statement.close();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null, "用户不存在!");

e.printStackTrace();

}

}

else{

JOptionPane.showMessageDialog(null, "修改失败");

}

return judge;

}

//删除用户信息

public void delete(String username,String password){

if(compare(username,password)){

JOptionPane.showMessageDialog(null,"已经完成删除");

}else{

return;

}

String sql = "delete from user where username=\""+username+"\"";

try{

int a = statement.executeUpdate(sql);

con.close();

statement.close();

}catch(SQLException e){

JOptionPane.showMessageDialog(null,"不存在该用户!");

e.printStackTrace();

}

}

//用户注册功能的实现,添加数据

public void insert(String username,String password){

String sql = "insert into user(username,password) values(\""+username+"\",\""+password+"\")";

try{

int a = statement.executeUpdate(sql);

con.close();

statement.close();

if(a==1){

JOptionPane.showMessageDialog(null,"注册成功!");

}

}catch(SQLException e){

JOptionPane.showMessageDialog(null, "对不起该用户名已经有了!");

e.printStackTrace();

}

}

//对比用户名和密码是不匹配

public boolean compare(String username,String password){

boolean m = false;

String sql = "select password from user where username=\""+username+"\"";

try{

res = statement.executeQuery(sql);

if(res.next()){

String pa = res.getString(1);

System.out.println(pa+" " +password);

if(pa.equals(password)){

m = true;

}else {

JOptionPane.showMessageDialog(null, "密码错误!");

}

}else {

JOptionPane.showMessageDialog(null, "用户名不存在!");

}

res.close();

con.close();

statement.close();

}catch(SQLException e){

e.printStackTrace();

}

return m;

}

}

六:代码写完了 但是数据库还没有建立吧,那就建立数据库吧

先建立一个数据库

用到命令是

create database user;

然后新建一个表:

use user;

create table user(username varchar(20) primary key, password varchar(20));

现在表是空的,往表中添加几个数据:

insert into user(username,password) values("A",“123456”),("B","asdfg");

ce720123b9f275092c22b27bf987bc61.png

00bf5b9184c8ae18166f00ba0328b658.png

1eddc77bc975075f9662f7dc43d81666.png

633ec6fa8e238901161990d9ec27c301.png

826d6c08acbb5741ceb6579f433ac341.png

548ba514c97eb55ab433e64b3482fe9f.png

1eddc77bc975075f9662f7dc43d81666.png

用javaSwing和mysql数据库做的一个登录页面相关教程