JDBC: (java database Connection) java数据库连接。
思考: java面向对象的语言
SQL:结构化查询语言
这两种语言能否直接沟通? 不能。 出来一个翻译Mysql: 每一个数据库公司提供的方法名可能不一致。导致了java必须记住每一个数据库的方法名。
java语言出来规范,让这些数据库公司实现这个规范。
JDBC链接的步骤:
1. 把jar放入到工程下并add Libaray
1.1在src下新建一个包
1.2.给包命名
1.3.把与自己数据库版本相同的jar包插入
1.4.点jar吧右键点击add as 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); 遍历结果集
6. 关闭资源
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Text1 {
public static void main(String[] args) {
ResultSet resultSet = null;
Statement statement = null;
Connection connection = null;
try { //抛出异常
Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
//获取java 与数据库之间的一个通道
connection =DriverManager.getConnection(url:"jdbc:mysql://localhost:3306/myku?serverTimezone=Asia/Shanghai",user: "root", password:"");
//获取执行sql语句
statement = connection.createStatement();
//执行sql语句 executeUpdate 执行增删改查的sql
// executeQuery 执行查询的sql
String sql = "select * from student";
//把从数据库中查询的结果封装到ResultSet中
resultSet = statement.executeQuery(sql);
//遍历结果集
while (resultSet.next()) { //判断是否容器中有记录
System.out.println("编号t姓名");
System.out.println(resultSet.getInt("id")+"t"+resultSet.getString("name"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(resultSet != null){
resultSet.close(); //关闭连接 先打开的先关闭 后打开的后关闭
}
if(statement != null){
statement.close();
}
if(connection != null){
connection.close();
}
}catch (Exception o){
o.printStackTrace();
}
}
}
}
结果如下:
编号 姓名 2 张三



