用Java和mysql实现一个库存管理系统
建立的包和类的关系如上。其中com.hyg.view是用户层,com.hyg.service是业务层,com.hyg.dao是和数据库的链接层,com.hyg.model用于建立数据类型。
Menu.java的代码为
package com.hyg.view;
import java.util.List;
import java.util.Scanner;
import com.hyg.model.User;
import com.hyg.service.UserService;
public class Menu {
UserService userService=new UserService();
Scanner sc=new Scanner(System.in);
int result=sc.nextInt();
public void loginView(){
System.out.println("-----------");
System.out.println("--1.登录---");
System.out.println("--2.退出---");
System.out.println("请输入要进行的操作:");
if(result==1){
//登录
System.out.println("请输入账号");
String userno=sc.next();
System.out.println("请输入密码");
String pwd=sc.next();
//调用业务层的方法
User user = userService.login(userno,pwd);
if(user!=null){
//登录
System.out.println("登录成功");
indexView(user);
}else{
//登录失败
System.out.println("登录失败");
loginView();
}
}else{
//退出
System.out.println("您已退出程序");
}
}
private void indexView(User user) {
System.out.println("\t\t\t欢迎 [" + user.getUsername() + "]登录本系统!");
System.out.println("\t\t\t--------1、基库存管理----------");
System.out.println("\t\t\t-----------1.1 库存查询----------");
System.out.println("\t\t\t-----------1.2 入库管理----------");
System.out.println("\t\t\t-----------1.3 出库管理----------");
System.out.println("\t\t\t--------2、报表管理----------");
System.out.println("\t\t\t-----------2.1 库存月报----------");
System.out.println("\t\t\t-----------2.2 物资台账----------");
System.out.println("\t\t\t--------3、基础信息管理----------");
System.out.println("\t\t\t-----------3.1 用户管理----------");
System.out.println("\t\t\t-----------3.2 部门管理----------");
System.out.println("\t\t\t-----------3.3 仓库管理----------");
System.out.println("\t\t\t-----------3.4 供应商管理----------");
System.out.println("\t\t\t-----------3.5 产品管理----------");
System.out.println("\t\t\t--------4、退出系统----------");
System.out.print("请输入要进行的操作:");
String rescult=sc.next();
if(rescult.equals("3.1")){
//进入用户管理
userView(user);
}else if(rescult.equals("3.2")){
//进入部门管理
}
}
/**
* 用户管理
* @param user 当前登录的用户对象
*/
private void userView(User user){
System.out.println("\t\t\t------------------欢迎到用户管理界面------------------");
System.out.println("\t\t\t------------------1、查看用户信息------------------");
System.out.println("\t\t\t------------------2、添加用户信息------------------");
System.out.println("\t\t\t------------------3、修改用户信息------------------");
System.out.println("\t\t\t------------------4、删除用户信息------------------");
System.out.println("\t\t\t------------------5、返回上一级------------------");
System.out.print("请输入要进行的操作:");
int result=sc.nextInt();
if(result==1){
//查询用户
List<User> list=userService.findUserList();
System.out.println("ID"+"\t姓名"+"\t\t账号"+"\t密码"+"\t职位"+"\t年龄");
for(int i=0;i<list.size();i++){
User u=list.get(i);
System.out.println(u.getId()+"\t"+u.getUsername()+"\t"+u.getUserno()+"\t"+u.getPwd()+"\t"+u.getPosition()+"\t"+u.getAge());
}
userView(user);//继续执行
}else if(result==2){
//添加用户
System.out.println("请输入账号:");
String userno=sc.next();
System.out.println("请输入密码:");
String pwd=sc.next();
User u=new User();
u.setUserno(userno);
u.setPwd(pwd);
Boolean flag=userService.addUser(u);
if(flag){
//添加成功
System.out.println("添加成功");
}else{
//添加失败
System.out.println("添加失败");
}
userView(user);//调用当前方法继续进行
}else if(result==3){
//修改用户信息
System.out.println("请输入要修改用户的id:");
int id=sc.nextInt();
System.out.println("请输入密码:");
String pwd=sc.next();
System.out.println("请输入职位:");
String position=sc.next();
User u=new User();
u.setId(id);
u.setPwd(pwd);
u.setPosition(position);
Boolean flag=userService.updateUser(u);
if(flag){
//修改成功
System.out.println("修改成功");
}else{
//修改失败
System.out.println("修改失败,可能是密码错误");
}
userView(user);
}else if(result == 4){
//删除用户信息
System.out.println("请输入要删除用户的id");
int id=sc.nextInt();
User u=new User();
u.setId(id);
Boolean flag=userService.delUser(u);
if(flag){
//删除成功
System.out.println("删除成功");
}else{
//删除失败
System.out.println("删除失败");
}
userView(user);
}else{
//返回上一级
}
}
public static void main(String[] args) {
Menu m=new Menu();
m.loginView();
}
}
UserService.java的代码为
package com.hyg.service;
import java.util.List;
import com.hyg.dao.UserDao;
import com.hyg.model.User;
public class UserService {
UserDao userDao=new UserDao();
/**
*
* @param userno 账号
* @param pwd 密码
* @return true 登录成功 false 登录失败
* user用户对象 存储用户数据
*/
public User login(String userno, String pwd) {
return userDao.login(userno,pwd);
}
public List<User> findUserList() {
// 查询用户列表,返回用户集合
return userDao.findUserList();
}
/**
* 添加用户
* @param u 用户对象
* @return true添加成功 false 添加失败
*/
public Boolean addUser(User u){
return userDao.addUser(u);
}
/**
* 修改用户职位
* @param
* @return
*/
public Boolean updateUser(User u){
return userDao.updateUser(u);
}
/**
* 删除用户信息
*/
public Boolean delUser(User u){
return userDao.delUser(u);
}
}
UserDao.java的代码为
package com.hyg.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.hyg.model.User;
public class UserDao extends BaseDao {
/**
*
* @param userno 账号
* @param pwd 密码
* @return true 登录成功 false 登录失败
*/
public User login(String userno, String pwd) {
String sql="select * from k_user where userno='"+userno+"'and pwd='"+pwd+"'";
try {
this.conn=this.getConn();
//获得数据库链接
this.ps=conn.prepareStatement(sql);
//获得命令执行对象
this.rs=ps.executeQuery();
//执行命令,查询命令
if(rs.next()){
String username=rs.getString("username");
String position=rs.getString("position");
int age=rs.getInt("age");
int id=rs.getInt("id");
User user=new User();
user.setId(id);
user.setUsername(username);
user.setUserno(userno);
user.setPwd(pwd);
user.setPosition(position);
user.setAge(age);
return user;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public List<User> findUserList() {
// 查询用户列表,返回用户集合
String sql="select * from k_user";
try {
this.conn=this.getConn();
//获得数据库链接
this.ps=conn.prepareStatement(sql);
//获得命令执行对象
this.rs=ps.executeQuery();
//执行命令,查询命令
List<User> list=new ArrayList<User>();
while(rs.next()){
String username=rs.getString("username");
String position=rs.getString("position");
int age=rs.getInt("age");
int id=rs.getInt("id");
String userno=rs.getString("userno");
String pwd=rs.getString("pwd");
User user=new User();
user.setId(id);
user.setUsername(username);
user.setUserno(userno);
user.setPwd(pwd);
user.setPosition(position);
user.setAge(age);
list.add(user);
}
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 添加用户
* @param u 用户对象
* @return true添加成功 false 添加失败
*/
public Boolean addUser(User u){
String sql="insert into k_user(userno,pwd) values('"+u.getUserno()+"','"+u.getPwd()+"')";
try {
this.conn=this.getConn();
//获得数据库链接
this.ps=conn.prepareStatement(sql);
//获得命令执行对象
int result=ps.executeUpdate();//返回受影响的行数
if(result>0){
//执行成功
return true;
}
//执行更新命令(添加、修改、删除)
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* 修改员工职位
* @param
* @return true 修改成功 false 修改失败
*/
public Boolean updateUser(User u){
String sql="UPDATE k_user set POSITION='"+u.getPosition()+"'WHERE id="+u.getId()+" and pwd='"+u.getPwd()+"'";
try {
this.conn=this.getConn();
//获得数据库链接
this.ps=conn.prepareStatement(sql);
//获得命令执行对象
int result=ps.executeUpdate();//返回受影响的行数
if(result>0){
//执行成功
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public Boolean delUser(User u){
String sql="DELETE from k_user where id=" + u.getId()+" ";
try {
this.conn=this.getConn();
//获得数据库链接
this.ps=conn.prepareStatement(sql);
//获得命令执行对象
int result=ps.executeUpdate();//返回受影响的行数
if(result>0){
//执行成功
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
}
BaseDao.java的代码为
package com.hyg.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
*
* 数据库访问基类
*
*/
public class BaseDao {
//数据库驱动
private String driver="com.mysql.jdbc.Driver";
//数据库地址
private String url="jdbc:mysql://localhost:3306/orcl?useUnicode=true&characterEncoding=UTF-8";
//数据库连接的账号
private String name="root";
//数据库连接的密码
private String pass="root";
Connection conn;//数据库链接
PreparedStatement ps;//执行命令SQL
ResultSet rs;//存储执行结果
/**
* 获得数据库链接的对象
* @return 数据链接对象
*/
public Connection getConn(){
try {
Class.forName(driver);
Connection conn=DriverManager.getConnection(url,name,pass);
return conn;
} catch (Exception e) {
//写入日志文件
//向控制台打印异常
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
new BaseDao().getConn();
}
}
User.java的代码为
package com.hyg.model;
/**
*
* 用户实体类(数据的载体,承载数据用)
*
*/
public class User {
private int id;//id
private String username;//姓名
private String userno;//账号
private String pwd;//密码
private String position;//职位
private int age;//年龄
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserno() {
return userno;
}
public void setUserno(String userno) {
this.userno = userno;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
//
this.pwd = pwd;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
版权声明:本文为wfr661原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。