`

java简单界面的注册功能——数据库实现

阅读更多

java简单界面的注册功能——数据库实现

有关数据库方面的操作本次不打算讲了,不懂的可以看本人的上一次的技术博客。今天给大家带来的是本人自己思索过后对数据库的基本使用。只是简单的记录了自己的学习过程和经历,好了,言归正传。我这次是做了一个简单的界面:



 中间的区域是使用JList做的,实现了点击删除数据。



 接下来是代码了:

package ctong;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JRootPane;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
/**
 * 1.增加数据-insert into game(name,type) values(?,?)
 * public void dd2Table(String name,String type);
 * public void add2Table(String name,String type,int id);
 * 2.删除数据-delete from game where id = ?
 * public void DelData(int id)
 * 3.查找数据-select * from game
 * public void SelectTables()
 * 4.修改数据-update game set name=?,type=? where id=?
 * public void upData(String name,String type,int id)
 * 
 * 
 * 
 * @author ctong
 *
 */
public class Mysql {
	private  JTextField field1,field2;
	private ArrayList<String> arrayList=new ArrayList<String>();
	/*
	    数据库加载固定属性
	 */
	//mySql 中驱动类的名字就是其驱动包中的com.mysql.jdbc.Driver.class 类。
	String  driver="com.mysql.jdbc.Driver";
	Connection con;
	//jdbc:mysql://ip 地址: 端口号/数据库名字
	String url="jdbc:mysql://localhost:3306/ctong";
	String user="root";
	//连接上数据库mysql
	public void connection2MYSQL()
	{
		try {
			Class.forName(driver);
			//第三个属性是密码
			con=DriverManager.getConnection(url,user,"");
			
			if(!con.isClosed())
				System.out.println("连接成功");
	
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		
	}
	//在表末增加一栏数据
	public void add2Table(String zhanghao,String mima)
	{
		try {
			//预处理命令添加
			PreparedStatement sql;
			sql = con.prepareStatement("insert into QQ(zhanghao,mima) values(?,?)");
			sql.setString(1,zhanghao);
			sql.setString(2,mima);
			sql.executeUpdate(); 
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	//增加一栏数据-----指定id
		public void add2Table(String zhanghao,String mima,int id)
		{
			try {
				//预处理命令添加
				PreparedStatement sql;
				sql = con.prepareStatement("insert into QQ(zhanghao,mima,id) values(?,?,?)");
				sql.setString(1,zhanghao);
				sql.setString(2,mima);
				sql.setInt(3, id);
				sql.executeUpdate(); 
			} catch (Exception e) {
				e.printStackTrace();
			}
			
		}
	
	//查找表中所有数据
	public void SelectTables(){
		boolean flag = false;
		try {
			// 执行sql语句
			Statement statement = con.createStatement();

			String sql = "select * from QQ";
			ResultSet rs = statement.executeQuery(sql);
			String zhanghao = "";
			String mima = "";
			int id;
			while (rs.next()) {
				zhanghao = rs.getString("zhanghao");
				mima = rs.getString("mima");
				id=rs.getInt("id");
				System.out.println("zhanghao =" + zhanghao + "  mima=" + mima+"   id="+id);
				if(zhanghao.equals(field1.getText())&&mima.equals(field2.getText())){
					flag=true;
					JOptionPane.showMessageDialog(null, "成功登陆");
				}
			}
			if(!flag)
			JOptionPane.showMessageDialog(null, "登陆失败");
			rs.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	public boolean SelectTables2(){
		boolean flag = false;
		try {
			// 执行sql语句
			Statement statement = con.createStatement();
			
			String sql = "select * from QQ";
			ResultSet rs = statement.executeQuery(sql);
			String zhanghao = "";
			while (rs.next()) {
				zhanghao = rs.getString("zhanghao");
				if(zhanghao.equals(field1.getText())){
					flag=true;
					JOptionPane.showMessageDialog(null, "注册失败");
					return false;
				}
			}
			if(!flag)
				JOptionPane.showMessageDialog(null, "注册成功");
			rs.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return true;
	}
	
	//删除一行数据
	public void DelData(int id)
	{
		try {
			PreparedStatement sql;
			sql = con.prepareStatement("delete from QQ where id = ?");
			sql.setInt(1,id);
			sql.executeUpdate(); 
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	public void DeleteData(String zhanghao)
	{
		try {
			PreparedStatement sql;
			sql = con.prepareStatement("delete from QQ where zhanghao = ?");
			sql.setString(1,zhanghao);
			sql.executeUpdate(); 
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
	//修改一栏数据
	public void upData(String zhanghao,String mima,int id)
	{
		try {
			PreparedStatement sql;
			sql = con.prepareStatement("update QQ set zhanghao=?,mima=? where id=?");
			sql.setString(1,zhanghao);
			sql.setString(2,mima);
			sql.setInt(3, id);
			sql.executeUpdate(); 
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	//数据库的关闭
	public void close1(){
		try {
			con.close();
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		
	}
	//数据库内容初始化
	public Object[] showR(){
		 
		try {
			// 执行sql语句
			Statement statement = con.createStatement();

			String sql = "select * from QQ";
			ResultSet rs = statement.executeQuery(sql);
			
			String zhanghao = "";
			while (rs.next()) {
				zhanghao = rs.getString("zhanghao");
				arrayList.add(zhanghao);
			}
			rs.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return arrayList.toArray();
	}
	//界面
	public void init(){
		final JFrame frame = new JFrame("我的界面注册功能");
		frame.setSize(500, 500);
		frame.setDefaultCloseOperation(0);
		frame.setLocationRelativeTo(null);
		frame.setResizable(false);
		frame.setUndecorated(true);
		frame.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
		frame.setLayout(new FlowLayout());
		JLabel label1 = new JLabel("账号");
		JLabel label2 = new JLabel("密码");
		field1 = new JTextField(10);
		field2 = new JTextField(10);
		JButton button1 = new JButton("登陆");
		JButton button2 = new JButton("注册");
		final JList list = new JList();
		list.setForeground(Color.BLUE);
		list.setCursor(new Cursor(12));
		list.setBorder(BorderFactory.createTitledBorder("已有的账号"));
		list.setListData(showR());
		list.setToolTipText("双击删除账号!");
		list.setFont(new Font(null, Font.BOLD, 17));
		JScrollPane jsp = new JScrollPane(list);
		jsp.setPreferredSize(new Dimension(400,400));
		frame.add(label1);
		frame.add(field1);
		frame.add(label2);
		frame.add(field2);
		frame.add(button1);
		frame.add(button2);
		frame.add(jsp);
		frame.setVisible(true);
		
		button1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(!field1.getText().isEmpty()){
					SelectTables();
				}else JOptionPane.showMessageDialog(null, "账号密码不能为空");
			}
		});
		button2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(!field1.getText().isEmpty()&&!field2.getText().isEmpty()){
					if(SelectTables2()){
						add2Table(field1.getText(), field2.getText());
						arrayList.add(field1.getText());
						list.setListData(arrayList.toArray());
					}
				}else JOptionPane.showMessageDialog(null, "账号密码不能为空");
			}
		});
		list.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				// TODO Auto-generated method stub
				if(e.getClickCount()==2){
					JOptionPane.showMessageDialog(null, "账号:"+list.getSelectedValue()+"已删除");
					DeleteData((String) list.getSelectedValue());
					arrayList.remove(list.getSelectedIndex());
					list.setListData(showR());
				}
			}
		});
		frame.addWindowListener(new WindowAdapter(){
			   public void windowClosing(WindowEvent e){
				   int result=JOptionPane.showConfirmDialog(null, "你确定要退出?", "Information", JOptionPane.YES_NO_OPTION);
					 if(result==JOptionPane.YES_NO_OPTION){
						//这里用这个比较合适,因为这样是直接退出程序,而dispose()只关闭窗体,而程序还没结束。
						 close1();
						 System.exit(0);
					 }
			   }
			});
	}
	//主函数
	public static void main(String[] args)
	{	
		Mysql mysql = new Mysql();
		mysql.connection2MYSQL();
		mysql.init();
		
	}

}
  • 大小: 6 KB
  • 大小: 11.9 KB
分享到:
评论

相关推荐

    简易银行卡管理系统——java 实现以及 SQL server 2005数据库

    《简易银行卡管理系统——Java实现与SQL Server 2005数据库》 本项目是一个基于Java编程语言实现的简易银行卡管理系统,旨在模拟实际ATM机的各项功能,包括取款、查询余额、存款、挂失和注销卡片等操作。系统的核心...

    Java Web开发实践教程——从设计到实现(第2版)PPT

    《Java Web开发实践教程——从设计到实现(第2版)》是一本深入探讨Java Web技术的权威指南,尤其适合初学者和有一定基础的开发者。本教程通过PPT的形式,以直观、易懂的方式讲解了从项目规划到实际开发的全过程。在...

    Java图形界面示例程序 —— 问卷调查表

    Java图形界面(GUI)是Java编程中用于创建用户交互界面的一部分,它允许开发者设计出具有按钮、文本框、菜单等元素的应用程序。本示例程序是一个问卷调查表,通过GUI来收集用户的数据。这个程序包括一个登录界面,...

    移动应用程序设计基础——数据库实践——简单日记本.zip

    这个压缩包"移动应用程序设计基础——数据库实践——简单日记本.zip"显然是一个教学资源,旨在帮助学习者理解如何在Android环境中构建一个简单的日记应用,同时涉及到了数据库的使用。下面我们将详细探讨其中涉及到...

    医院管理系统——数据库课程设计

    在本次的“医院管理系统——数据库课程设计”项目中,我们主要关注的是如何利用SQL Server 2005构建一个高效且实用的数据库系统,并通过Java编程语言开发图形用户界面(GUI),实现对医院业务流程的有效管理和操作。...

    java登陆系统——用oracle数据库实现.docx

    3. **JDBC(Java Database Connectivity)**:这是Java访问数据库的标准API,提供了连接数据库、执行SQL语句等功能。 ### 关键代码解析 #### 三、代码解析 1. **登录验证逻辑**: - 用户名和密码的读取与处理: ...

    教务管理系统——数据库课程设计mysql+java.zip

    在这个项目中,我们将深入探讨如何结合MySQL数据库和Java技术来实现一个这样的系统。以下是基于标题和描述所涉及的关键知识点: 1. **MySQL数据库**: - **数据存储**:MySQL是流行的开源关系型数据库管理系统,...

    权限管理系统——数据库部分

    《权限管理系统——数据库部分》是基于Java编程语言开发的一套全面的权限管理解决方案。系统采用SSH(Spring、Struts、Hibernate)三大框架技术,旨在提供高效、安全的用户权限控制功能。此压缩包包含了数据库相关的...

    图书馆信息管理系统——数据库课程设计(含源码和设计报告).rar

    《图书馆信息管理系统——数据库课程设计》是一份包含源码和设计报告的压缩包资源,旨在帮助学生或开发者学习和理解如何构建一个基于数据库的管理应用。这个系统是使用Java编程语言,具体是利用Java的Swing组件来...

    JSON ——数据库结果集转换

    标题和描述均提到了“JSON —— 数据库结果集转换”,这主要涉及到将数据库查询结果转化为JSON格式的数据,以便于在网络传输中使用。在现代Web开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换...

    BBS数据库系统的设计与实现——数据库系统的设计与实现.pdf

    【BBS数据库系统设计与实现】是针对网络论坛(BBS)的一种具体应用,涉及到数据库技术、Java编程语言以及SSH(Struts+Spring+Hibernate)框架的集成使用。该系统旨在构建一个用户友好的交互平台,使用户能够方便地...

    J2EE——MyEclipse实现网页的登录和注册

    总之,使用MyEclipse实现J2EE的登录和注册功能涉及到多个技术层面,包括Servlet、JSP、数据库连接、会话管理和错误处理。通过实践和学习,开发者可以熟练掌握这些技能,构建出稳定、安全的Web应用。

    java 图形界面程序——科研申报

    开发者可能使用Java的JDBC(Java Database Connectivity)API来连接、操作数据库,执行SQL语句,实现数据的增删改查功能。 在设计和实现这个科研申报系统时,开发者可能需要考虑以下几个关键技术点: 1. **事件...

    图书管理系统——数据库实验报告

    4. **系统开发工具**:开发过程中可能使用到的工具有数据库管理系统(如MySQL、Oracle等)和数据库开发工具(如SQL Server Management Studio、Navicat等),以及Java集成开发环境(如Eclipse、IntelliJ IDEA等)。...

    java实验五_java实验五_数据库应用设计_

    1、使用Java控制台实现一个小型学生管理系统的菜单选择界面,效果如下:2、使用JDBC完成对用户输入的学生信息进行数据库保存操作。界面效果如下:3、使用JDBC完成对用户选择的学号的学生信息进行更新操作。若用户...

    Java简易博客系统附带sql数据库

    【标题】"Java简易博客系统附带sql数据库"揭示了这个项目的核心——一个基于Java语言开发的简单博客系统,该系统已经集成了SQL数据库。在Java编程领域,这样的项目通常涉及后端开发技术,其中Java作为主要编程语言,...

    Java和数据库结合——公交查询系统

    本系统是Java和数据库结合体,实现了公交车的增删改查。还增加了管理员和用户的角色,分别可以以不同的身份进入系统。本程序使用的是黄冈市公交数据。其关键技术是连接数据库和数据库的相关操作select,delete,update...

    JAVA项目-基于控制台和数据库实现的房屋出租管理系统

    本项目——"JAVA项目-基于控制台和数据库实现的房屋出租管理系统",就是这样一个面向初学者的实践案例,它涵盖了数据库操作、用户交互以及数据管理等多个关键知识点。 首先,系统的核心功能包括以下几个方面: 1. ...

    肇庆学院《专业技能训练——数据库应用系统开发》选题

    【专业技能训练——数据库应用系统开发】是肇庆学院开设的一门课程,旨在培养学生的实践能力和数据库应用系统的开发技能。这门课程涵盖了数据库设计、课程设计和大作业等多个方面,要求学生设计并实现一个医药管理...

Global site tag (gtag.js) - Google Analytics