在千锋“逆战”学习第43天
每日一句:程序员是值得尊敬的,程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。
今天学习了JDBC中的封装工具类、ORM、DAO和util包和SQL包下的日期类型转换。
明天继续努力。
用户管理系统
效果:
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:1
用户编号:
4
用户名:
黄紫霄
密码:
123465
出生日期:
1998-09-10
电子邮箱:
hzxabc123@126.com
地址:
河北秦皇岛
数据添加成功
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:4
输入需要查询的用户编号
4
用户编号:4, 用户姓名:黄紫霄, 用户密码:123465, 出生日期:1998-09-10, 电子邮箱:hzxabc123@126.com, 地址:河北秦皇岛
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:3
输入需要修改的用户的编号:
4
输入新的用户名:
黄紫霄2
输入新的密码:
123
输入新的出生日期:
1998-10-09
输入新的电子邮箱:
hzx123abc@qq.com
输入新的地址:
北京海淀
修改成功
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:4
输入需要查询的用户编号
4
用户编号:4, 用户姓名:黄紫霄2, 用户密码:123, 出生日期:1998-10-09, 电子邮箱:hzx123abc@qq.com, 地址:北京海淀
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:5
用户编号:1, 用户姓名:alex, 用户密码:123, 出生日期:1996-06-12, 电子邮箱:124abc@163.com, 地址:New
用户编号:2, 用户姓名:Yokio, 用户密码:12312, 出生日期:1994-05-11, 电子邮箱:abdc123@163.com, 地址:Tokyo
用户编号:3, 用户姓名:barry, 用户密码:12346, 出生日期:1994-06-24, 电子邮箱:flash@126.com, 地址:CenterCity
用户编号:4, 用户姓名:黄紫霄2, 用户密码:123, 出生日期:1998-10-09, 电子邮箱:hzx123abc@qq.com, 地址:北京海淀
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:2
输入注销用户编号:
4
用户注销成功
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:5
用户编号:1, 用户姓名:alex, 用户密码:123, 出生日期:1996-06-12, 电子邮箱:124abc@163.com, 地址:New
用户编号:2, 用户姓名:Yokio, 用户密码:12312, 出生日期:1994-05-11, 电子邮箱:abdc123@163.com, 地址:Tokyo
用户编号:3, 用户姓名:barry, 用户密码:12346, 出生日期:1994-06-24, 电子邮箱:flash@126.com, 地址:CenterCity
-----------选择对user表的操作-----------
1.增 2.删 3.改 4.查单个 5.查多个 0.退出
请选择:0
退出
部分代码:
public class TestMain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TestUser tu = new TestUser();
int choice = 0;
while (true) {
System.out.println("-----------选择对user表的操作-----------");
System.out.println("1.增 2.删 3.改 4.查单个 5.查多个 0.退出");
System.out.print("请选择:");
choice = sc.nextInt();
switch (choice) {
case 1:
tu.insertUser();
break;
case 2:
tu.deleteUser();
break;
case 3:
tu.updateUser();
break;
case 4:
tu.selectUser();
break;
case 5:
tu.selectAllUser();
break;
case 0:
System.out.println("退出");
return;
}
}
}
}
public class TestUser {
Scanner sc = new Scanner(System.in);
UserDaoImpl udi = new UserDaoImpl();
//增
public void insertUser(){
System.out.println("用户编号:");
int id = sc.nextInt();
System.out.println("用户名:");
String name = sc.next();
System.out.println("密码:");
String password = sc.next();
System.out.println("出生日期:");
Date borndate = DateUtils.strToUtilDate(sc.next());
System.out.println("电子邮箱:");
String email = sc.next();
System.out.println("地址:");
String address = sc.next();
User user = new User(id,name,password,borndate,email,address);
int result = udi.insert(user);
if(result>0){
System.out.println("数据添加成功");
}else {
System.out.println("数据添加失败");
}
}
//删
public void deleteUser(){
System.out.println("输入注销用户编号:");
int id = sc.nextInt();
int result = udi.delete(id);
if(result>0){
System.out.println("用户注销成功");
}else {
System.out.println("用户注销失败");
}
}
//改
public void updateUser(){
System.out.println("输入需要修改的用户的编号:");
int id = sc.nextInt();
System.out.println("输入新的用户名:");
String name = sc.next();
System.out.println("输入新的密码:");
String password = sc.next();
System.out.println("输入新的出生日期:");
Date borndate = DateUtils.strToUtilDate(sc.next());
System.out.println("输入新的电子邮箱:");
String email = sc.next();
System.out.println("输入新的地址:");
String address = sc.next();
User user = new User(id,name,password,borndate,email,address);
int result = udi.update(user);
if(result>0){
System.out.println("修改成功");
}else {
System.out.println("修改失败");
}
}
//查单个
public void selectUser(){
System.out.println("输入需要查询的用户编号");
int id = sc.nextInt();
User user = udi.select(id);
System.out.println(user);
}
//查多个
public void selectAllUser(){
List<User> user = udi.selectAll();
Object[] userList = user.toArray();
for(int i=0;i<userList.length;i++){
System.out.println(userList[i]);
}
}
}
public class UserDaoImpl {
private Connection connection = null;
private PreparedStatement preparedStatement = null;
private ResultSet resultSet = null;
//增
public int insert(User user) {
try {
connection = DBUtils.getConnection();
String sql = "insert into user(user_id,user_name,user_pwd,user_borndate,user_email,user_address) values (?,?,?,?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, user.getUser_id());
preparedStatement.setString(2, user.getUser_name());
preparedStatement.setString(3, user.getUser_pwd());
preparedStatement.setDate(4, DateUtils.utilToSql(user.getUser_borndate()));
preparedStatement.setString(5, user.getUser_email());
preparedStatement.setString(6, user.getUser_address());
return preparedStatement.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtils.closeAll(connection, preparedStatement, null);
}
return 0;
}
//删
public int delete(int user_id) {
connection = DBUtils.getConnection();
String sql = "delete from user where user_id = ?";
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, user_id);
return preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.closeAll(connection, preparedStatement, resultSet);
}
return 0;
}
//改
public int update(User user) {
connection = DBUtils.getConnection();
String sql = "update user set user_name = ?,user_pwd = ?,user_borndate = ?,user_email = ?,user_address = ? where user_id = ?";
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, user.getUser_name());
preparedStatement.setString(2, user.getUser_pwd());
preparedStatement.setDate(3, DateUtils.utilToSql(user.getUser_borndate()));
preparedStatement.setString(4, user.getUser_email());
preparedStatement.setString(5, user.getUser_address());
preparedStatement.setInt(6, user.getUser_id());
return preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.closeAll(connection, preparedStatement, resultSet);
}
return 0;
}
//查单个
public User select(int user_id) {
connection = DBUtils.getConnection();
String sql = "select user_id,user_name,user_pwd,user_borndate,user_email,user_address from user where user_id = ?";
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, user_id);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("user_id");
String name = resultSet.getString("user_name");
String password = resultSet.getString("user_pwd");
Date borndate = resultSet.getDate("user_borndate");
String email = resultSet.getString("user_email");
String address = resultSet.getString("user_address");
User user = new User(id, name, password, borndate, email, address);
return user;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.closeAll(connection, preparedStatement, resultSet);
}
return null;
}
//查多个
public List<User> selectAll() {
connection = DBUtils.getConnection();
String sql = "select user_id,user_name,user_pwd,user_borndate,user_email,user_address from user";
List<User> userList = new ArrayList<>();
try {
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("user_id");
String name = resultSet.getString("user_name");
String password = resultSet.getString("user_pwd");
Date borndate = resultSet.getDate("user_borndate");
String email = resultSet.getString("user_email");
String address = resultSet.getString("user_address");
User user = new User(id, name, password, borndate, email, address);
userList.add(user);
}
return userList;
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.closeAll(connection, preparedStatement, resultSet);
}
return null;
}
}