一个小白的大数据实训过程JavaSEday05

昨天偷懒晚上没敲代码,今天把老师留下的作业:剩下的部分敲完,把完整的代码放上来,以下是一个简单的用户登录查询。功能没写完,因为只是为了熟悉继承,函数和方法的调用,JDBC等,所以写的很简单。

(1)Menu类 视图层

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 {
	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) { //括号里直接写re也可以
				//登录成功
				System.out.println("进入首页!");
				indexView(user);
			}else {
				//登录失败,重新调用登录界面
				loginView();
			}
		
		}else {
			//退出
			System.out.println("您已退出系统!");
		}
	}
	
	/*首页
	 * 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") ){
	    	//这儿没写!!!3.3 3.4 3.5 都没写!!!
	    }
	}
	
	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年龄");
			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 flagtwo = userService.updateUser(u);
	    	if(flagtwo) {
	    		//修改成功
	    		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 flagthree = userService.deleteUser(u);
	    	if(flagthree) {
	    		//删除成功
	    		System.out.println("删除成功!");
	    	}else {
	    		//删除失败
	    		System.out.println("删除失败!");
	    	}
	    	userView(user); //调用当前方法继续进行
	    	  	
	    }else {
	    	indexView(user);
	    }
	}
	
	public static void main(String[] args) {		
		Menu m =new Menu();
		m.loginView();
	}

}

(2)UserService

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();
	/*
	 * 用户登录
	 * userno 用户名
	 * pwd 密码
	 * return true 登录成功  return false 登录失败
	 */
	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);
	}

	public Boolean updateUser(User u) {
		// TODO Auto-generated method stub
		return userDao.updateUser(u);
	}

	public Boolean deleteUser(User u) {
		// TODO Auto-generated method stub
		return userDao.deleteUser(u);
	}	
	
}

(3)User

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) {
		//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) {
		this.age = age;
	}
}

(4)UserDao

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{
	
	
	/*
	 * 用户登录
	 * userno 用户名
	 * pwd 密码
	 * return User用户对象,存储用户数据
	 */
	public User login(String userno, String pwd) {
		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()) {//如果有下一条数据
				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();
		}

		return null;
	}

	/*
	 * 查询用户列表
	 * 返回用户集合
	 */
	public List<User> findUserList() {

		String sql="select * from k_user ";
		
		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()) {//如果有下一条数据
				String username = rs.getString("username");  //username表的列名,不区分大小写
				String position = rs.getString("position");  //职位
				String userno = rs.getString("userno");
				String pwd = rs.getString("pwd");
				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);
						
				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 {
			
			//1、获得数据库连接
			this.conn = this.getConn();
			//2、获得命令执行对象
			this.ps = conn.prepareStatement(sql);
			//3、执行命令
			int result = ps.executeUpdate();  //涉及到数据库“更新(添加,修改,删除)”的全用这个
			    //返回受影响的行数
			if(result >0 ){ //result == 1 也可以
				//执行成功
				return true;
			}		
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;	
	}

	public Boolean updateUser(User u) {
		String sql="update k_user set pwd = '"+u.getPwd()+"' , position = '"+u.getPosition()+"' where id = '"+u.getId()+"'";
		//注意变量跟字符串的拼接
	
		try {
			
			//1、获得数据库连接
			this.conn = this.getConn();
			//2、获得命令执行对象
			this.ps = conn.prepareStatement(sql);
			//3、执行命令
			int result = ps.executeUpdate();  //涉及到数据库“更新(添加,修改,删除)”的全用这个
			    //返回受影响的行数
			if(result >0 ){ //result == 1 也可以
				//执行成功
				return true;
			}		
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;	
	}

	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 ){ //result == 1 也可以
				//执行成功
				return true;
			}		
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;	
	}
	
}

(5)BaseDao

package com.hyg.dao;

//import java.sql.*;    只写这个也可以,不用剩下这几个都写了
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";	
	//地址(ip、端口、数据库名称)
	private String url="jdbc:mysql://localhost:3306/orcl?useUnicode=true&charcterEncoding=UTF-8"; //这里的localhost可能改成mysql
	//数据库连接账号
	private String name = "root";
	//数据库连接密码
	private String pass = "123456";
	
	
	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) {
			//写入日志文件
			//向控制台打印异常
			e.printStackTrace();
		}	
		return null;	
	}
	
	public static void main(String[] args) {
		new BaseDao().getConn();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值