一.简述
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。
执行流程:
- 连接数据源,如数据库
- 为数据库传递查询和跟新指令
- 处理数据库相应并返回结果
二.编程步骤(连接MySQL)
- 导入jar包:https://dev.mysql.com/downloads/connector/j/(下载地址)
- 加载驱动程序:Class.forName("com.mysql.cj.jdbc.Driver");
- 获得数据库连接:DriverManager.getConnection(URL, USER, PASSWORD);
- 创建Statement\PreparedStatement,操作数据库
补充:Statement 和 PreparedStatement之间的关系和区别
关系:PreparedStatement继承自Statement,都是接口
区别:PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高
三.简单实例
这里展示连接MySQL,并使用Statement的增、删、查和PreparedStatement的简单案例。
public class Main {
public static void main(String[] args){
Database d = new Database();//使用Statement
Predatabase pred = new Predatabase(); //使用PreparedStatement
try {
d.data();
pred.predata();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Database {
public static final String URL = "jdbc:mysql://localhost:3306/test";//端口用于区分应用,3306是mysql的端口
public static final String USER = "root";
public static final String PASSWORD = "***";//mysql密码
public void data() throws Exception{
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获得数据库连接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
//3.操作数据库,实现增删改查
Statement stmt = conn.createStatement();
//String sql="insert into pet(name,data)values(\"老王\",\"2020-10-12\");";
//stmt.executeUpdate(sql); //添加老王
//String sql2="delete from pet where name=\"老王\"";
//stmt.execute(sql2); //删除老王
ResultSet rs = stmt.executeQuery("SELECT * from pet"); //查询pet表,sql语句根据自己的数据库跟改
while(rs.next()){
// 如果有数据,rs.next()返回true
System.out.println("姓名:"+rs.getString("name")+" 生日:"+rs.getString("data"));
}
rs.close();
stmt.close();
}
}
import java.sql.*;
public class Predatabase {
public static final String URL = "jdbc:mysql://localhost:3306/test";//端口用于区分应用,3306是mysql的端口
public static final String USER = "root";
public static final String PASSWORD = "***";//mysql密码
public void predata() throws Exception{
Class.forName("com.mysql.cj.jdbc.Driver");
//2. 获得数据库连接
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
//3.操作数据库,实现增删改查
PreparedStatement stamt=null;
ResultSet rs=null;
String sql="select * from pet where name like ? ";
stamt = conn.prepareStatement(sql);
stamt.setString(1,"老王");
rs = stamt.executeQuery();
while(rs.next()){
System.out.println(rs.getString("name"));
}
rs.close();
stamt.close();
}
}
数据库表:
运行截图: