java資料庫操作,java資料庫操作類

本文目錄一覽:

怎麼使用JAVA連接資料庫?

1、載入驅動程序。

2、創建連接對象。

3、創建sql語句執行對象 。

4、執行sql語句。

5、對執行結果進行處理。

6、關閉相關的連接對象即可(順序跟聲明的順序相反)。

處理結果兩種情況:

1、執行更新返回的是本次操作影響到的記錄數。

2、執行查詢返回的結果是一個ResultSet對象。

ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 行中數據的訪問。

擴展資料:

Statement

要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 種類型:

1、執行靜態SQL語句。通常通過Statement實例實現。

2、執行動態SQL語句。通常通過PreparedStatement實例實現。

3、執行資料庫存儲過程。通常通過CallableStatement實例實現。

參考資料:百度百科JAVA

java中使用JDBC完成資料庫操作的基本步驟是什麼?

創建一個以JDBC連接資料庫的程序,包含7個步驟: \x0d\x0a 1、載入JDBC驅動程序: \x0d\x0a 在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機), \x0d\x0a 這通過java.lang.Class類的靜態方法forName(String className)實現。 \x0d\x0a 例如: \x0d\x0a try{ \x0d\x0a //載入MySql的驅動類 \x0d\x0a Class.forName(“com.mysql.jdbc.Driver”) ; \x0d\x0a }catch(ClassNotFoundException e){ \x0d\x0a System.out.println(“找不到驅動程序類 ,載入驅動失敗!”); \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a 成功載入後,會將Driver類的實例註冊到DriverManager類中。 \x0d\x0a 2、提供JDBC連接的URL \x0d\x0a •連接URL定義了連接資料庫時的協議、子協議、數據源標識。 \x0d\x0a •書寫形式:協議:子協議:數據源標識 \x0d\x0a 協議:在JDBC中總是以jdbc開始 \x0d\x0a 子協議:是橋連接的驅動程序或是資料庫管理系統名稱。 \x0d\x0a 數據源標識:標記找到資料庫來源的地址與連接埠。 \x0d\x0a 例如:(MySql的連接URL) \x0d\x0a jdbc:mysql: \x0d\x0a //localhost:3306/test?useUnicode=truecharacterEncoding=gbk ; \x0d\x0a useUnicode=true:表示使用Unicode字符集。如果characterEncoding設置為 \x0d\x0a gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。 \x0d\x0a 3、創建資料庫的連接 \x0d\x0a •要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象, \x0d\x0a 該對象就代表一個資料庫的連接。 \x0d\x0a •使用DriverManager的getConnectin(String url , String username , \x0d\x0a String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和 \x0d\x0a 密碼來獲得。 \x0d\x0a 例如: \x0d\x0a //連接MySql資料庫,用戶名和密碼都是root \x0d\x0a String url = “jdbc:mysql://localhost:3306/test” ; \x0d\x0a String username = “root” ; \x0d\x0a String password = “root” ; \x0d\x0a try{ \x0d\x0a Connection con = \x0d\x0a DriverManager.getConnection(url , username , password ) ; \x0d\x0a }catch(SQLException se){ \x0d\x0a System.out.println(“資料庫連接失敗!”); \x0d\x0a se.printStackTrace() ; \x0d\x0a } \x0d\x0a 4、創建一個Statement \x0d\x0a •要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3 \x0d\x0a 種類型: \x0d\x0a 1、執行靜態SQL語句。通常通過Statement實例實現。 \x0d\x0a 2、執行動態SQL語句。通常通過PreparedStatement實例實現。 \x0d\x0a 3、執行資料庫存儲過程。通常通過CallableStatement實例實現。 \x0d\x0a 具體的實現方式: \x0d\x0a Statement stmt = con.createStatement() ; \x0d\x0a PreparedStatement pstmt = con.prepareStatement(sql) ; \x0d\x0a CallableStatement cstmt = \x0d\x0a con.prepareCall(“{CALL demoSp(? , ?)}”) ; \x0d\x0a 5、執行SQL語句 \x0d\x0a Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate \x0d\x0a 和execute \x0d\x0a 1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句 \x0d\x0a ,返回一個結果集(ResultSet)對象。 \x0d\x0a 2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或 \x0d\x0a DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等 \x0d\x0a 3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的 \x0d\x0a 語句。 \x0d\x0a 具體實現的代碼: \x0d\x0a ResultSet rs = stmt.executeQuery(“SELECT * FROM …”) ; \x0d\x0a int rows = stmt.executeUpdate(“INSERT INTO …”) ; \x0d\x0a boolean flag = stmt.execute(String sql) ; \x0d\x0a 6、處理結果 \x0d\x0a 兩種情況: \x0d\x0a 1、執行更新返回的是本次操作影響到的記錄數。 \x0d\x0a 2、執行查詢返回的結果是一個ResultSet對象。 \x0d\x0a • ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些 \x0d\x0a 行中數據的訪問。 \x0d\x0a • 使用結果集(ResultSet)對象的訪問方法獲取數據: \x0d\x0a while(rs.next()){ \x0d\x0a String name = rs.getString(“name”) ; \x0d\x0a String pass = rs.getString(1) ; // 此方法比較高效 \x0d\x0a } \x0d\x0a (列是從左到右編號的,並且從列1開始) \x0d\x0a 7、關閉JDBC對象 \x0d\x0a 操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲 \x0d\x0a 明順序相反: \x0d\x0a 1、關閉記錄集 \x0d\x0a 2、關閉聲明 \x0d\x0a 3、關閉連接對象 \x0d\x0a if(rs != null){ // 關閉記錄集 \x0d\x0a try{ \x0d\x0a rs.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a } \x0d\x0a if(stmt != null){ // 關閉聲明 \x0d\x0a try{ \x0d\x0a stmt.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a } \x0d\x0a if(conn != null){ // 關閉連接對象 \x0d\x0a try{ \x0d\x0a conn.close() ; \x0d\x0a }catch(SQLException e){ \x0d\x0a e.printStackTrace() ; \x0d\x0a } \x0d\x0a }

java 操作 資料庫

Java連接資料庫是使用具體資料庫的JDBC驅動程序來實現的,每一個資料庫的驅動程序不同。

以下是一段示例代碼:

1.Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance(); //載入資料庫JDBC驅動,該驅動會自動註冊連接所需信息。

2.String url=”jdbc:oracle:thin:@localhost:1521:orcl”; //定義連接字元串

String user=”test”; //用戶名

String password=”test”; //密碼

3.Connection conn= DriverManager.getConnection(url,user,password);//通過DriverManager獲取資料庫連接引用

4.Statement sql = conn.createStatement(Resultset.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);//生成一個Statement

5.ResultSet rs = sql.executeQuery(“SELECT * FROM 表”);//獲取記錄集引用

6.System.out.println(rs(‘欄位一’));//輸出當前一行表頭為『欄位一』的數據。

以下再提供給你幾個常用資料庫的連接方式(驅動通常都是一個jar包,可以去資料庫提供商官網下載):

1、Oracle8/8i/9i資料庫(thin模式)

Class.forName(“oracle.jdbc.driver.OracleDriver”).newInstance();

String url=”jdbc:oracle:thin:@localhost:1521:orcl”;

//orcl為資料庫的SID

String user=”test”;

String password=”test”;

Connection conn= DriverManager.getConnection(url,user,password);

2、DB2資料庫

Class.forName(“com.ibm.db2.jdbc.app.DB2Driver “).newInstance();

String url=”jdbc:db2://localhost:5000/sample”;

//sample為你的資料庫名

String user=”admin”;

String password=””;

Connection conn= DriverManager.getConnection(url,user,password);

3、Sql Server7.0/2000資料庫

Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance();

String url=”jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb”;

//mydb為資料庫

String user=”sa”;

String password=””;

Connection conn= DriverManager.getConnection(url,user,password);

4、Sybase資料庫

Class.forName(“com.sybase.jdbc.SybDriver”).newInstance();

String url =” jdbc:sybase:Tds:localhost:5007/myDB”;

//myDB為你的資料庫名

Properties sysProps = System.getProperties();

SysProps.put(“user”,”userid”);

SysProps.put(“password”,”user_password”);

Connection conn= DriverManager.getConnection(url, SysProps);

5、Informix資料庫

Class.forName(“com.informix.jdbc.IfxDriver”).newInstance();

String url =

“jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;

user=testuser;password=testpassword”;

//myDB為資料庫名

Connection conn= DriverManager.getConnection(url);

6、MySQL資料庫

Class.forName(“org.gjt.mm.mysql.Driver”).newInstance();

String url =”jdbc:mysql://localhost/myDB?user=softpassword=soft1234useUnicode=truecharacterEncoding=8859_1″

//myDB為資料庫名

Connection conn= DriverManager.getConnection(url);

7、PostgreSQL資料庫

Class.forName(“org.postgresql.Driver”).newInstance();

String url =”jdbc:postgresql://localhost/myDB”

//myDB為資料庫名

String user=”myuser”;

String password=”mypassword”;

Connection conn= DriverManager.getConnection(url,user,password);

另外一種方式是針對Windows的,首先建立一個DSN,然後使用Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);和”jdbc:odbc:數據源名稱”來獲取連接引用,不過這樣平台依賴性很大,不推薦這樣做。

希望我的回答對你有所幫助!

在Java中如何對資料庫中的數據進行操作?

package com.dao;import java.sql.*;import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;public class BaseDao {

/**

* 創建資料庫連接及關閉

*/

// 打開連接

public static Connection getConnection() {

Connection con = null; /*************************** oracl 的連接 ***************************************/

// try { // Class.forName(“oracle.jdbc.driver.OracleDriver”);

// con = DriverManager.getConnection(

// “jdbc:oracle:thin:@127.0.0.1:1521:orcl”, “bbs”, “sa”);

// } catch (ClassNotFoundException e) {

// e.printStackTrace();

// } catch (SQLException e) {

// e.printStackTrace();

// }

/******************************* sqlerver 的連接 ******************************/

try {

Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);

con = DriverManager.getConnection(

“jdbc:sqlserver://127.0.0.1:1433;databasename=bbs”, “sa”,

“zhou”);

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

/*********************************************************************/

return con;

} // 關閉

public static void closeAll(Connection connection,

PreparedStatement pStatement, ResultSet res) {

try {

if (connection != null (!connection.isClosed())) {

connection.close();

}

if (res != null) {

res.close();

res = null;

}

if (pStatement != null) {

pStatement.close();

pStatement = null;

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

對資料庫增刪改查package com.dao;import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;import com.entity.News;public class NewsDao {

Connection con = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

/**

* 添加新聞

* @param news

* @return

*/

public boolean newsAdd(News news){

boolean result=false;

String sql=”insert into news values(?,?)”;

con=BaseDao.getConnection();

try {

pstmt=con.prepareStatement(sql);

pstmt.setString(1, news.getContent());

pstmt.setString(2, FormatTime.newTime());

int i = 0;

i = pstmt.executeUpdate();

if (i 0)

result = true;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return result;

}

/**

* 修改新聞

* @param news

* @return

*/

public boolean updateNews(News news){

boolean result=false;

con=BaseDao.getConnection();

try {

pstmt=con.prepareStatement(“update news set content=? ,writedate=? where newsid=?”);

pstmt.setString(1, news.getContent());

pstmt.setString(2, FormatTime.newTime());

pstmt.setInt(3, news.getNewsID());

int i = 0;

i = pstmt.executeUpdate();

if (i 0)

result = true;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return result;

}

/**

* 刪除新聞

* @param news

* @return

*/

public boolean deleteNews(News news){

boolean result=false;

String sql=String.format(“delete from news where newsid=%d”, news.getNewsID());

con=BaseDao.getConnection();

try {

pstmt=con.prepareStatement(sql);

int i = 0;

i = pstmt.executeUpdate();

if (i 0)

result = true;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return result;

}

/**

* 刪除新聞 重載

* @param newsId

* @return

*/

public boolean deleteNews(int newsId){

boolean result=false;

String sql=String.format(“delete from news where newsid=%d”, newsId);

con=BaseDao.getConnection();

try {

pstmt=con.prepareStatement(sql);

int i = 0;

i = pstmt.executeUpdate();

if (i 0)

result = true;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return result;

}

/**

* 查詢所有的新聞

* @return

*/

public ListNews selectAllNews(){

ListNews list=new ArrayListNews();

String sql=”select * from Users”;

con=BaseDao.getConnection();

try {

pstmt=con.prepareStatement(sql);

rs=pstmt.executeQuery();

while(rs.next()){

News news=new News();

news.setNewsID(rs.getInt(1));

news.setContent(rs.getString(2));

news.setWriteDate(rs.getString(3));

list.add(news);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

BaseDao.closeAll(rs, pstmt, con);

}

return list;

}

/**

* 查詢單個

* @return

*/

public News selectOneNews(){

News news=new News();

con=BaseDao.getConnection();

try {

pstmt=con.prepareStatement(“select top 1 * from news order by newsid desc”);

rs=pstmt.executeQuery();

while(rs.next()){

news.setNewsID(rs.getInt(1));

news.setContent(rs.getString(2));

news.setWriteDate(rs.getString(3));

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

BaseDao.closeAll(rs, pstmt, con);

}

return news;

}

}

實體類package com.entity;import java.io.Serializable;

public class News implements Serializable{

private int newsID;

private String content;

private String writeDate; public News() {

super();

// TODO Auto-generated constructor stub

} public News(String content, String writeDate) {

super();

this.content = content;

this.writeDate = writeDate;

} public News(int newsID, String content, String writeDate) {

super();

this.newsID = newsID;

this.content = content;

this.writeDate = writeDate;

} public int getNewsID() {

return newsID;

} public void setNewsID(int newsID) {

this.newsID = newsID;

} public String getContent() {

return content;

} public void setContent(String content) {

this.content = content;

} public String getWriteDate() {

return writeDate;

} public void setWriteDate(String writeDate) {

this.writeDate = writeDate;

}

}

如何在Java程序中訪問mysql資料庫中的數據並進行簡單的操作

一、使用工具:java語言、Myeclipse。

二、操作步驟:

1、第一步:載入MySQL的JDBC的驅動

2、第二步:創建與MySQL資料庫的連接類的實例

3、第三步:獲取連接類實例con,用con創建Statement對象類實例 sql_statement

4、第四步:執行查詢,用ResultSet類的對象,返回查詢的結果

5、得出數據

三、注意事項:有幾處是需要根據自身情況修改的

1、如下圖中的url和賬號,密碼需要與你自己的相一致。

2、這些需要訪問的數據必須要與資料庫中的類型相互匹配,才能列印出正確的結果。

java怎麼操作資料庫呢?

jdbc連接資料庫,DriverManger等初始化連接,prepareStatement語句執行sql,ResultSet拿到執行結果,while result.hasNext循環拿到數據值等。

如果不用jdbc,可以用框架,hibernate,mybatis都是可以的。

詳情可以私聊我,手機打字太累了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/300665.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-29 12:52
下一篇 2024-12-29 12:52

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論