完成并详细注释题目一根据之前在学习mysql的时候的emp表和dept表1 CREATE TABLE emp2 empno INT3 ename VARCHAR504 job VARCHAR505 mgr INT6 hiredate DATE7 sal DECIMAL728 comm decimal729 deptno INT10 ;111213 INSERT INTO emp values73
// 题目一
import java.sql.*; import java.util.ArrayList; import java.util.List;
public class EmployeeDao { private Connection conn;
public EmployeeDao() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
// 1. 编写方法接收一个员工编号和工资两个参数,方法内将指定编号的员工工资修改为新的工资。
public boolean updateSalary(int empno, double salary) {
try {
PreparedStatement ps = conn.prepareStatement("update emp set sal = ? where empno = ?");
ps.setDouble(1, salary);
ps.setInt(2, empno);
int result = ps.executeUpdate();
ps.close();
return result > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
// 2. 编写方法查询指定职位所有员工的信息,返回List<Employee>集合。
public List<Employee> findByJob(String job) {
List<Employee> employees = new ArrayList<>();
try {
PreparedStatement ps = conn.prepareStatement("select * from emp where job = ?");
ps.setString(1, job);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Employee employee = new Employee();
employee.setEmpno(rs.getInt("empno"));
employee.setEname(rs.getString("ename"));
employee.setJob(rs.getString("job"));
employee.setMgr(rs.getInt("mgr"));
employee.setHiredate(rs.getDate("hiredate"));
employee.setSal(rs.getDouble("sal"));
employee.setComm(rs.getDouble("comm"));
employee.setDeptno(rs.getInt("deptno"));
employees.add(employee);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return employees;
}
// 3. 编写方法查询指定姓名的员工信息,返回Employee对象。
public Employee findByName(String name) {
try {
PreparedStatement ps = conn.prepareStatement("select * from emp where ename = ?");
ps.setString(1, name);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
Employee employee = new Employee();
employee.setEmpno(rs.getInt("empno"));
employee.setEname(rs.getString("ename"));
employee.setJob(rs.getString("job"));
employee.setMgr(rs.getInt("mgr"));
employee.setHiredate(rs.getDate("hiredate"));
employee.setSal(rs.getDouble("sal"));
employee.setComm(rs.getDouble("comm"));
employee.setDeptno(rs.getInt("deptno"));
rs.close();
ps.close();
return employee;
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
// 4. 编写方法根据员工姓名删除指定的员工信息。
public boolean deleteByName(String name) {
try {
PreparedStatement ps = conn.prepareStatement("delete from emp where ename = ?");
ps.setString(1, name);
int result = ps.executeUpdate();
ps.close();
return result > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
// 5. 编写方法查询所有姓张员工的工资并输出在控制台,输出格式如下: 张三=10000 张飞=20000 ………………….
public void printSalaryByZhang() {
try {
PreparedStatement ps = conn.prepareStatement("select ename,sal from emp where ename like '张%'");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("ename") + "=" + rs.getDouble("sal"));
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 6. 编写方法接收一个工资参数,方法内查询工资大于等于传入的工资的员工,返回符合条件所有员工信息List<Employee>集合。
public List<Employee> findBySalary(double salary) {
List<Employee> employees = new ArrayList<>();
try {
PreparedStatement ps = conn.prepareStatement("select * from emp where sal >= ?");
ps.setDouble(1, salary);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Employee employee = new Employee();
employee.setEmpno(rs.getInt("empno"));
employee.setEname(rs.getString("ename"));
employee.setJob(rs.getString("job"));
employee.setMgr(rs.getInt("mgr"));
employee.setHiredate(rs.getDate("hiredate"));
employee.setSal(rs.getDouble("sal"));
employee.setComm(rs.getDouble("comm"));
employee.setDeptno(rs.getInt("deptno"));
employees.add(employee);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return employees;
}
// 7. 编写方法查询指定部门的所有员工信息,返回List<Employee>集合
public List<Employee> findByDeptno(int deptno) {
List<Employee> employees = new ArrayList<>();
try {
PreparedStatement ps = conn.prepareStatement("select * from emp where deptno = ?");
ps.setInt(1, deptno);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Employee employee = new Employee();
employee.setEmpno(rs.getInt("empno"));
employee.setEname(rs.getString("ename"));
employee.setJob(rs.getString("job"));
employee.setMgr(rs.getInt("mgr"));
employee.setHiredate(rs.getDate("hiredate"));
employee.setSal(rs.getDouble("sal"));
employee.setComm(rs.getDouble("comm"));
employee.setDeptno(rs.getInt("deptno"));
employees.add(employee);
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return employees;
}
}
// 题目二
import java.util.Scanner;
public class UserSystem { private UserService userService = new UserService();
public static void main(String[] args) {
UserSystem userSystem = new UserSystem();
userSystem.start();
}
public void start() {
System.out.println("欢迎使用用户管理系统");
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择编号实现对应的功能:");
System.out.println("1 登录");
System.out.println("2 注册");
System.out.println("3 修改密码");
int choice = scanner.nextInt();
switch (choice) {
case 1:
login(scanner);
break;
case 2:
register(scanner);
break;
case 3:
changePassword(scanner);
break;
default:
System.out.println("输入有误,请重新选择!");
}
}
}
private void login(Scanner scanner) {
System.out.println("请输入用户名:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
if (userService.login(username, password)) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码不正确,登录失败,请重新登录!");
}
}
private void register(Scanner scanner) {
System.out.println("请输入用户名:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
System.out.println("请输入性别:");
String gender = scanner.next();
System.out.println("请输入地址:");
String address = scanner.next();
if (userService.register(username, password, gender, address)) {
System.out.println("注册成功!");
} else {
System.out.println("注册失败,请重新输入用户名!");
}
}
private void changePassword(Scanner scanner) {
System.out.println("请输入用户名:");
String username = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
if (userService.login(username, password)) {
System.out.println("登录成功,欢迎使用本系统!");
System.out.println("请输入新密码:");
String newPassword = scanner.next();
userService.changePassword(username, newPassword);
System.out.println("密码修改成功!");
} else {
System.out.println("用户名或密码不正确,请重新输入!");
}
}
}
import java.sql.*;
public class UserDao { private Connection conn;
public UserDao() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
public boolean register(User user) {
try {
PreparedStatement ps = conn.prepareStatement("insert into user(username, password, gender, address) values (?, ?, ?, ?)");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
ps.setString(3, user.getGender());
ps.setString(4, user.getAddress());
int result = ps.executeUpdate();
ps.close();
return result > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
public User findByUsername(String username) {
try {
PreparedStatement ps = conn.prepareStatement("select * from user where username = ?");
ps.setString(1, username);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setGender(rs.getString("gender"));
user.setAddress(rs.getString("address"));
rs.close();
ps.close();
return user;
}
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public boolean updatePassword(String username, String password) {
try {
PreparedStatement ps = conn.prepareStatement("update user set password = ? where username = ?");
ps.setString(1, password);
ps.setString(2, username);
int result = ps.executeUpdate();
ps.close();
return result > 0;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
public void close() {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public class UserService { private UserDao userDao = new UserDao();
public boolean register(String username, String password, String gender, String address) {
User user = userDao.findByUsername(username);
if (user != null) {
return false;
}
user = new User();
user.setUsername(username);
user.setPassword(password);
user.setGender(gender);
user.setAddress(address);
return userDao.register(user);
}
public boolean login(String username, String password) {
User user = userDao.findByUsername(username);
if (user != null && user.getPassword().equals(password)) {
return true;
}
return false;
}
public boolean changePassword(String username, String password) {
return userDao.updatePassword(username, password);
}
public void close() {
userDao.close();
}
}
public class User { private String username; private String password; private String gender; private String address;
public User() {
}
public User(String username, String password, String gender, String address) {
this.username = username;
this.password = password;
this.gender = gender;
this.address = address;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
", gender='" + gender + '\'' +
", address='" + address + '\'' +
'}';
}
原文地址: https://www.cveoy.top/t/topic/g8AG 著作权归作者所有。请勿转载和采集!