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版权协议,转载请附上原文出处链接和本声明。