Java SE 学习笔记8 库存管理代码

一、项目构成

在这里插入图片描述

二、BaseDao.java

package com.hyg.dao;
//import java.sql.*;//降低效率,占内存
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * 数据库访问基类
 * @author Administrator
 *
 */
public class BaseDao {	
	//数据库驱动,全路径,包名类名
	private String driver="com.mysql.jdbc.Driver";
	//地址(IP、端口、数据库名称)
	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;
   			//return DriverManager.getConnection(url, name, pass);
		} catch (Exception e) {
   			// TODO Auto-generated catch block
   			//写入日志文件 
   			//向控制台打印异常
  			e.printStackTrace();
  		}
  		return null;
  	}
	/**
  	 * 关闭相应对象(rs,ps,conn)
  	 */
  	public void closeAll(){
  		try {
  			if(rs!=null) {
    				rs.close();//关闭对象(释放资源)
    				rs=null;
    			}
    			if(ps!=null) {
    				ps.close();//关闭对象(释放资源)
    				rs=null;
    			}
    			if(conn!=null) {
    				conn.close();//关闭对象(释放资源)
    				rs=null;
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
 	public static void main(String[] args) {
  		new BaseDao().getConn();
 	}
}

三、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登录失败
  * User用户对象,存储用户数据
  */
	//login登录方法
 	public User login(String userno, String pwd) {
  		// TODO Auto-generated method stub
  		String sql="select * from k_user where userno='"+userno+"' and pwd='"+pwd+"' ";
  		//String sql="select * from k_user where userno=? and pwd=? ";
		try {
   			//1.获得数据库连接
   			this.conn=this.getConn();
   			//2.获得命令执行对象
   			this.ps=conn.prepareStatement(sql);
   			//3.执行命令(执行查询命令)
   			this.rs=ps.executeQuery();
   			//4.处理结果
   			if(rs.next()) {//如果有下一条数据,从第0条开始
   				String username=rs.getString("username");//username指的是表的列名
    				String position=rs.getString("position");//职位
    				int age=rs.getInt("age");//年龄
    				int id=rs.getInt("id");//用户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();
    		}finally{
    		this.closeAll();
    	}
    		return null;
    	}
    	/**
  	 * 查询用户列表
 	 * @return 用户集合
 	 */

 	public List<User> findUserList() {
   		//String sql="select * from k_user";  
   		//显示部门名称
   		String sql="select u.*,d.deptname from k_user u,k_dept d where d.deptno=u.deptno";
		try {
   			//1.获得数据库连接
  			 this.conn=this.getConn();
   			//2.获得命令执行对象
   			this.ps=conn.prepareStatement(sql);
  			//3.执行命令(执行查询命令)
   			this.rs=ps.executeQuery();
   			//4.处理结果
   			List<User> list=new ArrayList<User>();//集合创建一次
   			while(rs.next()) {//如果有下一条数据,从第0条开始
   				String username=rs.getString("username");//username指的是表的列名
    				String position=rs.getString("position");//职位
    				int age=rs.getInt("age");//年龄
    				int id=rs.getInt("id");//用户ID
    				String userno=rs.getString("userno");//账号
    				String pwd=rs.getString("pwd");//密码
    				String deptName=rs.getString("deptname");//部门名称
    				
    				User user=new User();//类名首字母大写
    				user.setId(id);
    				user.setUsername(username);
    				user.setUserno(userno);
    				user.setPwd(pwd);
    				user.setPosition(position);
    				user.setAge(age);
    				user.setDeptName(deptName);
    				
    				list.add(user);
    			}
    			return list;//循环外创建集合,返回集合
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally{
    			this.closeAll();
    		}
    		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()+"')";
  		//String sql="select * from k_user where userno=? and pwd=? ";
  		try {
   			//1.获得数据库连接
   			this.conn=this.getConn();
   			//2.获得命令执行对象
   			this.ps=conn.prepareStatement(sql);
   			//3.执行更新命令(执行添加、修改、删除 命令)
   			int result=ps.executeUpdate();//返回受影响的行数
   			if (result>0) {
    				//执行成功
    				return true;
    			}
    		} catch (Exception e) {
   			// TODO Auto-generated catch block
   			e.printStackTrace();
  		}finally {
   			this.closeAll();
   		}
  		return false;
  	}
  	/**
  	 * 修改用户
  	 * @param u 用户对象
 	 * @return
 	 */
 	 public Boolean updateUser(User u) {
  		//String sql="update k_user set pwd='"+u.getPwd()+"',position='"+u.getPosition()+"' where id="+u.getId();
  		String sql="update k_user set pwd=?,position=? where id=?";
  		try {
   			//1.获得数据库连接
   			this.conn=this.getConn();
   			//2.获得命令执行对象
   			this.ps=conn.prepareStatement(sql);

			ps.setString(1, u.getPwd());
			ps.setString(2,u.getPosition());
			ps.setInt(3, u.getId());

   			//3.执行更新命令(执行添加、修改、删除 命令)
   			int result=ps.executeUpdate();//返回受影响的行数
   			if (result>0) {
    				//执行成功
    				return true;
    			}
  		} catch (Exception e) {
   			// TODO Auto-generated catch block
   			e.printStackTrace();
  		}finally{
  			this.closeAll();
  		}
  		return false;
  	}
  /**
   * 删除用户
   * @param u 用户对象
   * @return
   */
   public Boolean deleteUser(User u) {
  	String sql="delete from k_user where ID="+u.getId();
  	try {
   		//1.获得数据库连接
   		this.conn=this.getConn();
  		//2.获得命令执行对象
   		this.ps=conn.prepareStatement(sql);
   		//3.执行更新命令(执行添加、修改、删除 命令)
   		int result=ps.executeUpdate();//返回受影响的行数
   		if (result>0) {
    			//执行成功
    			return true;
    		}
    	} catch (Exception e) {
   	// TODO Auto-generated catch block
   	e.printStackTrace();
   	}finally {
   		this.closeAll();
   	}
   	return false;
   }
}

四、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;//年龄
 	private String deptName;//部门名称
 	
 	//get set 取值 赋值
 	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) {
  		//pwd逻辑代码
  		this.pwd = pwd;
 	}
 	public String getPosition() {
  		//position中间四位隐藏,用****代替
  		return position;
 	}
 	public void setPosition(String position) {
  		this.position = position;
 	}
 	public int getAge() {
  		return age;
 	}
 	public void setAge(int age) {
  		//if判断年龄范围
  	this.age = age;
 	}
 	public String getDeptName() {
  		return deptName;
 	}
 	public void setDeptName(String deptName) {
  		this.deptName = deptName;
 	}
 }

五、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登录失败
  	 */
  	 public User login(String userno, String pwd) {
  		// TODO Auto-generated method stub
  		//处理业务逻辑,密码加密等
  		return userDao.login(userno,pwd);
 	}
 	/**
  	 * 查询用户列表
 	 * @return 用户集合
 	 */
 	public List<User> findUserList() {
		return userDao.findUserList();
 	}
 	/**
  	 * 添加用户
  	 * @param u 用户对象
  	 * @return true 添加成功 false 添加失败
  	 */
  	 public Boolean addUser(User u) {
  		// TODO Auto-generated method stub
  		return userDao.addUser(u);
 	}
 	/**
 	 * 修改用户
 	 * @param u 用户对象
	 * @return
 	 */
 	 public Boolean updateUser(User u) {
  		// TODO Auto-generated method stub
  		return userDao.alterUser(u);
 	}
 	/**
 	 * 删除用户
 	 * @param u 用户对象
	 * @return
	 */
	 public Boolean deleteUser(User u) {
  		// TODO Auto-generated method stub
  		return userDao.deleteUser(u);
 	}
 }

六、Menu.java

package com.hyg.view;
import java.util.Scanner;
import java.util.List;
import com.hyg.model.User;
import com.hyg.service.UserService;
public class Menu {
	/**
  	 * 用户登录
  	 */
  	Scanner sc=new Scanner(System.in);
 	UserService userService=new UserService();
 	public void loginView() {
 		System.out.println("-----------欢迎进入库存管理系统!-------------");
  		System.out.println("----------------1.登录-----------------------");
  		System.out.println("----------------2.退出-----------------------");
  		System.out.println("请输入要进行的操作:");
  		int result=sc.nextInt();//获取用户控制台输入的整数
  		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("您已退出系统!");
  		}
  	}
  	/**
  	 * 首页
  	 * @param user当前登陆的用户对象
  	 */
  	 public  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 result=sc.next();//获取用户选择
     		if (result.equals("3.1")) {
      			//进入用户管理
      			userView(user);
      		} else if(result.equals("3.2")){
   			//进入部门管理
   		}
   	}
   	/**
  	 * 用户管理
 	 * @param user 当前录的用户对象
  	 */
  	 public 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()+"\t"+u.getDeptName());
   			}
   			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.deleteUser(u);
   			if (flag) {
    				//修改成功
    				System.out.println("删除成功!");
    			} else {
    				//修改失败
    				System.out.println("删除失败!");
    			}
    			userView(user);//调用当前方法,继续进行
    		}else {
   			//返回上一级
   			indexView (user);
   		}
   	}
   	public static void main(String[] args) {
  		Menu m= new Menu();
  		m.loginView();
 	}
 }
 		

猜你喜欢

转载自blog.csdn.net/zhangzhang__yan/article/details/107720554