JDBC
Java DataBase Connectivity 是⼀个独⽴于特定数据库的管理系统,通⽤的 SQL 数据库存取和操作的公共接⼝。定义了⼀组标准,为访问不同数据库提供了统⼀的途径。
![](https://img2020.cnblogs.com/blog/1698402/202102/1698402-20210209085410801-1960963162.png)
JDBC 体系结构
JDBC 接⼝包括两个层⾯:
⾯向应⽤的 API,供程序员调⽤
⾯向数据库的 API,供⼚商开发数据库
![](https://img2020.cnblogs.com/blog/1698402/202102/1698402-20210209085513225-485711667.png)
数据库
JDBC API
提供者:Java 官⽅
内容:供开发者调⽤的接⼝
java.sql 和 javax.sql
DriverManager 类
Connection 接⼝
Statement 接⼝
ResultSet 接⼝
DriverManager
提供者:Java 官⽅
作⽤:管理不同的 JDBC 驱动
JDBC 驱动
提供者:数据库⼚商
作⽤:负责连接不同的
JDBC 的使⽤
1、加载数据库驱动,Java 程序和数据库之间的桥梁。
2、获取 Connection,Java 程序与数据库的⼀次连接。
3、创建 Statement 对象,由 Connection 产⽣,执⾏ SQL 语句。
4、如果需要接收返回值,创建 ResultSet 对象,保存 Statement 执⾏之后所查询到的结果。
//加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); //获取连接 String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"; String user = "root"; String password = "root"; Connection connection =DriverManager.getConnection(url,user,password);
//插入 String sql = "insert into student(name,score,birthday) values('李 四',78,'2019-01-01')"; //更新 String sql = "update student set name = '李四'"; //删除 String sql = "delete from student"; //创建statement对象 Statement statement = connection.createStatement(); //成功后result返回值 int result = statement.executeUpdate(sql);
要调时区
解决方案:https://www.cnblogs.com/arxive/p/10332254.html
//
登录
mysql -u root -p
//
设置时区,更改为东八区
set global time_zone = '+8:00';
//
刷新权限
flush privileges;
查询操作
String sql="Select *from user"; Statement statement=connection.createStatement(); ResultSet resultSet=statement.executeQuery(sql); while(resultSet.next()){ System.out.println("id:"+resultSet.getInt("id")+"name"+resultSet.getString("name")+" "); }