JDBC 信息管理系统小实例

SimpleSystem.java

package com;

import java.util.Scanner;

public class SimpleSystem
{
	SqlHelper helper = new SqlHelper();
	Scanner scanner = new Scanner(System.in);

	public static void main(String[] args)
	{
		new SimpleSystem().go();
	}

	public void go()
	{
		try{
			helper.sqlSetup();
			int rowNum = verify();
			doThing(rowNum);
			exit();
		}catch(Exception ex){ex.getMessage();}
	}

	public int verify() throws Exception
	{
		System.out.println("Welcome to this system");
		int rowNum = 0;
		while(rowNum == 0)
		{
			System.out.println("Please type in username");
			String username = scanner.nextLine();
			System.out.println("Please type in password");
			String password = scanner.nextLine();
			rowNum = helper.login(username, password);	

		}
		return rowNum;
	}

	public void doThing(int rowNum) throws Exception
	{
		if(rowNum == 1)
		{
			SuperUser sUser = new SuperUser();
			sUser.introduction();

			while(true)
			{
				System.out.println("Press ‘N‘ to exit or type in your option: ");
				scanner = new Scanner(System.in);
				String option = scanner.nextLine().toUpperCase();
				switch(option)
				{
					case "A":
						sUser.add(helper);
						break;
					case "D":
						sUser.delete(helper);
						break;
					case "E":
						sUser.edit(helper);
						break;
					case "S":
						sUser.select(helper);
						break;
					case"N":
						return;
					default:
						System.out.println("Correct your option!");
						break;
				}
			}
		}else
		{
			CommonUser cUser = new CommonUser();
			cUser.introduction();

			while(true)
			{
				System.out.println("Press ‘N‘ to exit or type in your option: ");
				scanner = new Scanner(System.in);
				String option = scanner.nextLine().toUpperCase();
				switch(option)
				{

					case "S":
						cUser.select(helper);
						break;
					case"N":
						return;
					default:
						System.out.println("Correct your option!");
						break;
				}
			}
		}

	}

	public void exit()
	{
		scanner.close();
		System.out.println("System exited!");
	}
}

SqlHelper.java

package com;

import java.sql.*;

public class SqlHelper
{
	private Connection con;
	private String driver = "com.mysql.jdbc.Driver";
	private String url = "jdbc:mysql://127.0.0.1:3306/?autoReconnect=true&useSSL=false";
	private String user = "root";
	private String passwd = "lly";
	private Statement stmt = null;

	public void sqlSetup()
	{
		try
		{
			Class.forName(driver).newInstance();
			con = DriverManager.getConnection(url,user,passwd);
			System.out.println("Server is connected.");

			stmt= con.createStatement();
			stmt.executeQuery("USE prac");
			System.out.println("Database accessed.");
		}catch(Exception e)
		{
			System.out.println("MYSQL ERROR: " + e.getMessage());
		}
	}

	public int login(String username, String password) throws SQLException
	{
		int rowNum = 0;
		ResultSet rs = select(username);
		if(rs.next())
		{
				if(password.equals(rs.getString(3)))
				{
					System.out.println("Successfully login!");
					rowNum = rs.getInt(1);
				}
				else
					System.out.println("Wrong password! Try again.");
		}else
			System.out.println("User do not exist!");
		return rowNum;
	}

	public ResultSet select(String name) throws SQLException
	{
		return stmt.executeQuery("SELECT * FROM user WHERE name = ‘"+name+"‘");
	}

	public int insert(String name, String pwd) throws SQLException
	{
		return	stmt.executeUpdate("INSERT INTO user(name, password) VALUES(‘"+name+"‘, ‘"+pwd+"‘)");
	}

	public int delete(String name) throws SQLException
	{
		return stmt.executeUpdate("DELETE FROM user WHERE name = ‘"+name+"‘");
	}

	public int edit(String oldName, String newName, String pwd) throws SQLException
	{
		return stmt.executeUpdate("UPDATE user SET name = ‘"+newName+"‘, password = ‘"+pwd+"‘ WHERE name = ‘"+oldName+"‘");
	}

}

User.java

package com;

import java.util.Scanner;

public abstract class User
{
	Scanner scanner = new Scanner(System.in);
	public abstract void introduction();
}

SuperUser.java

package com;

import java.sql.ResultSet;
import java.sql.SQLException;

class SuperUser extends User
{
	public void introduction()
	{
		System.out.println("You‘re the administrator of this System.");
		System.out.println("Your rights are as follow:");
		System.out.println("A -Add an user.");
		System.out.println("D -Delete an user");
		System.out.println("E -Edit an user infomation");
		System.out.println("S -Search users");
		System.out.println("N -Exit");
	}

	public void add(SqlHelper helper) throws SQLException
	{
		boolean run = true;
		while(run)
		{
			System.out.println("Please type in new username: ");		 
			String username = scanner.nextLine();
			ResultSet sRs = helper.select(username);
			if(!sRs.next())
			{
				while(true)
				{
					System.out.println("Please type in 8-digits password");
					String password = scanner.nextLine();
					if(password.length() == 8)
					{
						int iRs = helper.insert(username, password);
						if(iRs == 1)
						{
							System.out.println("New user has been added!");
							run = false;
							break;
						}
					}else
						System.out.println("Password is not 8 digit! Try again.");
				}
			}else
				System.out.println("User exist! Try again.");
		}

	}

	public void delete(SqlHelper helper)throws SQLException
	{
		System.out.println("Please type in username: ");
		 
		String username = scanner.nextLine();
		if(!username.equals("admin"))
		{
			int flag = helper.delete(username);
			if(flag == 1)
				System.out.println("User has been deleted!");
			else
				System.out.println("User do not exist!");
		}else
			System.out.println("Administrator accout can not be deleted!");

	}

	public void edit(SqlHelper helper)throws SQLException
	{
		System.out.println("Please type in the username you want to edit: ");
		 
		String oldName = scanner.nextLine();
		ResultSet rs = helper.select(oldName);
		if(rs.next())
		{
			System.out.println("Type in new username: ");
			String newName = scanner.nextLine();
			while(true)
			{
				System.out.println("Type in new password: ");
				String newPwd = scanner.nextLine();
				if(newPwd.length() == 8)
				{
					int flag = helper.edit(oldName, newName, newPwd);
					if(flag == 1){
						System.out.println("User has been edit!");
						break;
					}
				}else
					System.out.println("Password is not 8 digit! Try again.");
			}
		}else
			System.out.println("User do not exist! Try again.");

	}

	public void select(SqlHelper helper) throws SQLException
	{
		System.out.println("Please type in the username you want to search: ");
		 
		String username = scanner.nextLine();
		ResultSet rs = helper.select(username);
		if(rs.next())
		{
			System.out.println("User info is as follow: ");
			System.out.println("User_id: "+rs.getInt(1)+" Username: "+rs.getString(2)+"Password: "+rs.getString(3));
		}else
			System.out.println("User do not exist!");

	}
}

CommonUser.java

package com;

import java.sql.ResultSet;
import java.sql.SQLException;

class CommonUser extends User
	{
		public void introduction()
		{
			System.out.println("You‘re the common user of this System.");
			System.out.println("Your rights are as follow:");
			System.out.println("S -Search users");
			System.out.println("N -Exit");
		}

		public void select(SqlHelper helper) throws SQLException
		{
			System.out.println("Please type in the username you want to search: ");
			String username = scanner.nextLine();
			ResultSet rs = helper.select(username);
			if(rs.next())
			{
				System.out.println("User info is as follow: ");
				System.out.println("User_id: "+rs.getInt(1)+" Username: "+rs.getString(2)+"Password: "+rs.getString(3));
			}else
				System.out.println("User do not exist!");
		}
	}
时间: 2024-11-03 05:28:08

JDBC 信息管理系统小实例的相关文章

大数据技术之_16_Scala学习_11_客户信息管理系统+并发编程模型 Akka+Akka 网络编程-小黄鸡客服案例+Akka 网络编程-Spark Master Worker 进程通讯项目

第十五章 客户信息管理系统15.1 项目的开发流程15.2 项目的需求分析15.3 项目的界面15.4 项目的设计-程序框架图15.5 项目的功能实现15.5.1 完成 Customer 类15.5.2 完成显示主菜单和退出软件功能15.5.3 完成显示客户列表的功能15.5.4 完成添加客户的功能15.5.5 完成删除客户的功能15.5.6 完善退出确认功能15.5.7 完善删除确认功能15.5.8 完成修改客户的功能第十六章 并发编程模型 Akka16.1 Akka 的介绍16.2 Acto

小草的Trouble学生信息管理系统

小草最近上课学C++,在图书馆纠结了好久,决定做这个小东西,没想到遇到了好多困难,好吧,功夫不负有心人,小草也在敲代码中提高了不少. 小草硬是学了好几天,才搞完这个东西,也算是了结了小草的一个心结. 小草的Trouble学生信息管理系统写得不咋样,就是一个学习C++的笔记吧. 1.类. 2.继承与派生. #include <stdio.h> #include <iostream> #include <stdlib.h> #include <algorithm>

linux下c/c++实例之十五简单的学生信息管理系统

一.简介 大学期间用vc++开发的简单的学生信息管理系统,主要有添加学生信息.删除学生信息.修改学生信息.查询学生信息.显示学生信息.综合统计(各课程平均成绩和合格率).总分排序和退出系统.设计: 二.详解 1.代码 (1)main.cpp #include<iostream> #include<fstream> #include<iomanip> //使用setw()函数 #include<windows.h> //使用system()函数 #includ

学生信息管理系统修改

北京工业大学耿丹学院 c语言设计课程报告   课程设计名称:高级语言程序设计 专业班级:计算机科学与技术1 姓名:吴双 学号:150809201   2016年5月10日 一 对c语言指针链表的体会 ------------------------ 二 修改学生信息管理系统 ------------------------ 三 体会 ------------------------ 一 对c语言指针链表的体会 1.指针 简单来说,指针是一个存储计算机内存地址的变量. 用 int *ptr 这种形

学生信息管理系统 1.0

学生信息管理系统V1.0 1.实现用户的注册与登录功能. 1.1:注册时检测用户名,如果有重复则需要重新输入,用户信息存入数据库. 1.2:登录时,有验证码验证. 2.实现用户查询学生表的基本信息. 3.用户可以更改.删除学生表信息. 4.系统可以正确显示系统时间. 5.系统正确显示用户权限(功能暂未实现). 因为很多东西还没有学到,只能用最基础的代码实现功能. 1)欢迎页面 1 <%@ page language="java" contentType="text/ht

学生信息管理系统JAVASE版--1.1.1

现在终于可以写出实用一点的程序了.虽然这个程序的功能非常之简陋,而且还有BUG.不过最起码已经可以使用了. 功能预览和下一步的目标 程序主界面 查询功能: 目前只做了一个表的增.删.改.查.下一步应该就是把功能完善,比如加入错误处理,比如加入成绩部分.完成一个班级内的学生信息管理的功能,应该具有学生的基本信息查询,成绩管理这两个功能 不过有一个问题就是,在表格更新这一部分,每更新一次,就要创建一个tabliModel对象,感觉可以改进.再有就是MVC模式,其实也就接触设计模式.还有就是整成那种可

从零开始,编写简单的课程信息管理系统(使用jsp+servlet+javabean架构)

一.相关的软件下载和环境配置 1.下载并配置JDK. 2.下载eclipse. 3.下载并配置apache-tomcat(服务器). 4.下载MySQL(数据库). 5.下载Navicat for MySQL(数据库可视化工具),方便对数据库的操作. 6.下载jdbc用来实现eclipse中的项目与数据库实现连接. ---以上可在网上查询教程 二.实现简单的课程信息管理系统 1. 打开eclipse,点击File->New->other->Dynamic Web Project (若你的

spring+mybatis之声明式事务管理初识(小实例)

前几篇的文章都只是初步学习spring和mybatis框架,所写的实例也都非常简单,所进行的数据访问控制也都很简单,没有加入事务管理.这篇文章将初步接触事务管理. 1.事务管理 理解事务管理之前,先通过一个例子讲一下什么是事务管理:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都不执行.如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元:如果银行卡扣钱失败但是ATM却出

开发web信息管理系统用到的相关技术

Java Web应用的核心技术包括以下几个方面:● JSP:进行输入和输出的基本手段.● JavaBean:完成功能的处理.● Servlet:对应用的流程进行控制.● JDBC:是与数据库进行交互不可缺少的技术.● JSTL和表达式语言EL:完成对JSP页面中各种信息的控制和输出. 1.分布式技术 在开发复杂的应用系统时,往往把系统分成逻辑上或物理上分离的部件,部件通常在各自平台的运行环境中运行,平台可以是异构的,平台之间通过网络连接. 在开发分布式应用系统时,最开始是两层的C/S(客户/服务