项目名称:用户信息管理系统的开发与实现

曲阜师范大学软件学院

[姓名:张忠远]

[学号:2014416719]

[问题定义]通过java项目连接数据库,建立一个可以代替在数据库操作的用户信息管理系统。

[开发工具]用户信息管理系统是用Eclipse开发工具中开发完成的,基于Java开发语言。它是在Windows系统下,以Oracle数据库为开发平台的数据库可视化信息系统。

[设计过程]

需求分析:随着计算机的迅速发展和信息的爆炸式增长,数据库的应用显得尤为重要,通过java建立一个处理数据库信息的系统可代替数据库端的复杂操作,将用户信息方便的展现在系统端,方便操作和增删改查。

系统设计:

  1. 功能设计

用户信息管理系统功能设计包括查看用户信息、添加用户信息、修改用户信息和删除用户信息四个功能。

  1. 数据库设计

    本系统采用的是Oracle数据库,通过Oracle数据库下的scott用户连接系统,实现系统端对数据库的可视化操作。在这个系统中,我们采用了k_user表下的数据。

  1. 界面设计

本系统采用的界面设计包括登录界面、添加用户信息界面、修改用户信息界面、删除用户信息界面五个界面。

3.1登录界面

    我们通过输入一组提前准备好的k_user表下的数据来进行登录验证,验证成功后进入系统主页目录。如图3.1。

 

图3.1

登录界面代码:
public void loginView(){
	System.out.println("-------欢迎登陆库存管理系统---------");
	System.out.println("------1.登录------");
	System.out.println("------2.退出------");
	
	//通过控制台输入步骤
	Scanner sc=new Scanner(System.in);
	System.out.println("请输入操作步骤:");
	int opFlag=sc.nextInt();
	if(opFlag==1){
		System.out.println("登录");
		user = userService.checkUser(sc);
		if(user == null){
			System.out.println("用户名和密码不匹配");
			loginView();
		}else{
			System.out.println("登录成功");
		//首页界面todo
		indexView(sc);
		}
	}else{
		System.out.println("-----退出库存系统-----");
	}
  }
//首页界面
登录成功后的页面代码:
public void indexView(Scanner sc){

	System.out.println("欢迎["+user.getUsername()+"]登录本系统!");
	System.out.println("-----请选择要操作的目录-------");
	System.out.println("------3.基础信息管理------");
	System.out.println("------3.1用户管理-------");
	System.out.println("------3.2部门管理-------");
	System.out.println("------3.3仓库管理-------");
	System.out.println("------3.4供应商管理-------");
	System.out.println("------3.5产品管理-------");
	System.out.println("-------4.退出系统-------");
	System.out.println("-------请选择操作步骤-------");
	String opString = sc.next();
	switch(opString){
	case "3.1":
		System.out.println("登陆用户管理界面");
		showUserView(sc);
		//todo
		break;
	case "3.2":
		System.out.println("-------登陆部门管理界面-------");
		//todo
		break;
	case "3.3":
		System.out.println("-------登陆仓库管理界面-------");
		break;
	case "3.4":
		System.out.println("-------登陆供应商管理界面-------");
		break;
	case "3.5":
		System.out.println("-------登陆产品管理界面-------");
		break;
	case "4":
		System.out.println("-------退出系统-------");
		loginView();
		break;
	default:
		indexView(sc);
		break;
			
	}
}
public void showUserView(Scanner sc){
	System.out.println("------欢迎到用户管理界面------");
	System.out.println("------1.查看用户信息------");
	System.out.println("------2.添加用户信息------");
	System.out.println("------3.修改用户信息------");
	System.out.println("------4.删除用户信息------");
	System.out.println("------5.返回上一级------");
	System.out.println("------请输入要操作的步骤:------");
String opString = sc.next();
switch(opString){
case "1":
	System.out.println("------欢迎到用户信息列表页面------");
	this.showUserList(sc);
	break;
case "2":
System.out.println("------欢迎到新增用户界面------");
//1.建立一个addUser方法
//2.返回到用户信息列表界面
//3.
addUser(sc);
showUserView(sc);
break;
case "3":
	System.out.println("------欢迎到更新用户界面------");
	//1.updateUser()
	updateUser(sc);
	showUserView(sc);
	//2.返回到用户信息列表界面
break;
case "4":
	System.out.println("------欢迎到删除用户界面------");
	//1.deteUser()
	deleteUser(sc);
	//2.返回到用户信息列表界面
	showUserView(sc);
break;
case "5":
	System.out.println("------返回上一级------");
	break;
	default:
		System.out.println("------输入的指令与操作符不匹配------");
		indexView();
		break;


}

通过登录成功后的界面建立一个switch—case结构语句,进行接下来的功能选择。

3.2添加用户信息界面

添加用户信息界面调用了User.java的getUsername()、getDeptno()、getPosition()方法,从而使其输出到数据库k_user表中。如图3.2。

 

图3.2

 public void showUserList(Scanner sc){
	System.out.println("欢迎进入用户列表界面");
	List<User> list = this.userService.showUserList(sc);
	for(User user:list){
	System.out.println("用户名\t\t部门NO\t\t职位");
	System.out.println(user.getUsername()+"\t\t"+user.getDeptno()+"\t\t"+user.getPosition());
	}
}
//新增用户界面
public void addUser(Scanner sc){
	System.out.println("--------欢迎进入新增用户界面-------");
	//todo 调用service层的addUser()方法
	this.userService.addUser(sc);
}

3.3修改用户信息界面

修改用户信息界面调用UserService.java的updateUser()方法。如图3.3。

 

图3.3

//更新用户界面
public void updateUser(Scanner sc){
	System.out.println("--------欢迎进入修改用户界面-------");
	//todo 调用service层的updateUser()方法
	this.userService.updateUser(sc);
}

3.4删除用户信息界面

 

图3.4

//删除用户信息界面
public void deleteUser(Scanner sc)
{
	System.out.println("--------欢迎进入删除用户界面-------");
	//调用service层的deleteUser方法
	this.userService.deleteUser(sc);
}

4.系统主要开发步骤

  1. 新建一个java project项目
  2. 第一层包名:com
  3. 第二层包名:名字缩写
  4. 第三层 建立5个并列的包名(实体类entity,工具类util,dao层dao,service层service,表现层view)
  5. 在util包名下建立dbUtil工具类
Public class DBUtills{
		//连接数据库
		Public Connection getConnection(){
}
//关闭数据库
Public void closeAll(){
}
//查询数据库
Public ResultSet querySql(String sql,Object params[]){
}
//更新数据库:insert,updete,delete
Public int editSql(String sql,Object params[]){
}
}
  1. 在entity包名下建立商品的实体类
Public class goods{
		属性
		//get(),set()
}
  1. 在view包名下建立Menu.java
Public class menu{
		Public static void main(String args[]){
		//调用操作的方法
		LoginView();
}
//登录界面
	Public void loginView(Scanner sc){
}	
//首页界面
Public void indexView(Scanner sc){
}
//产品信息页面
Public void showGoodSView(Scanner sc){
	
}
// public void addGoods(Scanner sc){
	调用service层
}

}
  1. 在service包下新建一个GoodsService类
Public class GoodsService{
		Public void addGood(Scanner sc){
	//在控制台准备数据
		String goodsNo = sc.next();
//…其他列的信息
Goods good -= new GoodS();
good.setGoodsNO(goodsNo);
	//调用Dao层的addGoods
		Int count = goodsDao.addGoods();
		If( count >0){
//更新成功
}else{
//操作失败
}
}
}
  1. 在dao包名下新建GoodsDao类
Public Class GoodsDao{
	Public int AddGoods(Goods good){
		//1.连接数据库:工具类的getConnection()
		//2.准备sql语句和参数
			String sql=”insert into k_goods(列名,列名….) values(Goods_seq.nextVal,?,?....)”;
		Object params[] ={good.getGoodsNo(),…….};
		//调用工具类的editSql(),执行insert操作
		Int count = db.editSql(sql,params);
	return count

}
}

[程序调试情况]

我们以一组实验数据为例进行了操作实验。

1.登录。将K_USER表下的一个用户名为001密码为123的数据输入进行登录。登录后进入系统主页。

 

2.查看用户信息

登录成功后,我们按照提示选择3.1用户管理目录。然后选择1可以查看到输出道控制台的K_USER表下的用户信息。

 

3.添加用户信息

选择2目录,进入添加用户信息界面。输入一组用户名为robot密码为123年龄为1部门编号为01的数据。我们可以发现后面显示“数据更新成功”。

 

数据更新成功后,我们从后台sql developer软件登录scott用户,找到K_USER表,发现其中更新了这条数据,则表明数据更新成功。

4.修改用户信息

    修改用户信息界面,通过输入数据库中已经存在的数据,输入要修改的用户ID,则可进行修改。这里,我们修改的是K_USER表下用户ID为45的数据,将其用户名改为ro部门编号改为10年龄改为20。数据更新后查看数据库数据消失。也可通过再次回到主页选择查看用户信息进行查看。

 

5.删除用户信息

删除用户信息前系统会先询问是否确定删除选项,选择“Y”后则继续进行。输入要删除的用户ID,则可将这条数据清除。我们这次选择用户ID为42的一条数据。

 

删除后发现数据库中这条数据消失了,表明删除数据成功。

 

程序调试过程中容易出现的错误:

  1. 程序调试时遇到了数据库无法连接的问题,注意到数据库的用户名和密码是否在代码中写错了,改正后,可以连接实现查看用户的操作。
  2. 程序调试时进行用户的增删改查时发现无法更新数据,显示更新数据失败。通过排查发现,是因为数据库中没有建立sequence序列,在sql developer输入CREATE SEQUENCE  "USER_SEQ"  MINVALUE 1 MAXVALUE 999999999999999999999 INCREMENT BY 1 START WITH 41 CACHE 20 NOORDER  NOCYCLE ;建立了序列后,再重新运行系统,数据更新成功。

[心得及体会]

     通过这个用户信息管理系统的开发与实现,学习到了java语言的强大性,也通过java和oracle的结合实现了对数据库的可视化操作,在写系统的同时学会了如何处理错误并及时解决,学会了debug功能,使得自己不再担心问题的出现,提高了自己的编程能力!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值