要求:
1、窗口+布局+组件
2、数据库表(字段、ID、用户名、密码)+数据库连接+数据库增删改查
准备工作:
1、需要下载MySQL(配置好环境)并安装navicat premium
2、在navicat里面新建一个数据库my-sql并且在student数据库新建一个t_user表
3、表中设置字段id, username ,password ,telephone ,register_time
完成之后是如下图所示:
4、之后我们在Intellij IDEA (Java工具)新建四个项目ConnectionManager,UserDao,TestUserDao,LoginFrame
ConnectionManager代码如下:
import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionManager {
private static final String DRIVER = "com.mysql.jdbc.Driver"; // 数据库驱动程序
private static final String URL = "jdbc:mysql://localhost:3306/student"; // 数据库统一资源定位符
private static final String USERNAME = "root"; // 数据库用户名
private static final String PASSWORD = "mm123456"; // 数据库密码
/**
* 私有化构造方法,拒绝实例化
*/
private ConnectionManager() {
}
/**
* 获取数据库连接方法
*
* @return 数据库连接
*/
public static Connection getConnection() {
// 定义数据库连接
Connection conn = null;
try {
// 安装数据库驱动程序
Class.forName(DRIVER);
// 获取数据库连接
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (ClassNotFoundException e) {
System.err.println("错误提示:数据库驱动程序未找到!");
} catch (SQLException e) {
System.err.println("温馨提示:数据库连接失败!");
}
// 返回数据库连接
return conn;
}
/**
* 关闭数据连接方法
*
* @param conn
*/
public static void closeConnection(Connection conn) {
// 判断数据库连接是否为空
if (conn != null) {
try {
// 判断数据库连接是否关闭
if (!conn.isClosed()) {
// 关闭数据库连接
conn.close();
}
} catch (SQLException e) {
System.err.println("温馨提示:数据库连接关闭失败!");
}
}
}
/**
* 测试数据库连接是否成功
*
* @param args
*/
public static void main(String[] args) {
// 获取数据库连接
Connection conn = getConnection();
// 判断是否连接成功
if (conn != null) {
JOptionPane.showMessageDialog(null, "恭喜,数据库连接成功!");
} else {
JOptionPane.showMessageDialog(null, "遗憾,数据库连接失败!");
}
// 关闭数据库连接
closeConnection(conn);
}
}
ConnectinonManager.java是用来连接数据库的,数据库密码是你自己设置的密码哦。上面代码是我自己的数据库密码
UserDao代码如下:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UserDao {
public boolean login(String username,String password){
//1获得数据库的连接(加载数据库驱动,通过drivermanager获取数据库连接)
Connection conn= ConnectionManager.getConnection();
try {
//2通过connection对象获取statement对象
String strSQL="update t_user set password=? where username='芝兰'";
PreparedStatement pstmt =conn.prepareStatement(strSQL);
pstmt.setString(1,password);
//3使用statement执行SQL语句
int rs=pstmt.executeUpdate();
//4对增删改查结果的处理
if(rs>0){
return true;
}else{
return false;
}
}catch (SQLException e){
System.out.println("数据库的234步产生的异常");
e.printStackTrace();
}finally {
//5关闭数据库
ConnectionManager.closeConnection(conn);
}
return false;
}
}
TestUserDao代码如下:
public class TestUserDao {
public static void main(String[] args) {
String username="芝兰";
String password="123";
UserDao userDao=new UserDao();
boolean a=userDao.login(username,password);
if(a){
System.out.println("用户名和密码正确,修改密码成功");
}else{
System.out.println("用户名和密码不正确,修改密码失败");
}
}
}
LoginFrame代码如下:
public class TestUserDao {
public static void main(String[] args) {
String username="芝兰";
String password="123";
UserDao userDao=new UserDao();
boolean a=userDao.login(username,password);
if(a){
System.out.println("用户名和密码正确,修改密码成功");
}else{
System.out.println("用户名和密码不正确,修改密码失败");
}
}
}
每个项目都要正常运行哦,不然在LoginFranme里面修改密码就会有bug哦~
正确运行结果为:
之前“芝兰”的密码为666,我们把它修改为555.运行成功后我们在打开navicat的t_user表里面可以看到“芝兰”的密码已经改为了555。
注意:我们修改密码成功后需要重新打开数据库才能看到修改后的结果,这是因为我们数据库刷新慢需要我们自己手动刷新。