- 问题
为员工管理系统添加注册和登陆功能,注册时需要进行用户名是否存在的判断,如果存在则出现提示。登陆成功即可对员工信息进行增删改查操作。
- 步骤
Step 1:创建数据库表
新建一个登陆表,t_user表
CREATE TABLE `t_user` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`pwd` varchar(30) NOT NULL,
`name` varchar(50) DEFAULT NULL,
`gender` char(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
新建一个员工表t_emp
CREATE TABLE `t_emp` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` varchar(8) NOT NULL,
`salary` float(8,2) DEFAULT NULL,
`age` int(2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
step2: 创建一个实体类entity.User类和一个实体类entity.Employee类
package entity;
public class Employee {
private int id;
private String name;
private float salary;
private int age;
@Override
public String toString(){
return id+" "+name+" "+salary+" "+age;
}
public Employee(){
super();
}
public Employee(int id,String name,float salary,int age){
super();
this.id=id;
this.name=name;
this.salary=salary;
this.age=age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
entity.User类
package entity;
public class User {
private int id;
private String username;
private String pwd;
private String name;
private String gender;
@Override
public String toString(){
return id+" "+username+" "+pwd+" "+name+" "+gender;
}
public User(){
super();
}
public User(int id,String username,String pwd,String name,String gender){
super();
this.id=id;
this.username=username;
this.pwd=pwd;
this.name=name;
this.gender=gender;
}
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 getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
step3:创建三个dao类
数据库连接类dao.DBUtil类
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
public class DBUtil {
//新建一个连接
public static Connection getConnection()throws Exception{
Connection conn=null;
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
//创建实例
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return conn;
}
//关闭数据库连接
public static void close(Connection conn)throws Exception{
if(conn!=null){
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
}
dao.EmployeeDAO类
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.text.html.HTMLDocument.HTMLReader.ParagraphAction;
import entity.Employee;
public class EmployeeDAO {
//查询所有员工
public List<Employee> findAll()throws Exception{
List<Employee> emps=new ArrayList<Employee>();
Connection conn=null;
PreparedStatement stmt=null; // PreparedStatement 实例包含已编译的 SQL 语句
ResultSet rs=null;
try {
conn=DBUtil.getConnection();
stmt=conn.prepareStatement("select * from t_emp");
rs=stmt.executeQuery();
while(rs.next()){
Employee emp=new Employee(
rs.getInt("id"),
rs.getString("name"),
rs.getFloat("salary"),
rs.getInt("age")
);
emps.add(emp);
}
} catch