jdbc執行sql
A. jdbc連接資料庫sqlserver後怎麼執行sql語句
首先確保SQLSERVER服務正在運行,並可以允許遠程訪問連接
然後按如下步驟進行連接
1.安裝JDBC驅動
1)下載JDBC驅動
http://www.microsoft.com/zh-cn/download/details.aspx?id=11774
2)執行sqljdbc_4.0.2206.100_chs.exe解壓驅動文件
3)拷貝以下目錄中的sqljdbc_auth.dll到Windows的System32目錄。對x64的機子,x64的dll拷到C:\Windows\System32,x86的dll拷到C:\Windows\SysWOW64目錄。
Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\auth\
2.在java程序中連接SQL Server
classpath中加上安裝好的SQL Server jdbc jar包
Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\chs\sqljdbc4.jar
連接SQL Server的JDBC代碼
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:54364;databaseName=master;IntegratedSecurity=True";
Connection con = DriverManager.getConnection(url);
在SQL Server Browser服務開啟的情況下也可以通過服務名連接
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=master;IntegratedSecurity=True";
Connection con = DriverManager.getConnection(url);
3.身份驗證模式
SQL Server默認使用Windows身份驗證模式,這也是官方推薦的模式,安全性更高。上面的連接例子就是採用的Windows認證。如果要使用混合認證模式,需要下載SQL Server Management Studio,並通過SQL Server Management Studio修改認證模式為混合認證模式。
SQL Server Management Studio的下載地址
http://www.microsoft.com/zh-cn/download/details.aspx?id=8961
修改SQL Server認證模式的方法
http://technet.microsoft.com/zh-cn/library/ms188670(v=sql.105).aspx
混合認證模式下,可以由資料庫進行認證,連接時需要提供用戶名和密碼
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:54364;databaseName=master";
Connection con = DriverManager.getConnection(url,"user","password");
B. orcale 怎麼通過jdbc執行sql文件
首先你要知道jdbc就是是一種用於執行SQL語句的Java API。我寫點簡單的步驟你參考下~
訪問資料庫的步驟:
1.載入JDBC驅動的實例,
Class.forName()"oracle.jdbc.driver.OracleDriver";
2.指定資料庫
通過連接字元串url指定資料庫.
oracle格式: jdbc:oracle:thin:@host:port:sid
String url = jdbc:oracle:thin:@192.168.0.26:1521:tarena
mysql的格式: jdbc:mysql://host:port/databaseName
String url = jdbc:mysql://localhost:3306/openlab
3.打開資料庫連接
Connection conn = DriverManager.getConnection(url, dbUser, dbPwd);
三個輸入參數: 連接字元串,資料庫用戶名,資料庫密碼
如果連接成功,返回連接對象conn.
Connection對象表示一個與特定資料庫的會話過程.
4.創建Stetement
Statememt stmt = conn.createStatement();
5.提交sql,並返回結果
//查詢語句的執行,使用stmt.executeQuery(sql)方法.
String sql = "select id, name from employees";
ResuleSet rs = stmt.executeQuery(sql);
//DML(insert/update/delete)語句,
String sql = "update employees set salary = 2000"
+ " where salary < 2000";
int result = stmt.executeUpdate(sql);
6.處理結果
1) 查詢返回的結果集放在ResultSet對象中.
2) ResultSet是一個二維表結構.
3) ResultSet的最初位置:第一行之前(Before First)
4) 可以使用ResutltSet的next()方法使指針下移一行,
並返回下移後的這一行是否有數據,有返回true,沒有返回false
5) rs.getXxx(columnIndex);//Int, String, Double...
rs.getInt(1); 或寫成 rs.getInt("id");
rs.getString(2); 或寫成 rs.getString("name");
7.關閉資源
rs.close();
stmt.close();
conn.close();
希望能幫到你~
C. JDBC執行SQL語句使用哪些類
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
String JDBC_DRIVER = "驅動地址";
String DB_URL = "資料庫url,即IP埠";
String USER = "資料庫賬號";
String PWD = "資料庫密碼";
try {
//注冊載入jdbc驅動
Class.forName(JDBC_DRIVER);
//打開連接
conn = DriverManager.getConnection(DB_URL,USER,PWD);
//創建執行對象
stmt = conn.createStatement();
String testUrl = "select * from project_table";
//執行sql語句
ResultSet rs = stmt.executeQuery(testUrl);
//ResultSetMetaData rsmd = rs.getMetaData();
//展開結果集
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
D. 在jdbc進行資料庫調用時 採用哪些方式執行sql語句呢
創建Statement對象 使用Statement對象執行語句 語句完成 關閉Statement對象 使用方法execute基於JDBC的資料庫通用訪問方法
E. J2EE使用JDBC執行SQL語句需要哪個對象
JDBC
入門
--
建立聯接
你需要做的第一事情是你與想要使用的
DBMS
建立一個連接。這包含
2
個步驟:裝載驅動程序並建立連接。
裝載驅動程序
裝載驅動程序只需要非常簡單的一行代碼。例如,你想要使用
JDBC-ODBC
橋驅動程序,
可以用下列代碼裝載它:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
你的驅動程序文檔將告訴你應該使用的類名。例如,
如果類名是
jdbc.DriverXYZ
,你將用代碼以下的代碼裝載驅動程序:
Class.forName("jdbc.DriverXYZ");
你不需要創建一個驅動程序類的實例並且用
DriverManager
登記它,因為調用
Class.forName
將自動將載入驅動程序類。如果你曾自己創建實例,你將創建一個不必要的副本,但它不會帶來什麼壞處。
載入
Driver
類後,它們即可用來與資料庫建立連接。
建立連接
第二步就是用適當的驅動程序類與
DBMS
建立一個連接。下列代碼是一般的做法:
Connection
con
=
DriverManager.getConnection(url,
"myLogin",
"myPassword");
這個步驟也非常簡單,最難的是怎麼提供
url。如果你正在使用
JDBC-ODBC
橋,
JDBC
URL
將以
jdbc:odbc
開始:餘下
URL
通常是你的數據源名字或
資料庫系統
。因此,假設你正在使用
ODBC
存取一個叫
"Fred"
的
ODBC
數據源,你的
JDBC
URL
是
jdbc:odbc:Fred
。把
"myLogin"
及
"myPassword"
替換為你登陸
DBMS
的用戶名及口令。如果你登陸資料庫系統的用戶名為
"Fernanda"
口令為
"J8",只需下面的
2
行代碼就可以建立一個連接:
String
url
=
"jdbc:odbc:Fred";
Connection
con
=
DriverManager.getConnection(url,"Fernanda",
"J8");
如果你使用的是第三方開發了的
JDBC驅動程序
,文檔將告訴你該使用什麼
subprotocol,
就是在
JDBC
URL
中放在
jdbc
後面的部分。例如,
如果驅動程序開發者注冊了
acme
作為
subprotocol,
JDBC
URL
的第一和第二部分將是
jdbc:acme。驅動程序文檔也會告訴你餘下
JDBC
URL
的格式。JDBC
URL
最後一部分提供了定位資料庫的信息。
如果你裝載的驅動程序識別了提供給
DriverManager.getConnection
的
JDBC
URL
,那個驅動程序將根據
JDBC
URL
建立一個到指定
DBMS
的連接。正如名稱所示,DriverManager
類在幕後為你管理建立連接的所有細節。除非你是正在寫驅動程序,你可能無需使用此類的其它任何方法,一般程序員需要在此類中直接使用的唯一方法是
DriverManager.getConnection。
DriverManager.getConnection
方法返回一個打開的連接,你可以使用此連接創建
JDBC
statements
並發送
SQL
語句到資料庫。在前面的例子里,con
對象是一個打開的連接,並且我們要在以後的例子里使用它。
建議你在所搜你所用的資料庫以及其JDBC(例如mysql
jdbc)
F. jdbc實現sql語句
用這個類吧.好的話,給我加加分.
import java.sql.*;
/**
* @功能: 一個JDBC的本地化API連接類,封裝了數據操作方法,只用傳一個SQL語句即可
* @作者: 李開歡
* @日期: 2007/
*/
public class ConnectionDemo {
/*
* 這里可以將常量全部放入另一個類中,以方便修改
*/
private static Connection conn;
private static Statement ps;
private static ResultSet rs;
private static final String DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static final String URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
private static final String USER ="sa";
private static final String PASS = "sa";
public ConnectionDemo() {
// TODO Auto-generated constructor stub
ConnectionDemo.getConnection();
}
public static Connection getConnection(){
System.out.println("連接中...");
try {
Class.forName(ConnectionDemo.DRIVER);
conn = DriverManager.getConnection(ConnectionDemo.URL, ConnectionDemo.USER, ConnectionDemo.PASS);
System.out.println("成功連接");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static Statement getStatement(String sql){
System.out.println("執行SQL語句中...");
try {
ps = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
if(sql.substring(0, 6).equals("select")){
rs = ps.executeQuery(sql);
System.out.println("執行完查詢操作,結果已返回ResultSet集合");
}else if(sql.substring(0, 6).equals("delete")){
ps.executeUpdate(sql);
System.out.println("已執行完畢刪除操作");
}else if(sql.substring(0, 6).equals("insert")){
ps.executeUpdate(sql);
System.out.println("已執行完畢增加操作");
}else{
ps.executeUpdate(sql);
System.out.println("已執行完畢更新操作");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ps;
}
public static ResultSet getResultSet(){
System.out.println("查詢結果為:");
return rs;
}
public static void closeConnection(){
System.out.println("關閉連接中...");
try {
if (rs != null) {
rs.close();
System.out.println("已關閉ResultSet");
}
if (ps != null) {
ps.close();
System.out.println("已關閉Statement");
}
if (conn != null) {
conn.close();
System.out.println("已關閉Connection");
}
} catch (Exception e) {
// TODO: handle exception
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ConnectionDemo.getConnection();
String sql = "delete from type where id = 1";
ConnectionDemo.getStatement(sql);
String sql2 = "insert into type values(1,'教學設備')";
ConnectionDemo.getStatement(sql2);
String sql1 = "select * from type";
ConnectionDemo.getStatement(sql1);
ResultSet rs = ConnectionDemo.getResultSet();
System.out.println("編號 "+"類 型");
try {
while(rs.next()){
System.out.print(" "+rs.getInt(1)+" ");
System.out.println(rs.getString(2));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ConnectionDemo.closeConnection();
}
}
G. java jdbc 執行sql問題
你這句SQL語句是被賦值給一個字元串對象了吧?如果在plsql中運行沒有問題。SQL本身就沒有問題。把末尾的分號去掉試一下。
H. java的jdbc執行sql問題
Sessionsession=null;
finalList<String>objNames=newArray<String>();
try{
session=getSession();
//
session.doWork(newWork(){
publicvoidexecute(Connectionconn)throwsSQLException{
Stringsql=":Selectobject_nameFromuser_objectsWhereobject_type='PROCEDURE'";
ResultSetrs=conn.createStatement().executeQuery(sql);
while(rs.next()){
objNames.add(rs.getString(1));
}
}
});
//
//objNames就是你要的結果了
}finally{
if(session!=null){
session.close();
}
}
I. 原生jdbc執行sql的過程是什麼呢
標準的API,可以構建更高級的工具和介面,使資料庫開發人員能夠用純Java API編寫資料庫應用程序。同時,JDBC也是一個品牌。使用JDBC,可以很容易地向各種關系數據發送SQL語句。換句話說,有了JDBC API,就不需要再編寫一個訪問Sybase資料庫的程序,另一個訪問Oracle資料庫的程序,或者另一個訪問Informix資料庫的程序等等。
該連接地址將由資料庫製造商提供。通常,當使用JDBC連接到資料庫時,用戶需要輸入資料庫連接的用戶名和密碼。本章使用的是mysql資料庫,因此用戶名和密碼都是“root”,用戶只有在獲得連接後才能查詢或更新資料庫。要連接到資料庫,您需要從java.sql.DriverManager請求並獲取一個Connection對象,該對象表示資料庫的連接。
J. jdbc如何執行sql函數語句(如count,sum等)
Select count (*) from dc
得加括弧