1. 创建一个新项目
- 在IDEA中新建一个Java Web项目
- 在项目中导入MySQL的jar包
- 打开数据库,新建一个数据库java7,在数据库中新建一个表tb_user
- 初始化表
2. 编写用户类User
- 对用户的属性进行封装
- 编写get和set方法
- 编写构造方法
- toString方法的重写
其中,get和set方法、构造方法以及toString方法的重写都可以在IDEA中使用Generate自动生成。
// 实体类,映射数据库字段
public class User
{
// 1. 对属性的封装
private int id; // 用户ID
private String username; // 用户名
private String password; // 用户密码
// 2. get and set
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 getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
// 3. 构造方法
public User(int id, String username, String password)
{
this.id = id;
this.username = username;
this.password = password;
}
public User(String username, String password)
{
this.username = username;
this.password = password;
}
public User()
{
}
// 4. toString 方法的重写
@Override
public String toString()
{
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
3. 编写工具类DBUtil
对JDBC数据库驱动进行封装
public class DBUtil
{
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/java7?useSSL=true&characterEncoding=utf-8";
private static String user = "root";
private static String password = "123";
//1.获取驱动
static {
try
{
Class.forName(driver);
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
//2.创建连接
public static Connection get_Conn() throws SQLException
{
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功" + conn);
return conn;
}
//3.关闭连接
public static void get_CloseConn(ResultSet rs, PreparedStatement pstm, Connection conn) throws SQLException
{
if(rs != null)
{
rs.close();
}
if(pstm != null)
{
pstm.close();
}
if(conn != null)
{
conn.close();
}
}
//白盒测试/单元测试
public static void main(String[] args)
{
try
{
get_Conn();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
4. 数据库操作的封装
新建一个测试类,对数据库的增删查改操作进行封装,编写相应的方法。
public class TestUser2
{
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
// 增加用户
public void addUser(User user)
{
try
{
// 1. 获取连接
conn = DBUtil.get_Conn();
// 2. 获取存放sql语句的对象
pstm = conn.prepareStatement("insert into tb_user(username,password) values(?,?)");
// 3. 补全信息
pstm.setString(1, user.getUsername());
pstm.setString(2, user.getPassword());
// 4. 执行sql并得到结果
int i = pstm.executeUpdate();
// 5. 处理结果
if (i > 0)
{
System.out.println("增加成功");
} else
{
System.out.println("增加失败");
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
// 6. 关闭连接
try
{
DBUtil.get_CloseConn(null, pstm, conn);
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
//删除用户
public void deleteUser(int id)
{
try
{
// 1. 获取连接
conn = DBUtil.get_Conn();
// 2. 获取存放sql语句的对象
pstm = conn.prepareStatement("delete from tb_user where id = ?");
// 3. 补全信息
pstm.setInt(1, id);
// 4. 执行sql并得到结果
int i = pstm.executeUpdate();
// 5. 处理结果
if (i > 0)
{
System.out.println("删除成功");
} else
{
System.out.println("删除失败");
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
// 6. 关闭连接
try
{
DBUtil.get_CloseConn(null, pstm, conn);
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
//查询用户
public void queryUser()
{
try
{
// 1. 获取连接
conn = DBUtil.get_Conn();
// 2. 获取存放sql语句的对象
String sql = "select * from tb_user";
// 3. 获取存放sql的对象
pstm = conn.prepareStatement(sql);
// 4. 执行SQL语句,并得到结果
rs = pstm.executeQuery();
// 5.遍历结果
while (rs.next())
{
System.out.println("--------------");
System.out.println("用户ID:" + rs.getInt(1));
System.out.println("用户名:" + rs.getString(2));
System.out.println("密码:" + rs.getString(3));
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
// 6. 关闭连接
try
{
DBUtil.get_CloseConn(rs, pstm, conn);
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
// 修改用户信息
public void updateUser(User user)
{
try
{
// 1. 获取连接
conn = DBUtil.get_Conn();
// 2. 获取存放sql语句的对象
pstm = conn.prepareStatement("update tb_user set username=?,password=? where id=?;");
// 3. 补全信息
pstm.setString(1, user.getUsername());
pstm.setString(2, user.getPassword());
pstm.setInt(3, user.getId());
// 4. 执行sql并得到结果
int i = pstm.executeUpdate();
// 5. 处理结果
if (i > 0)
{
System.out.println("修改成功");
} else
{
System.out.println("修改失败");
}
} catch (SQLException e)
{
e.printStackTrace();
} finally
{
// 6. 关闭连接
try
{
DBUtil.get_CloseConn(null, pstm, conn);
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
5. 编写控制台菜单
最后,在main函数中编写控制台菜单,进行相关的数据库操作。