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

news/2024/5/20 2:06:41/文章来源:https://blog.csdn.net/weixin_42134537/article/details/115786632

用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数据库做的一个登录页面相关教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_818805.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10 iis6写php接口,小编介绍win10 IIS 6.0安装和网站架设的方法图文教程

最近有些朋友反馈小编问win10 IIS 6.0安装和网站架设的方法是什么。IIS 6.0 和 Windows Server 2003在网络应用服务器的管理、可用性、可靠性、安全性、性能与可扩展性方面提供了许多新的功能。IIS 6.0同样增强了网络应用的开发与国际性支持。那么接下来小编就为大家说说 IIS 6…

linux个人网站发布,51CTO博客-专业IT技术博客创作平台-技术成就梦想

发布个人站点1.创建个人用户和站点[rootlocalhost ~]# useradd baidu[rootlocalhost ~]# passwd baiduChanging password for user baidu[rootlocalhost ~]# su - baidu[baidulocalhost ~]$ mkdir public_html[baidulocalhost ~]$ cd public_html/[baidulocalhost p…

GitHub+Hexo 搭建个人网站

本文已同步到专业技术网站 www.sufaith.com, 该网站专注于前后端开发技术与经验分享, 包含Web开发、Nodejs、Python、Linux、IT资讯等板块. 一、创建GitHub Pages站点 GitHub Pages是一种静态站点托管服务,旨在直接从GitHub仓库托管您的个人,组织或项目页…

提高网站加载速度的3项黄金守则

如何优化网页加载速度是每个前端开发工程师需要了解的,也是前端开发工程师需要具备的基本条件。 优化网站加载速度的原理主要是减少网站文件的大小,减少HTTP请求数。网站文件越小,浏览器加载页面会比较轻松,打开页面的速度也会提升…

wordpress如何让百度快速收录_网站文章如何快速被收录?百度快速收录功能可以试一下...

摘要:近日百度站长管理平台推出了快速收录功能,据了解该功能目前仅对部分优质的站点开放,但是开通熊掌号的站点也可以直接继承过来的。下面让我们一起来了看看吧。一、百度快速收录上线2020年5月13日下午,百度站长管理平台上线了快…

java开发流程图_开发者常用的一些工具类网站

本文主要收集和记录一些平时开发工作中经常用到的工具类网站。当然,GitHub、StackOverflow 之类知名度太高的就不赘述了。ProcessOnProcessOn - 免费在线作图,思维导图,流程图,实时协作​www.processon.com在线画图,思…

网站源码(二)

开始失业了,要人的朋友关照一下.对上次源码的完善.请大家在这下载最新版本源码.欢迎来信一起交流,一起进步.这是我的写的一些作品,是一个企业网站的后台和前台,主要实现了新闻发布和人才招聘,还有公司简介等,本是公司改版时用的,由于没能用上,现在提供全部源码,希望对想更版公司…

关于网页*静态化*及SEO问题的一些补充(转)

http://www.cnblogs.com/JeffreyZhao/archive/2009/07/06/more-on-page-statilization-and-seo.html  前一篇讨论“静态页”的文章反响不错,不少朋友发表了自己的看法,也给老赵更多的想法。虽然也在前一篇文章后面回复了不少内容,但是就以往…

非常酷的国外网站导航设计案例欣赏

作为网站最重要的组成部分之一,导航能够引导用户浏览网站中的更多内容。优秀的导航应该和网页内容完美的融合在一起,因此设计前需要设仔细分析网页结构。这篇文章收集了20个漂亮的网站导航设计案例,希望这些优秀的实例能给你带来灵感。 New C…

40个优秀的单页网站设计范例(下篇)

单页网站是指只有一个页面的网站形式,有些人非常喜欢这种网站。不过,并不是每个网站都适合做成单页,一般都是内容比较少而且将来内容也不怎么增加的情况才适合这样做。如果你打算做一个这样的网站,那么本文收集的20个漂亮的单页网…

10 个用来下载免费图标的网站

Icon Archive Icon stick Icon Factory Icon Finder Find icons Icon Shock Icons Pedia Icon Pot Icon Dock Best Free icons 转载于:https://www.cnblogs.com/chu888chu888/archive/2011/12/20/2294540.html

电子商务网站的用户分析

电子商务网站的用户分析 当用户在电子商务网站上有了购买行为之后,就从潜在客户变成了网站的价值客户。电子商务网站一般都会将用户的交易信息,包括购买时间、购买商品、购买数量、支付金额等信息保存在自己的数据库里面,所以对于这些用户&am…

域名解析 cdn网站_前端必会:CDN加速原理

作者: Kandyhttps://www.jianshu.com/p/1dae6e1680ff一、什么是 CDNCDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用户的网络”边缘“的节点,使…

宝塔mysql cpu 100_宝塔面板解决网站云服务器偶尔出现CPU100%的情况

不知道大家有没有遇到一个问题,就是服务器CPU经常会跳100%,但是网站却其实却没什么访问量,查看服务器带宽也是正常的,那为何CPU却偶尔跳100%呢?对于这个问题主机吧上周也遇到过类似的问题,查了挺久&#xf…

取代cookie的网站追踪技术:帆布指纹识别

【前言】 一般情况下,网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体,这样可以通过收集这些个体的数据,通过分析后更加精准的去推送广告(精准化营销)或其他有针对性的一些活动。Cookie技…

“万能数据库查询分析器”中英文4.01 已提交至国内几大软件下载网站,3日内就会发布,敬请期待...

“万能数据库查询分析器”(中文版本《DB 查询分析器》、英文版本《DB Query Analyzer》)拥有强大的功能、友好的操作界面、良好的操作性、跨越数据库平台。 中英文最新的4.01版本已提交给国内各大软件下载网站来升级,估计3天内就可以完成更…

55+手绘网站设计 – 构建极具创新效果的网站

手绘网页设计无疑是创建个性化页面并获取众多关注的好办法。 尽管手绘在网页设计中不是最热门的,但却是很常见的方法。如你在以下的实例中所见,将手绘融入网页设计有很多种方法,都看上去很棒!正如其他任何艺术形式一样&#xff0c…

IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题

IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题 原文:IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6、7、8、9下都跑的好好的,唯独到了IE10、11这些高…

【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)...

转自:http://www.crifan.com/files/doc/docbook/web_scrape_emulate_login/release/html/web_scrape_emulate_login.html摘要本文主要介绍了抓取网站,模拟登陆,抓取动态网页相关的逻辑,原理和如何实现。主要包括: 抓取…

程序员必备-13个网站小工具

1. MikuTools 链接 2. 在线工具-程序员工具 链接 3. 一个工具箱 链接 4. ToolFk 在线程序员开发工具 5. Smallpdf 链接 6. 兔二工具 链接 7. 在线电子书转换器 链接 8. 智奇搜书 链接 9. 图片背景消除(快速抠图必备) 链接 10. topbook 链接 奇…