Java 数据库 用户管理系统 精简版


public class User {
	private Integer id;
	private String name;
	private Integer age;
	private String sex;
	private Integer phone;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Integer getPhone() {
		return phone;
	}
	public void setPhone(Integer phone) {
		this.phone = phone;
	}
	public User(String name, Integer age, String sex, Integer phone) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.phone = phone;
	}
	public User(Integer id, String name, Integer age, String sex, Integer phone) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.phone = phone;
	}
	public User() {
		super();
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", phone=" + phone + "]";
	}
	
}

import java.sql.Connection;
import java.sql.DriverManager;

public class DBUtil {
	//定义URL变量
		private static String url="jdbc:mysql://localhost:3306/user";
		//定义用户名变量
		private static String user="root";
		//定义密码变量
		private static String password="root";
		//创建链接对象
		private static Connection conn=null;
		//通过静态代码块的形式来实现
		static {
			//注册驱动
			try {
				Class.forName("com.mysql.jdbc.Driver");
				conn = DriverManager.getConnection(url,user,password);
			} catch (Exception e) {
				e.printStackTrace();
			}
			
		}
		//创建方法,把连接对象返回,这样就有了值
		public static Connection getConnection(){
			return conn;
		}
}
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.fei.www_Do.DBUtil;
import com.fei.www_Entity.User;

public class UserDao {
	private  boolean flager;//存在
	public boolean isFlager() {
		return flager;
	}
	public void setFlager(boolean flager) {
		this.flager = flager;
	}
	//添加功能
	public void add(User user) throws Exception{
		//获得连接对象
		Connection conn=DBUtil.getConnection();
		//编写Sql语句
		String sql="insert into user(name,age,sex,phone)"+" values(?,?,?,?)";
		//预编译
		PreparedStatement ptmp = conn.prepareStatement(sql);
		//两个参数,第一个:值字段位置;第二个:具体数据
		ptmp.setString(1, user.getName());
		ptmp.setInt(2, user.getAge());
		ptmp.setString(3, user.getSex());
		ptmp.setInt(4, user.getPhone());
		//需要执行,调用执行方法
		ptmp.execute();
		
	}
	//删除
	public void delete(int id) throws Exception{
		//获得连接对象
		Connection conn=DBUtil.getConnection();
		//拼写sql语句
		String sql="delete from user where id=?";
		//预编译
		CallableStatement ptmp = conn.prepareCall(sql);
		//设置参数
		ptmp.setInt(1, id);
		//执行
		ptmp.execute();
		
	}
	//更新(修改)功能
	public void update(User user) throws Exception{
		//获得连接对象
		Connection conn=DBUtil.getConnection();
		//拼写sql语句
		String sql="update user set name=?,age=?,sex=?,phone=? where id=?";
		//预编译
		CallableStatement ptmp = conn.prepareCall(sql);
		//设置参数
		ptmp.setString(1, user.getName());
		ptmp.setInt(2, user.getAge());
		ptmp.setString(3, user.getSex());
		ptmp.setInt(4, user.getPhone());
		
		ptmp.setInt(5, user.getId());
		//执行
		ptmp.execute();
		
	}
	/**
	 *                单个查询
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public User findId(int id) throws Exception{
		//获得连接对象
		Connection conn=DBUtil.getConnection();
		//拼写sql语句
		String sql="select * from user where id=?";
		//预编译
		CallableStatement ptmp = conn.prepareCall(sql);
		//设置参数
		ptmp.setInt(1,id);
		//接收结果集
		ResultSet rs = ptmp.executeQuery();
		User user=null;
		while(rs.next()){
			//拿到需要的数据
			String name =rs.getString("name");
			Integer age=rs.getInt("age");
			String sex=rs.getString("sex");
			Integer phone=rs.getInt("phone");
			//创建对象,传参
			user=new User(id,name, age, sex, phone);
		}
		return user;
	}
	
	
	//查询所有
	public List<User> queryUserList() throws Exception{
		//创建集合
		List<User> list = new ArrayList<User>();
		User user=null;
		//查询数据库数据获得连接
		Connection conn=DBUtil.getConnection();
		
		//拿到链接操作对象
		Statement stmp = conn.createStatement();
		//定义SQL语句
		String sql="select * from user";
		//通过对象执行sql语句,拿到结果  (拿到的是一个结果集)
		ResultSet rs = stmp.executeQuery(sql);
		//拿到结果集后,进行数据操作,数据处理  while循环
		while(rs.next()){
			//拿到数据
			Integer id=rs.getInt("id");
			String name = rs.getString("name");
			Integer age = rs.getInt("age");
			String sex = rs.getString("sex");
			Integer phone = rs.getInt("phone");
			//创建一个实体类对象  传入拿到的每一个数据
			user=new User(id, name, age, sex, phone);
			//添加进集合
			list.add(user);
		}
		//返回集合
		return list;
	}
	
	/**
	 *                根据姓名查询
	 * @return
	 * @throws Exception
	 */
	
	//传值查询
	
	public List<User> queryUserList(List<Map<String,Object>> list) throws Exception{
		//创建集合
		List<User> userList = new ArrayList<User>();
		User user=null;
		//查询数据库数据获得连接
		Connection conn=DBUtil.getConnection();
		
		//拿到链接操作对象
		Statement stmp = conn.createStatement();
		//定义SQL语句
		String sql="select * from user where 1 = 1";
		
		//拼接sql语句
		//思路:在list中取出map
		//    在map中取出对应的值放在sql语句中
		if(list!=null&&list.size()>0){
			//在list中取出每一个map
			for(int i = 0;i<list.size();i++){
				//在map中取出键值对
				Map<String,Object> map=list.get(i);
				//给定一个固定格式的key值
				sql=sql+" and "+map.get("name")+" "+map.get("rela")+" "+map.get("value")+" ";
				
			}
			//sql的注入:“or 1=1”
			
		}
		//通过对象执行sql语句,拿到结果  (拿到的是一个结果集)
		ResultSet rs = stmp.executeQuery(sql);
		
		
		//拿到结果集后,进行数据操作,数据处理  while循环
		while(rs.next()){
			//拿到数据
			Integer id=rs.getInt("id");
			String name = rs.getString("name");
			Integer age = rs.getInt("age");
			String sex = rs.getString("sex");
			Integer phone = rs.getInt("phone");
			//创建一个实体类对象  传入拿到的每一个数据
			user=new User(id, name, age, sex, phone);
			//添加进集合
			userList.add(user);
		}
		//返回集合
		return userList;
	}
	
	
	
	//是否存在用户
	public boolean isExist(int id) throws Exception{
		
		this.setFlager(false);
		
		//创建集合
		List<User> list = new ArrayList<User>();
		User user=null;
		//查询数据库数据获得连接
		Connection conn=DBUtil.getConnection();
		//拿到链接操作对象
		Statement stmp = conn.createStatement();
		//定义SQL语句
		String sql="select * from user";
		//通过对象执行sql语句,拿到结果  (拿到的是一个结果集)
		ResultSet rs = stmp.executeQuery(sql);
		//拿到结果集后,进行数据操作,数据处理  while循环
		while(rs.next()){
			//拿到数据
			Integer id2=rs.getInt("id");
			String username = rs.getString("name");
			Integer age = rs.getInt("age");
			String sex=rs.getString("sex");
			Integer phone=rs.getInt("phone");
			//创建一个实体类对象  传入拿到的每一个数据
			user=new User(id2, username, age, sex, phone);
			//添加进集合
			list.add(user);
		}
		//返回
		for (User user2 : list) {
			if(id==user2.getId()){
				this.setFlager(true);
			}
		}
		
		
		return this.isFlager();
	}
	
	
public boolean isExist(String name) throws Exception{
		
		this.setFlager(false);
		
		//创建集合
		List<User> list = new ArrayList<User>();
		User user=null;
		//查询数据库数据获得连接
		Connection conn=DBUtil.getConnection();
		//拿到链接操作对象
		Statement stmp = conn.createStatement();
		//定义SQL语句
		String sql="select * from user";
		//通过对象执行sql语句,拿到结果  (拿到的是一个结果集)
		ResultSet rs = stmp.executeQuery(sql);
		//拿到结果集后,进行数据操作,数据处理  while循环
		while(rs.next()){
			//拿到数据
			Integer id2=rs.getInt("id");
			String username = rs.getString("name");
			Integer age = rs.getInt("age");
			String sex=rs.getString("sex");
			Integer phone=rs.getInt("phone");
			//创建一个实体类对象  传入拿到的每一个数据
			user=new User(id2, username, age, sex, phone);
			//添加进集合
			list.add(user);
		}
		//返回
		for (User user2 : list) {
			if(name.equals(user2.getName())){
				this.setFlager(true);
			}
		}
		
		
		return this.isFlager();
	}
	
}

import java.util.List;
import java.util.Map;

import com.fei.www_Entity.User;

public class UserAction {
	static UserDao userDao=new UserDao();//创建dao对象
	// 增加方法
		public void add(User user) throws Exception {
			
			//调用添加方法
			userDao.add(user);
		}
		
		// 删除方法
		public void delete(Integer id) throws Exception {
			
			//调用删除方法
			userDao.delete(id);
		}
		
		// 更新方法
		public void update(User user) throws Exception {
			
			
			//调用更新方法
			userDao.update(user);
			
		}
		//查看所有
		public List<User> queryUserList()throws Exception {
			List<User> list=userDao.queryUserList();
		return list;
		}
		
		//查看单个
		public User findId(int id) throws Exception{
			User user=userDao.findId(id);
			return user;
		}
		
		//是否存在
		public boolean isExist(int id) throws Exception{
			userDao.isExist(id);
			return userDao.isFlager();
		}
		
		public boolean isExist(String name) throws Exception{
			userDao.isExist(name);
			return userDao.isFlager();
		}
		//名字查询
		public List<User> queryUserList(List<Map<String,Object>> list) throws Exception{
			List<User> lister=userDao.queryUserList(list);
			return lister;
		}
}


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

import com.fei.www_Action.UserAction;
import com.fei.www_Entity.User;

public class UserView {
	private static final String CONTEXT="欢迎来到用户管理系统   \n " +
			"[1]:主菜单\n" +
			"[2]:查看全部用户的信息\n" +
			"[3]:查看某位用户的详细信息\n" +
			"[4]:添加用户信息\n" +
			"[5]:更新用户信息\n" +
			"[6]:删除用户信息\n" +
			"[7]:查询用户信息(根据姓名来查询)\n" +
			"[8]:退出用户系统\n" +
			"[9]:退出当前功能,返回主菜单";
	
	static Scanner sc = new Scanner(System.in);
	static UserAction ua = new UserAction();
	
	public static void main(String[] args) throws Exception {
		
		String isGoOn="0";//是否继续,0继续,1或其他字符不继续
		String choice;//选择
		boolean i=true;
		
		while(isGoOn.equals("0")){
			System.out.println(CONTEXT);
			System.out.println("请输入你的选择:");
			choice=sc.next();
			switch(choice){
			
			case "1"://主菜单
				System.out.println(CONTEXT);
				System.out.println("请输入你的选择:");
				choice=sc.next();
				if(choice.equals("8")){
					i=false;
					isGoOn="1";
					
				}
				break;
				
			case "2"://查看全部用户的信息
				List<User> list=ua.queryUserList();
				for (User user1 : list) {
					System.out.println(user1);
				}
				break;
				
			case "3"://查看某位用户的详细信息
				System.out.println("请输入要查找的用户的id:");
				Integer ids=sc.nextInt();
				boolean is=ua.isExist(ids);
				
				if(is==false){
					System.out.println("查询无果,该用户或不存在!");
				}else{
					User user=ua.findId(ids);
					System.out.println(user);
					
				}
				break;
				
			case "4"://添加用户信息
				System.out.println("请输入用户姓名:");
				String name=sc.next();
				System.out.println("请输入用户年龄:");
				Integer age=sc.nextInt();
				System.out.println("请输入用户性别:");
				String sex=sc.next();
				System.out.println("请输入用户电话:");
				Integer phone=sc.nextInt();
				User user=new User(name, age, sex, phone);
				
				ua.add(user);
				System.out.println("用户信息保存成功!");
				break;
				
			case "5"://更新用户信息
				System.out.println("请输入要修改的用户的id:");
				Integer id=sc.nextInt();
				boolean is1=ua.isExist(id);
				
				if(is1==false){
					System.out.println("查询无果,该用户或不存在!");
				}else{
				System.out.println("请输入用户姓名:");
				String name1=sc.next();
				System.out.println("请输入用户年龄:");
				Integer age1=sc.nextInt();
				System.out.println("请输入用户性别:");
				String sex1=sc.next();
				System.out.println("请输入用户电话:");
				Integer phone1=sc.nextInt();
				User user1=new User(id, name1, age1, sex1, phone1);
				ua.update(user1);
				System.out.println("修改成功!");
				}
				break;
				
			case "6"://删除用户信息
				System.out.println("请输入要删除的用户的id:");
				Integer id1=sc.nextInt();
				boolean is11=ua.isExist(id1);
				
				if(is11==false){
					System.out.println("查询无果,该用户或不存在!");
				}else{
				ua.delete(id1);
				System.out.println("删除成功!");
				}
				break;
				
			case "7"://查询用户信息(根据姓名)
				System.out.println("请输入要查询的用户的姓名:");
				String name1=sc.next();
				boolean iss=ua.isExist(name1);
				if(iss==false){
					System.out.println("查询无果,该用户或不存在!");
				}else{
					List<Map<String,Object>> mapList=new ArrayList<Map<String,Object>>();
					Map<String,Object> map=new HashMap<>();
					map.put("name", "name");
					map.put("rela", "like");
					map.put("value", "'%"+name1+"%'");
					mapList.add(map);
					List<User> list1 = ua.queryUserList(mapList);
					for (User user1 : list1) {
						System.out.println(user1);
					}
				}
				
				break;
				
			case "8"://退出用户系统
				isGoOn="1";
				i=false;
				
				break;

				default:
					System.out.println("输入错误,未找到指定功能!");
					break;
			}
			if(i){
			System.out.println("是否继续?0继续,其他不继续:");
			isGoOn=sc.next();
			}
			
		}
		System.out.println("退出用户系统!");
		
		
		
	}




}





版权声明:本文为Alaunitas原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。