java連接sql,java連接sql數據庫登錄界面

本文目錄一覽:

java如何實現sql連接和查詢的代碼?

import java.sql.Connection。

import java.sql.DriverManager;  

import java.sql.PreparedStatement;  

import java.sql.ResultSet;  

import java.sql.SQLException;

import javax.naming.Context;  

import javax.naming.InitialContext;  

import javax.naming.NamingException;  

import javax.sql.DataSource;

public class DBCon {

//數據庫驅動對象

public static final String DRIVER=”oracle.jdbc.driver.OracleDriver”;

//數據庫連接地址(數據庫名)

public static final String URL=”jdbc:oracle:thin:@localhost:1521:orcl”;

//登陸名

public static final String USER=”FM”;

//登陸密碼

public static final String PWD=”FM”;

//創建數據庫連接對象

private Connection con=null;

//創建數據庫預編譯對象

private PreparedStatement ps=null;

//創建結果集

private ResultSet rs=null;

//創建數據源對象

public static DataSource source=null;

//  //靜態代碼塊  

//  static{  

//  

//      //初始化配置文件context  

//      try {  

//          Context context=new InitialContext();  

//          source=(DataSource)context.lookup(“java:comp/env/jdbc/webmessage”);  

//      } catch (Exception e) {  

//          // TODO Auto-generated catch block  

//          e.printStackTrace();  

//      }  

//  

//  

//  }

/**

* 獲取數據庫連接

*/

public Connection getCon(){

try {

Class.forName(DRIVER);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

con=DriverManager.getConnection(URL,USER,PWD);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return con;

}  

//  /**  

//   * 獲取數據庫連接  

//   */  

//  public Connection getCon(){  

//  

//      try {  

//          con=source.getConnection();  

//      } catch (SQLException e) {  

//          // TODO Auto-generated catch block  

//          e.printStackTrace();  

//      }  

//  

//      return con;  

//  }  

/**

* 關閉所有資源

*/

public void closeAll(){

if(rs!=null)

try {

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if(ps!=null)

try {

ps.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if(con!=null)

try {

con.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}  

}

/**

* @param sql數據庫更新(增、刪、改) 語句

* @param pras參數列表(可傳,可不傳,不傳為NULL,以數組形式存在)

* @return 返回受影響都行數

*/

public int update(String sql,String… pras){

int resu=0;

con=getCon();

try {

ps=con.prepareStatement(sql);

for(int i=0;ipras.length;i++){

ps.setString(i+1,pras[i]);

}

resu=ps.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

finally{

closeAll();

}

return resu;

}

/**

* @param sql數據庫查詢語句

* @param pras參數列表(可傳,可不傳,不傳為NULL,以數組形式存在)

* @return 返回結果集

*/

public ResultSet query(String sql,String… pras){

con=getCon();

try {

ps=con.prepareStatement(sql);

if(pras!=null)

for(int i=0;ipras.length;i++){

ps.setString(i+1, pras[i]);

}

rs=ps.executeQuery();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return rs;

}  

}

java與sql連接

1、創建一個 PreparedStatement 對象來將參數化的 SQL 語句發送到數據庫。

2、 patat.setInt(1,id) 將第一個參數id設置為java給定int 值。

3、在PreparedStatement 對象中執行 SQL 查詢,並返回該查詢生成的 ResultSet 對象。

4、ResultSet 光標最初位於第一行之前;第一次調用 next 方法使第一行成為當前行;第二次調用使第二行成為當前行,依此類推

5、以 Java 編程語言中 String 的形式獲取此 ResultSet 對象的當前行中指定列的值

怎麼用java連接SQL數據庫?

如何用java連接sql的數據庫 1、java數據庫操作基本流程 : java數據庫操作基本流程:取得數據庫連接 – 執行sql語句 – 處理執行結果 – 釋放數據庫連接

2、幾個常用的重要技巧:可滾動、更新的記錄集 、 批量更新 、事務處理1、取得數據庫連接1)用DriverManager取數據庫連接例子:String className,url,uid,pwd;

className = “oracle.jdbc.driver.OracleDriver”;

url = “jdbc:oracle:thin:@127.0.0.1:1521:orasvr;

uid = “system”;

pwd = “manager”;

Class.forName(className);

Connection cn = DriverManager.getConnection(url,uid,pwd);2)用jndi(java的命名和目錄服務)方式例子String jndi = “jdbc/db”;

Context ctx = (Context) new InitialContext().lookup(“java:comp/env”);

DataSource ds = (DataSource) ctx.lookup(jndi);

Connection cn = ds.getConnection(); //多用於jsp中2、執行sql語句1)用Statement來執行sql語句String sql;

Statement sm = cn.createStatement();

sm.executeQuery(sql); // 執行數據查詢語句(select)

sm.executeUpdate(sql); // 執行數據更新語句(delete、update、insert、drop等)statement.close();2)用PreparedStatement來執行sql語句String sql;

sql = “insert into user (id,name) values (?,?)”;

PreparedStatement ps = cn.prepareStatement(sql);

ps.setInt(1,xxx);

ps.setString(2,xxx);

ResultSet rs = ps.executeQuery(); // 查詢

int c = ps.executeUpdate(); // 更新3、處理執行結果查詢語句,返回記錄集ResultSet。更新語句,返回數字,表示該更新影響的記錄數。ResultSet的方法:1、next(),將游標往後移動一行,如果成功返回true;否則返回false。2、getInt(“id”)或getSting(“name”),返回當前游標下某個字段的值。3、釋放連接。cn.close();一般,先關閉ResultSet,然後關閉Statement(或者PreparedStatement);最後關閉Connection可滾動、更新的記錄集1、創建可滾動、更新的StatementStatement sm=cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,

ResultSet.CONCUR_READ_ONLY);該Statement取得的ResultSet就是可滾動的2、創建PreparedStatement時指定參數PreparedStatemet ps=cn.prepareStatement(sql,

ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSet.absolute(9000);批量更新1、StatementStatement sm = cn.createStatement();

sm.addBatch(sql1);

sm.addBatch(sql2);

sm.executeBatch()一個Statement對象,可以執行多個sql語句以後,批量更新。這多個語句可以是delete、update、insert等或兼有2、PreparedStatementPreparedStatement ps = cn.preparedStatement(sql);

{

ps.setXXX(1,xxx);

ps.addBatch();

}

ps.executeBatch();一個PreparedStatement,可以把一個sql語句,變換參數多次執行,一次更新。事務的處理1、關閉Connection的自動提交cn.setAutoCommit(false);2、執行一系列sql語句要點:執行每一個新的sql語句前,上一次執行sql語句的Statement(或者PreparedStatemet)必須先closeStatement sm ;

sm = cn.createStatement(insert into user…);

sm.executeUpdate();

sm.close();sm = cn.createStatement(“insert into corp…);

sm.executeUpdate();

sm.close();3、提交cn.commit();

java連接SQL數據庫

import java.sql.ResultSet; //都是導入一些下面需要用到的類

String ConnStr=”jdbc:microsoft:sqlserver://WINJUE:1433;DatabaseName=library”;//jdbc連接數據庫url

public sqlServer() {

try {

Class.forName(DBDriver).newInstance(); //加載SQLServer驅動程序,DBDriver是你上面的代碼;

conn=DriverManager.getConnection(ConnStr,”sa”,”sa”); //和數據庫建立連接,ConnStr裡面的://WINJUE:1433;DatabaseName=library 分別是主機地址:端口號;你自己建的數據庫(database)

}

catch(SQLException e) { //捕獲SQL異常

System.out.println(e.getMessage()); //要是出現異常,捕獲到後,這句代碼會把異常的信息(出錯的原因之類的)打印出來。

}

catch(Exception e) { //捕獲異常,這個是總的,所以不能和上面的順序顛倒,先小到大,我連ORACLE和MYSQL,這個我通常不要,只須捕獲SQL異常就OL

System.out.println(e.getMessage());

}

}

public Connection getConn(){ //獲取連接方法

return conn;

}

public void insert(String sql) {//增刪改

try {

Statement stm=conn.createStatement(); 調用conn下的方法,創建Statement對象

stm.executeUpdate(sql);//調用Statement下的方法執行SQL語句

System.out.println(“操作成功”);

}

catch(Exception e){

System.out.println(e.getMessage()); //如上

}

}

public ResultSet query(String sql){ //查詢

try{

Statement stm=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

rs=stm.executeQuery(sql); //如上

}

catch(Exception e){

System.out.println(e.getMessage());

}

return rs;

}

public static void main(String args[]){

sqlServer conn=new sqlServer(); //創建sqlServer,就是你上面的類,以便調用裡面的方法

ResultSet rs=conn.query(“select * from Orders”); //調用query方法,執行SQL語句後,把結果保存到結果集里

//conn.insert(“delete from BookInfo where BookName =” +”\’悟空傳\'”);

//conn.insert(“insert into BookInfo (BookID,BookName,Author,KeyWord) values (14445678,’悟空傳’,’今何在’,’孫悟空’)”);

try{

while(rs.next()){ //循環,判斷結果集里的記錄,一條條往下走,是否還有下一條記錄,若是返回真,繼續走

System.out.print(rs.getString(“OrderID”));

//System.out.print(rs.getString(“U_age”));

}

rs.close() ; //關閉結果集

}

catch (Exception e){

System.out.println(e.getMessage());

}

}

}

注:

TYPE_FORWARD_ONLY:缺省類型。只允許向前訪問一次,並且不會受到其他用戶對該數據庫所作更改的影響。

TYPE_SCROLL_INSENSITIVE:允許在列表中向前或向後移動,甚至能進行特定定位,例如移至列表中的第四個記錄或從當前位置向後移動兩個記錄。不會受到其他用戶對該數據庫所作更改的影響。

TYPE_SCROLL_SENSITIVE:象 TYPE_SCROLL_INSENSITIVE 相同,允許在記錄中定位。這種類型受到其他用戶所作更改的影響。如果用戶在執行完查詢之後刪除一個記錄,那個記錄將從 ResultSet 中消失。類似的,對數據值的更改也將反映在 ResultSet 中。

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

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

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

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

    編程 2025-04-29
  • Java JsonPath 效率優化指南

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

    編程 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…

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

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

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

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

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

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

    編程 2025-04-29
  • openeuler安裝數據庫方案

    本文將介紹在openeuler操作系統中安裝數據庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟件源 sudo…

    編程 2025-04-29

發表回復

登錄後才能評論