【发布时间】:2008-11-20 09:37:13
【问题描述】:
什么是 JDBC,我可以从哪里开始学习?
我知道这是一种使用 Java 访问数据库的方法,但它解决了哪些问题?它是一个 ORM(或者它试图成为)?它是否在语法级别抽象出数据库之间的差异?它有什么作用?它不做什么?
【问题讨论】:
什么是 JDBC,我可以从哪里开始学习?
我知道这是一种使用 Java 访问数据库的方法,但它解决了哪些问题?它是一个 ORM(或者它试图成为)?它是否在语法级别抽象出数据库之间的差异?它有什么作用?它不做什么?
【问题讨论】:
JDBC 是一个允许您访问数据库的驱动程序。它为您提供了一种非常原始的方式来使用 SQL 访问数据库。它的主要功能是允许您(用户)在数据库上运行 SQL 命令。它不是 ORM,也永远不会是。 sun 网站http://java.sun.com/docs/books/tutorial/jdbc/ 有一个很好的 JDBC 教程。如果您对 ORM 感兴趣,请尝试 http://www.hibernate.org/。
【讨论】:
不,JDBC 不是 ORM。它是Java Database Connectivity API,基本上它提供了一个与数据库无关的访问层和提供者模型(以便可以轻松添加新的数据库驱动程序)。供应商可以根据需要为特定数据库特性添加更多功能,但如果开发人员希望使用多个数据库,则可以忽略这些特性。
不涉及映射 - 只是为连接(和池)、准备好的语句、存储过程、结果集等建模。
【讨论】:
Java Database Connectivity (JDBC) 是一种用于 Java 编程语言的 API,它定义了客户端如何访问数据库。它提供了查询和更新数据库中数据的方法。 JDBC是面向关系型数据库的。
【讨论】:
您实际上已经回答了自己的问题。
它为访问数据库提供了一个通用接口,这意味着无论单个数据库的细微差别如何,或者它们是如何实现的,您的 API 调用都是相同的。它不是 ORM。
【讨论】:
JDBC 是一组 Java 接口类,可将您的应用程序与任何关系数据库管理系统连接起来。
【讨论】:
JDBC - Java 数据库连接
JDBC 是一种通过驱动程序将您的数据库连接到您的 java 开发的一种方法,适用于每种类型的关系数据库(Oracle、MySql、MariaDB、AWS,...)!
可以在项目中使用 MAVEN 将 JDBC 下载到你的 java 项目中! 从那里,您可以在 MAVEN 的 arquive POM 中为您的项目提取 JDBC 依赖项。 依赖链接:https://mvnrepository.com/artifact/mysql/mysql-connector-java
Maven:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>NameId</groupId>
<artifactId>NameProjectJava</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Package</name>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
带有 JDBC 的 Java 中的实例数据库:
公共类数据库 {
连接方式;
MysqlDataSource dataSource = new MysqlDataSource();
私人声明stmt;
私有结果集rs;
静态私有数据库实例;
私有数据库(字符串主机,字符串用户,字符串密码,int 端口,字符串 dbName)抛出 SQLException {
数据源.setDatabaseName(dbName);
dataSource.setServerName(host);
数据源.setUser(用户);
dataSource.setPassword(密码);
数据源.setPort(端口);
dataSource.setServerTimezone("UTC");
}
私人连接 getConnection() 抛出 SQLException {
返回 this.dataSource.getConnection();
}
公共静态数据库 getInstance() {
如果(实例==空){
尝试 {
instance = new DB("localhost", "root", null, 3306, "group3_hr");
} 捕捉(SQLException e){
e.printStackTrace();
}
}
返回实例;
}
【讨论】: