JDBC 指南
JDBC API 是一个 Java API,它可以访问任何类型的表格数据,特别是可以访问存储在关系数据库里的数据。JDBC 可以用 Java 语言在各种平台上实现,比如 Windows 系统, Mac OS 系统,和各种版本的 UNIX 系统。通俗地讲,JDBC(JDBC API)就是具有访问数据库功能的Java程序。
常见的 JDBC 组件
JDBC 的 API 提供了以下接口和类:
DriverManager :这个类管理一系列数据库驱动程序。匹配连接使用通信子协议从 JAVA 应用程序中请求合适的数据库驱动程序。识别 JDBC 下某个子协议的第一驱动程序将被用于建立数据库连接。
Driver : 这个接口处理与数据库服务器的通信。你将很少直接与驱动程序互动。相反,你使用 DriverManager 中的对象,它管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息。
Connection : 此接口具有接触数据库的所有方法。该连接对象表示通信上下文,即,所有与数据库的通信仅通过这个连接对象进行。
Statement : 使用创建于这个接口的对象将 SQL 语句提交到数据库。除了执行存储过程以外,一些派生的接口也接受参数。
ResultSet : 在你使用语句对象执行 SQL 查询后,这些对象保存从数据获得的数据。它作为一个迭代器,让您可以通过它的数据来移动。
SQLException : 这个类处理发生在数据库应用程序的任何错误。
1) 安装MySQL
安装时无脑下一步就好了
2) 下载JDBC
如果你要连接的数据库是MySQL,那么在MySQL官网你可以下载到JDBC的驱动。
3)使用MySQL新建数据库
进入MySQL的安装目录,有一个mysqld命令
在地址栏中输入cmd,回车进入命令行模式
这样我们就可以在当前目录打开cmd而不用cd命令
启动数据库服务
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld
通过以下步骤来创建EMPTest数据库
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqladmin create EMPTest -u root -p
Enter password: ******
创建表
通过以下步骤登录到数据库
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
Enter password: ******
通过以下命令创建Employees表
mysql> use EMPTest;
mysql> create table Employees
-> (
-> id int not null,
-> age int not null,
-> first varchar (255),
-> last varchar (255)
-> );
Query OK, 0 rows affected (0.08 sec)
mysql>
创建数据记录
最后,通过以下步骤你可以在 Employee 表中创建几条记录-
mysql> INSERT INTO Employees VALUES (100, 21, '小', '火');
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO Employees VALUES (101, 25, '甄', '艾');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (102, 55, 'Hello', 'World');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Employees VALUES (103, 66, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
mysql>
创建好了
4)idea中新建一个java项目,使用JDBC连接数据库
右键项目名,new一个Directory,命名为lib,用来存放外部引入外部类或jar包。把JDBC的解压文件夹放进去,打开项目设置(Peoject Settings),点击Modouls,Dependencies,+,JARS,找到JDBC的JAR包,apply,确定。
新建lib目录
打开Project Settings
依次点击Modules->项目名-> + ->JAR or Directories->找到mysql-connector-java-8.0.26.jar
在src下新建class,为测试连接代码:
import java.sql.*;
class TestJjdbcConnectTestDBC {
public static void main(String[] args)
throws ClassNotFoundException, SQLException {
//通过java访问mysql数据库
//这个对象获取数据库链接
//注册驱动,输入链接地址,用户名,密码
String driver = "com.mysql.cj.jdbc.Driver";
//访问本机的mysql数据库,格式 jdbc:数据库://本地端口3306/数据库名?跨时区参数
String url = "jdbc:mysql://localhost:3306/emptest?serverTimezone=Asia/Shanghai";
String username = "root";
String password = "123456";
Class.forName(driver);
//获取到数据库链接
Connection connection = DriverManager.getConnection(url, username, password);
//创建一个Statement语句对象
Statement stat = connection.createStatement();
//执行SQL语句
String sql = "select * from Employees";
//把查询的结果(表记录)存放到ResultSet对象中,结果集
ResultSet resultSet = stat.executeQuery(sql);
//打印结果
ResultSetMetaData rsmd = resultSet.getMetaData();
int columnsNumber = rsmd.getColumnCount();
while (resultSet.next()) {
for (int i = 1; i <= columnsNumber; i++) {
if (i > 1) System.out.print(", ");
String columnValue = resultSet.getString(i);
System.out.print(columnValue + " " + rsmd.getColumnName(i));
}
System.out.println("");
}
}
}
点击绿色三角执行
可以打印出查询结果
附:在idea中测试数据库的连接,在idea的右边边框有一个database,里面可以测试数据库的连接和各种数据库配置。这里使用的mysql版本是8.0,JDBC版本是mysql-connector-java-8.0.26
主要步骤是在project structure中添加JDBC的jar包,而新建的lib只是存放jar包的地方,实际操作就算新建jar包不在project structure中添加,实际也查询不出结果,而不新建lib目录直接添加jar包也能查询出结果。