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

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


咨詢
建站咨詢
