JDBC链接的步骤:Java是一门面向对象语言,SQL是结构化查询语言,两者不能直接进行沟通。因此MySQL出现了。但是由于每一个数据库公司提供的方法名可能不一致,java必须记住每一个数据库的方法名,显然这样太繁琐了。 所以java语言做出了规范,让这些数据库公司实现这个规范。
1. 把jar放入到工程下并add Libaray
2. 加载驱动 Class.forName("com.mysql.cj.jdbc.Driver");
3. 获取链接对象 Connection connection=DriverManager.getConnection(url,user,password);
4. 获取执行sql语句的对象: Statement statement=connection.createStatement();
5. 执行sql语句 int row=statement.executeUpdate(sql);或ResultSet resultSet=statement.executeQuery(sql); 遍历结果集
7. 关闭资源
实现一个简单的数据库校验测试
1.添加jar包
在项目下创建一个 lib 文件夹 存放我们的mysql jar 包(jar包网上有自行下载)
然后右键点击jar包点击add Libaray
Class.forName("com.mysql.cj.jdbc.Driver");
需要try catch捕获一下异常不然会报错
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/world?serverTimezone=Asia/Shanghai","root","root");
word 表示你数据库的库名
serverTimezone=Asia/Shanghai:mysql80需要加上上海的时区
第一个root表示账户名
第二个root表示密码,这里我的密码是root,你要写上你的数据库密码。
String sql="select * from tb_user where uname=? and password=?"; //?:占位符
ps=connection.prepareStatement(sql);
这里ps 是我前面定义的同下
Connection connection=null;
Statement statement=null;
PreparedStatement ps=null;
ResultSet resultSet=null;
执行sql语句
ps.setString(1,uname); //
ps.setObject(2,password);
System.out.println();
resultSet=ps.executeQuery();
这里是uname 和password是在main方法里定义的一会儿在控制台测试用的
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入账号:");
String uname=scanner.nextLine();
System.out.println("请输入密码:");
String password=scanner.nextLine();
boolean login = login(uname, password);
if(login){
System.out.println("登录成功");
}else{
System.out.println("账号密码错误");
}
}
关闭资源
mysql的连接通道有限,一般用后就关闭,根据使用顺序倒序关闭
finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (ps != null) {
ps.close();
}
if (connection != null) {
connection.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
完整代码:
package com.Test;
import java.sql.*;
import java.util.Scanner;
public class TestJdbc03 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入账号:");
String uname=scanner.nextLine();
System.out.println("请输入密码:");
String password=scanner.nextLine();
boolean login = login(uname, password);
if(login){
System.out.println("登录成功");
}else{
System.out.println("账号密码错误");
}
}
public static boolean login(String uname,String password){
Connection connection=null;
PreparedStatement ps=null;
ResultSet resultSet=null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/world?serverTimezone=Asia/Shanghai","root","root");
String sql="select * from user where id=? and pwd =?"; //?:占位符
ps=connection.prepareStatement(sql);
//为占位符赋值
ps.setString(1,uname);
ps.setObject(2,password);
System.out.println();
resultSet=ps.executeQuery();
while (resultSet.next()){
return true;
}
}catch (Exception e){
e.printStackTrace();
}finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (ps != null) {
ps.close();
}
if (connection != null) {
connection.close();
}
}catch (Exception e){
e.printStackTrace();
}
}
return false;
}
}
控制台测试一下
这是我数据库表里的数据
匹配正确提示成功
输入错误信息提示错误



