新聞中心
Java是一種面向?qū)ο缶幊陶Z(yǔ)言,它已經(jīng)成為了互聯(lián)網(wǎng)時(shí)代的主流開(kāi)發(fā)語(yǔ)言。在開(kāi)發(fā)過(guò)程中,我們會(huì)經(jīng)常用到數(shù)據(jù)庫(kù)。Java對(duì)于各種數(shù)據(jù)庫(kù)都提供了良好的支持,既支持Oracle,也支持MySQL等。Java連接數(shù)據(jù)庫(kù)的方法有很多,本文將詳細(xì)介紹Java連接數(shù)據(jù)庫(kù)的常用方法。

一、JDBC
JDBC是Java Database Connectivity的縮寫(xiě),用于定義一個(gè)Java語(yǔ)言中訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口。JDBC分為兩個(gè)部分:JDBC API和JDBC驅(qū)動(dòng)程序。JDBC API負(fù)責(zé)提供應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)接口,而JDBC驅(qū)動(dòng)程序則是實(shí)現(xiàn)接口的不同數(shù)據(jù)庫(kù)廠商提供的軟件包。
1.連接數(shù)據(jù)庫(kù)
需要下載和安裝相應(yīng)的JDBC驅(qū)動(dòng)程序。例如,如果連接Oracle數(shù)據(jù)庫(kù),則需要下載和安裝Oracle數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序。一旦安裝了驅(qū)動(dòng)程序,就可以連接Oracle數(shù)據(jù)庫(kù):
“`java
Class.forName(“oracle.jdbc.driver.OracleDriver”);
String url = “jdbc:oracle:thin:@localhost:1521:orcl”;
String username = “username”;
String password = “password”;
Connection conn = DriverManager.getConnection(url, username, password);
“`
這里需要注意的是,`Class.forName`的語(yǔ)句是引入Oracle JDBC驅(qū)動(dòng)程序類(lèi),這樣才能使用Oracle的驅(qū)動(dòng)程序。`url`參數(shù)指定了JDBC連接的URL,`username`和`password`則是連接Oracle數(shù)據(jù)庫(kù)的用戶(hù)名和密碼。使用`DriverManager`的`getConnection`方法來(lái)建立連接。
2.執(zhí)行SQL語(yǔ)句
一旦建立了JDBC連接,就可以執(zhí)行SQL語(yǔ)句了。例如,在Oracle中創(chuàng)建一個(gè)表:
“`java
Statement stmt = conn.createStatement();
String sql = “CREATE TABLE users (id NUMBER(10), name VARCHAR2(20))”;
stmt.executeUpdate(sql);
“`
這里,首先創(chuàng)建`Statement`對(duì)象。`sql`參數(shù)指定要執(zhí)行的SQL語(yǔ)句,然后調(diào)用`executeUpdate`方法執(zhí)行SQL語(yǔ)句。
3.查詢(xún)數(shù)據(jù)
查詢(xún)數(shù)據(jù)需要使用`ResultSet`對(duì)象。例如,在Oracle中查詢(xún)所有用戶(hù)的名字:
“`java
Statement stmt = conn.createStatement();
String sql = “SELECT name FROM users”;
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String name = rs.getString(“name”);
System.out.println(name);
}
“`
這里,首先創(chuàng)建`Statement`對(duì)象,然后執(zhí)行SQL查詢(xún)語(yǔ)句。查詢(xún)語(yǔ)句返回的結(jié)果集保存在ResultSet對(duì)象中。`while`循環(huán)遍歷結(jié)果集,獲取每個(gè)用戶(hù)的名字,并將其打印出來(lái)。
二、Spring JDBC
Spring是一個(gè)開(kāi)源的Java開(kāi)發(fā)框架。Spring JDBC是Spring框架的一個(gè)模塊,可以方便地與數(shù)據(jù)庫(kù)進(jìn)行交互。Spring JDBC的好處在于可以輕松地進(jìn)行數(shù)據(jù)源配置和管理,并提供了更簡(jiǎn)單和可維護(hù)的代碼。
1.連接數(shù)據(jù)庫(kù)
Spring JDBC使用JDBC數(shù)據(jù)源來(lái)連接數(shù)據(jù)庫(kù)。數(shù)據(jù)源是一個(gè)數(shù)據(jù)庫(kù)連接池,它允許Java應(yīng)用程序在任何時(shí)間訪問(wèn)數(shù)據(jù)庫(kù)。使用Spring JDBC連接Oracle數(shù)據(jù)庫(kù):
“`xml
“`
這里,使用`DriverManagerDataSource`創(chuàng)建JDBC數(shù)據(jù)源。`driverClassName`參數(shù)指定JDBC驅(qū)動(dòng)程序類(lèi),`url`參數(shù)指定JDBC連接的URL,`username`和`password`則是連接Oracle數(shù)據(jù)庫(kù)的用戶(hù)名和密碼。
2.執(zhí)行SQL語(yǔ)句
一旦建立了JDBC數(shù)據(jù)源,就可以執(zhí)行SQL語(yǔ)句了。例如,在Oracle中查詢(xún)所有用戶(hù)的名字:
“`java
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = “SELECT name FROM users”;
List names = jdbcTemplate.queryForList(sql, String.class);
for (String name : names) {
System.out.println(name);
}
“`
這里,首先創(chuàng)建一個(gè)`JdbcTemplate`對(duì)象,它是Spring JDBC提供的一個(gè)用于執(zhí)行SQL語(yǔ)句的高級(jí)對(duì)象。`queryForList`方法執(zhí)行查詢(xún)語(yǔ)句,返回一個(gè)字符串列表。使用`for`循環(huán)遍歷列表,并打印每個(gè)用戶(hù)的名字。
三、Hibernate
Hibernate是一個(gè)流行的開(kāi)源框架,用于將Java對(duì)象映射到關(guān)系數(shù)據(jù)庫(kù)。Hibernate把Java對(duì)象視為面向?qū)ο蟮哪P?,并自?dòng)將其轉(zhuǎn)換為關(guān)系模型。Hibernate提供了豐富的映射功能,使得Java開(kāi)發(fā)人員可以更容易地處理數(shù)據(jù)庫(kù)操作。
1.連接數(shù)據(jù)庫(kù)
Hibernate使用JDBC數(shù)據(jù)源連接數(shù)據(jù)庫(kù)。連接Oracle數(shù)據(jù)庫(kù):
“`xml
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:orcl
username
password
“`
這里,使用`driver_class`參數(shù)指定JDBC驅(qū)動(dòng)程序類(lèi),`url`參數(shù)指定JDBC連接的URL,`username`和`password`則是連接Oracle數(shù)據(jù)庫(kù)的用戶(hù)名和密碼。
2.執(zhí)行SQL語(yǔ)句
Hibernate不需要手動(dòng)執(zhí)行SQL語(yǔ)句,因?yàn)樗鶕?jù)映射規(guī)則自動(dòng)生成SQL語(yǔ)句。例如,在Oracle中創(chuàng)建一個(gè)用戶(hù)對(duì)象:
“`java
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
User user = new User();
user.setName(“Tom”);
session.save(user);
tx.commit();
“`
這里,首先獲取當(dāng)前會(huì)話(huà)的`Session`對(duì)象,然后創(chuàng)建事務(wù)并開(kāi)始事務(wù)。創(chuàng)建一個(gè)新的`User`對(duì)象,將其保存到數(shù)據(jù)庫(kù)中,并提交事務(wù)。
3.查詢(xún)數(shù)據(jù)
Hibernate提供了一個(gè)面向?qū)ο蟮牟樵?xún)語(yǔ)言(HQL)來(lái)查詢(xún)數(shù)據(jù)。例如,在Oracle中查詢(xún)所有用戶(hù)的名字:
“`java
Session session = sessionFactory.getCurrentSession();
Transaction tx = session.beginTransaction();
String hql = “FROM User”;
Query query = session.createQuery(hql);
List users = query.list();
for (User user : users) {
String name = user.getName();
System.out.println(name);
}
tx.commit();
“`
這里,首先獲取當(dāng)前會(huì)話(huà)的`Session`對(duì)象,然后創(chuàng)建事務(wù)并開(kāi)始事務(wù)。使用HQL語(yǔ)句`FROM User`查詢(xún)所有用戶(hù)的列表。使用`list`方法將列表保存到`List`對(duì)象中。使用`for`循環(huán)遍歷列表,并獲取每個(gè)用戶(hù)的名字,并將其打印出來(lái)。
四、MyBatis
MyBatis是一個(gè)流行的開(kāi)源持久化框架,用于將Java對(duì)象映射到關(guān)系數(shù)據(jù)庫(kù)。與Hibernate不同,MyBatis可以手動(dòng)編寫(xiě)SQL或使用MyBatis提供的映射規(guī)則進(jìn)行自動(dòng)化映射。
1.連接數(shù)據(jù)庫(kù)
MyBatis使用JDBC數(shù)據(jù)源連接數(shù)據(jù)庫(kù)。連接Oracle數(shù)據(jù)庫(kù):
“`xml
“`
這里,使用`driver`參數(shù)指定JDBC驅(qū)動(dòng)程序類(lèi),`url`參數(shù)指定JDBC連接的URL,`username`和`password`則是連接Oracle數(shù)據(jù)庫(kù)的用戶(hù)名和密碼。
2.執(zhí)行SQL語(yǔ)句
MyBatis使用Mapper接口來(lái)定義SQL語(yǔ)句。例如,在Oracle中查詢(xún)所有用戶(hù)的名字:
“`java
SqlSession session = sqlSessionFactory.openSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List names = mapper.getUserNames();
for (String name : names) {
System.out.println(name);
}
session.commit();
“`
這里,首先獲取一個(gè)`SqlSession`對(duì)象,然后獲取`UserMapper`接口的實(shí)例。使用`getUserNames`方法執(zhí)行SQL查詢(xún)語(yǔ)句。使用`for`循環(huán)遍歷結(jié)果集,并打印每個(gè)用戶(hù)的名字。最后提交事務(wù)。
3.查詢(xún)數(shù)據(jù)
MyBatis提供了XML或注解來(lái)定義SQL語(yǔ)句。例如,在Oracle中查詢(xún)所有用戶(hù)的名字:
“`xml
SELECT name FROM users
“`
這里,使用XML定義查詢(xún)語(yǔ)句。`select`元素中的`id`屬性指定查詢(xún)方法名,`resultType`屬性指定返回結(jié)果的類(lèi)型。使用`SELECT`語(yǔ)句查詢(xún)所有用戶(hù)的名字,并返回一個(gè)字符串列表。
五、
相關(guān)問(wèn)題拓展閱讀:
- java怎么連接mysql數(shù)據(jù)庫(kù)
java怎么連接mysql數(shù)據(jù)庫(kù)
首先要安裝有JDK(一般是JDK1.5.X)。然后安裝MySQL,這些都比較簡(jiǎn)單,具體過(guò)程就不說(shuō)了。配置好這兩個(gè)環(huán)境后,下載JDBC驅(qū)動(dòng)mysql-connector-java-5.0.5.zip(這個(gè)是最新版的)。然后將其解壓縮到任一目錄。我是解壓到D盤(pán),然后將其目錄下的mysql-connector-java-5.0.5-bin.jar加到classpath里,具體如下:“我的電腦”-> “屬性” ->“高級(jí)” ->“環(huán)境變量”,在系統(tǒng)變量那里編輯classpath,將D:\mysql-connector-java-5.0.5\mysql-connector-java-5.0.5-bin.jar加到最褲伏梁后,在加這個(gè)字符串前要加“;”,以與前一個(gè)classpath區(qū)分開(kāi)。然后確定。
環(huán)境配置好了,很簡(jiǎn)單?,F(xiàn)在,先配置MySQL,設(shè)胡運(yùn)其用戶(hù)名為“root”,密碼為“root”。在命令行或用一個(gè)SQL的前端軟件創(chuàng)建Database。
我是用SQLyog的前端軟件來(lái)創(chuàng)建Database的。
先創(chuàng)建數(shù)據(jù)庫(kù):
CREATE DATABASE SCUTCS;
接著,創(chuàng)建表:
CREATE TABLE STUDENT
(
SNO CHAR(7) NOT NULL,
SNAME VARCHAR(8) NOT NULL,
SEX CHAR(2) NOT NULL,
BDATE DATE NOT NULL,
HEIGHT DEC(5,2) DEFAULT 000.00,
PRIMARY KEY(SNO)
);
然后插入數(shù)據(jù),可以用SQL語(yǔ)句insert into values(value1, value2, …);
也可以用SQLyog來(lái)操作
好了,創(chuàng)建好了。
下面,我們來(lái)編寫(xiě).java文件來(lái)演示一下如何訪問(wèn)MySQL數(shù)據(jù)庫(kù)。
import java.sql.*;
public class JDBCTest {
public static void main(String args){
// 驅(qū)動(dòng)程序名
String driver = “com.mysql.jdbc.Driver”;
// URL指向要訪問(wèn)的數(shù)據(jù)庫(kù)名scutcs
String url = “jdbc:
// MySQL配置時(shí)的用戶(hù)名
String user = “root”;
// MySQL配置時(shí)的密碼
String password = “root”;
try {
// 加載驅(qū)動(dòng)程序
Class.forName(driver);
// 連續(xù)數(shù)據(jù)庫(kù)
Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println(“Succeeded connecting to the Database!”);
// statement用來(lái)執(zhí)行SQL語(yǔ)句
Statement statement = conn.createStatement();
// 要執(zhí)行的SQL語(yǔ)句
String sql = “select * from student”;
// 結(jié)果集
ResultSet rs = statement.executeQuery(sql);
System.out.println(“—“);
System.out.println(“執(zhí)行結(jié)果如下所示:”);
System.out.println(“—“);
System.out.println(“廳蘆 學(xué)號(hào)” + “\t” + ” 姓名”);
System.out.println(“—“);
String name = null;
while(rs.next()) {
// 選擇sname這列數(shù)據(jù)
name = rs.getString(“sname”);
/* 何問(wèn)起 hovertree.com */
// 首先使用ISO字符集將name解碼為字節(jié)序列并將結(jié)果存儲(chǔ)新的字節(jié)數(shù)組中。
// 然后使用GB2312字符集解碼指定的字節(jié)數(shù)組
name = new String(name.getBytes(“ISO”),”GB2312″);
// 輸出結(jié)果
System.out.println(rs.getString(“sno”) + “\t” + name);
}
rs.close();
conn.close();
} catch(ClassNotFoundException e) {
System.out.println(“Sorry,can`t find the Driver!”);
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
java文件連接數(shù)據(jù)庫(kù)連接的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于java文件連接數(shù)據(jù)庫(kù)連接,Java連接數(shù)據(jù)庫(kù)的方法詳解,java怎么連接mysql數(shù)據(jù)庫(kù)的信息別忘了在本站進(jìn)行查找喔。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽(yáng)、重慶、貴陽(yáng)機(jī)房服務(wù)器托管租用。
網(wǎng)站題目:Java連接數(shù)據(jù)庫(kù)的方法詳解 (java文件連接數(shù)據(jù)庫(kù)連接)
文章分享:http://m.5511xx.com/article/cdddhcc.html


咨詢(xún)
建站咨詢(xún)
