Java连接Oracle数据库的方式主要有以下几种:
1、JDBCODBC桥驱动方式
2、使用纯JDBC驱动方式
3、使用JNDI方式
4、使用JPA/Hibernate等ORM框架
下面我们分别详细介绍这几种方式。
1. JDBCODBC桥驱动方式
JDBCODBC桥驱动方式是最早的一种连接方式,它通过JDBCODBC桥将JDBC API调用转换为ODBC API调用,然后通过ODBC驱动程序与数据库进行通信,这种方式需要在客户端安装ODBC驱动,配置数据源。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class JDBC_ODBC_Bridge { public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:odbc:oracle"; Connection conn = DriverManager.getConnection(url, "username", "password"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table_name"); while (rs.next()) { System.out.println(rs.getString("column_name")); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
2. 使用纯JDBC驱动方式
使用纯JDBC驱动方式是直接使用JDBC API与数据库进行通信,不需要经过ODBC驱动,这种方式需要在客户端加载Oracle的JDBC驱动(如ojdbc.jar)。
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Pure_JDBC { public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@localhost:1521:orcl"; Connection conn = DriverManager.getConnection(url, "username", "password"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table_name"); while (rs.next()) { System.out.println(rs.getString("column_name")); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
3. 使用JNDI方式
JNDI(Java Naming and Directory Interface)是一种用于查找和访问目录和对象的API,通过JNDI,可以将数据库连接信息存储在应用服务器上,实现数据库连接的集中管理。
import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class JNDI { public static void main(String[] args) { try { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/OracleDB"); Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM table_name"); while (rs.next()) { System.out.println(rs.getString("column_name")); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
4. 使用JPA/Hibernate等ORM框架
JPA(Java Persistence API)和Hibernate是Java中常用的ORM(ObjectRelational Mapping)框架,它们可以将Java对象与数据库表进行映射,简化数据库操作。
import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import javax.persistence.Query; public class JPA { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("OraclePersistenceUnit"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); Query query = em.createQuery("SELECT obj FROM TableName obj"); List<TableName> list = query.getResultList(); for (TableName obj : list) { System.out.println(obj.getColumnName()); } em.getTransaction().commit(); em.close(); emf.close(); } }
相关问题与解答:
Q1: 使用JDBCODBC桥驱动方式连接Oracle数据库时,需要在客户端安装什么?
A1: 需要在客户端安装ODBC驱动,并配置数据源。
Q2: 使用JNDI方式连接Oracle数据库时,数据库连接信息存储在哪里?
A2: 使用JNDI方式时,数据库连接信息存储在应用服务器上,实现数据库连接的集中管理。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/516205.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复