使用IDEA开发JDBC代码配置驱动
注:1.提前下载好jar包
2.不是配置一次就行了,每次新建一个模块,都需要再次配置。
创建一个数据库,模拟一个用户信息表。
create database userdata;
create table t_user(username varchar(255),userpwd varchar(255));
insert into t_user(username,userpwd) values('zhangsan',123);
JDBC编程六步
-
注册驱动
-
获取连接
-
获取数据库操作对象
-
执行sql语句
-
处理查询结果集、
-
结束资源
具体代码:
public class userLogin {
public static void main(String[] args) {
// 初始化界面,返回用户的信息。
Map<String, String> userLoginInfo = initUI();
// 验证用户名和密码
boolean loginSuccess = login(userLoginInfo);
System.out.println(loginSuccess ? "Success" : "False");
}
private static boolean login(Map<String, String> userLoginInfo) {
// 打一个标记
boolean loginSuccess = false;
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 2.获取连接
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/userdata",
"root", "root");
// 3.获取数据库操作对象
stmt = conn.createStatement();
// 4.执行sql语句
String sql = "select * from t_user where username = '" + userLoginInfo.get("userLoginName")
+ "' and userpwd = '" + userLoginInfo.get("userLoginPwd") + "'";
// 5.处理查询结果集
rs = stmt.executeQuery(sql);
if (rs.next()) {
loginSuccess = true;
}
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} finally {
// 6.关闭资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return loginSuccess;
}
private static Map<String, String> initUI() {
// 获取用户信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入账号:");
String userLoginName = sc.nextLine();
System.out.println("请输入密码:");
String userLoginPwd = sc.nextLine();
Map<String, String> userLoginInfo = new HashMap<>();
// 将用户信息存入Map中
userLoginInfo.put("userLoginName", userLoginName);
userLoginInfo.put("userLoginPwd", userLoginPwd);
return userLoginInfo;
}
}
不足:存在sql注入的问题