❶ JDBC連接sqlServer多個實例
配置資料庫連接池使用單例模式直接改配置文件
❷ java連接資料庫的例子
public List getObject(String sql, Object[] object) { //sql執行語句,object是你sql語句裡面的參數
List list = new ArrayList();
Connection con = null;
PreparedStatement pre = null;
ResultSet rs = null;
try{
con = C3P0Util.getInstance().getConnection(); //這是你獲得資料庫連接,你把這里改成調用你自己寫的jdbc方法
pre = con.prepareStatement(sql); //執行sql語句
if(object!=null){
for(int i=0;i<object.length;i++){
pre.setObject(i+1, object[i]); //給sql裡面的參數進行賦值
}
}
rs = pre.executeQuery();
while(rs.next()){
Users u = new User();
u.setUserName(rs.getString("UserName"));
u.setUserPas(rs.getString("UserPas")); list.add(u);
}
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
C3P0Util.close(con, pre, rs); //關閉資料庫資源
}
return list; //返回list集合
}
注意:list裡面保存的是User對象的信息
你要獲得User對象的信息,那麼就要遍歷list
for(int i=0;i<list.size;i++){
User u = (User)list.get(i); System.out.println("UserName:"+u.getUserName());
System.out.println("UserPas:"+u.getUserPas());
} 上面是針對list裡面有很多個User對象,當然list裡面只有一個User對象,也是可以的。
如果你的list裡面只有一個User,那麼可以直接:User u = (User)list.get(0);
System.out.println("UserName:"+u.getUserName());
System.out.println("UserPas:"+u.getUserPas());
希望對你有幫助!
❸ mysql 我想要一個sql查詢語句,基於jdbc開發,舉例:
String sql = "DELETE FROM goodsinfo WHERE Gid = ?";
conn = DbConnection.getConnection();
try {
pstm = conn.prepareStatement(sql);
pstm.setString(1, gid);
rs = pstm.executeQuery();
while(rs.next())
{
重點在pstm.setString(1, gid);
(1,gid)中,1為你在設置值的第一個問號,gid為調用方法時候傳進來的參數
你是想要這個的嗎?
❹ mysql 我想要一個sql查詢語句,基於jdbc開發,舉例:
String
sql
=
"DELETE
FROM
goodsinfo
WHERE
Gid
=
?";
conn
=
DbConnection.getConnection();
try
{
pstm
=
conn.prepareStatement(sql);
pstm.setString(1,
gid);
rs
=
pstm.executeQuery();
while(rs.next())
{
重點在pstm.setString(1,
gid);
(1,gid)中,1為你在設置值的第一個問號,gid為調用方法時候傳進來的參數
你是想要這個的嗎?
❺ (轉)java中如何通過JDBC的方式連接sqlserver2005多實例資料庫
今天用java連接sqlserver 2005的多實例時,發現總是報錯"error while performing database login with the xxx driver,";在網上找到一篇文章,如下:java語言中,通過jdbc訪問sqlserver2005資料庫默認實例可以按正常的寫法來建立url連接,代碼如下:Connection cn = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2:1433; DatabaseName=EAS60_Demo", "sa","sa"); 其中172.16.5.2為sqlserver2005資料庫ip,EAS60_Demo為資料庫。那麼對於多實例(實例名:SQL2005)的資料庫又是如何訪問?經過查資料和摸索發現url寫法如下:con = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2;instanceName=SQL2005; DatabaseName=EAS60_Demo", "sa","sa");也可以這樣寫:Connection cn = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2//SQL2005; DatabaseName=EAS60_Demo", "sa","sa"); 用//實例名的方式,還是提示報錯,上一種用instanceName=實例名,可以正確連接.要改成以下方式:Connection cn = DriverManager.getConnection("jdbc:sqlserver://172.16.5.2\SQL2005; DatabaseName=EAS60_Demo", "sa","sa");注意,多實例的url中沒有埠號1433。
❻ jdbc連接sql Server 資料庫時用的資料庫名是指實例名嗎
java語言中,通過jdbc訪問sqlserver2005(2008)資料庫默認實例可以按常用的寫法來寫url連接。代碼如下:
[java]view plain
<spanstyle="font-size:12px;">Connectioncn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=demo","sa","sa");</span>
<spanstyle="font-size:12px;">con=DriverManager.getConnection("jdbc:sqlserver://localhost;instanceName=SQL2008R2;DatabaseName=Demo","sa","sa");</span>
<spanstyle="font-size:12px;">Connectioncn=DriverManager.getConnection("jdbc:sqlserver://localhost//SQL2005;DatabaseName=Demo","sa","sa");</span>
- 1. 如果機器上安裝的是SQLServer的默認實例(MSSQL),那麼就是通過TCP 默認1433埠遠程連接。如果你打開了防火牆,需要放開1433埠。
- 2. 如果機器上有多個資料庫實例,例如 SQLServer2005, SQLServer2008, SQLServer2008R2等,而你的SQLServer2008R2安裝在Named instance,例如localhostMyInstance。這樣連接默認是UDP 1434埠(可以自己指定,在第三點的第二個選項卡IP address裡面IPALL裡面輸入SQL運行的埠),並且需要打開SQL Browser service服務。在服務 - SQL Browser service,設置為自動啟動。如果你打開了防火牆,需要放開UDP 1434埠。
其中localhost為sqlserver2005資料庫ip,Demo為資料庫名。
自命名的sqlserver資料庫實例(實例名:SQL2008R2)的資料庫又是如何訪問?經過查資料和摸索發現url寫法如下:
[java]view plain
也可以這樣寫:
[java]view plain
注意,連接資料庫自命名實例的url中沒有埠號1433,這是SQLServer中的管理機制決定的。
❼ java連接sql資料庫。實現增刪改查怎麼寫。誰有實例
java連接資料庫,你可以用一些框架,比如hibernate,iBATIS等,這樣方便一點,否則你就用JDBC吧,自己寫sql語句:
JDBC連接資料庫
•創建一個以JDBC連接資料庫的程序,包含7個步驟:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入MySql的驅動類
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驅動程序類 ,載入驅動失敗!");
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例注冊到DriverManager類中。
2、提供JDBC連接的URL
•連接URL定義了連接資料庫時的協議、子協議、數據源標識。
•書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字元集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
•要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,
該對象就代表一個資料庫的連接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和
密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("資料庫連接失敗!");
se.printStackTrace() ;
}
4、創建一個Statement
•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3
種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5、執行SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句
,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或
DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的
語句。
具體實現的代碼:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
• ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些
行中數據的訪問。
• 使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比較高效
}
(列是從左到右編號的,並且從列1開始)
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲
明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
❽ 求java與資料庫連接實例,越詳細越好!資料庫是sqlserver2000。
public
class
www
{
public
static
void
main(String[]args)
throws
Exception
{
//第一步:載入驅動(驅動jar包必須加入classpath中)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//第二步:建立連接(根據實際情況替換資料庫的主機地址、埠號、資料庫明、登錄名、密碼)
Connection
conn
=
DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=shijiuban1",
"sa",
"111111");
System.out.println("當前連接到的資料庫="+conn.getCatalog());//查看當前連接到的資料庫名
//第三步:創建Statement對象
Statement
stmt
=
conn.createStatement();//只讀的結果集
//Statement
stmt2
=
conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);//可更新的結果集
//第四步:執行操作(增刪改查)
ResultSet
rs
=
stmt.executeQuery("select
*
from
stt");
//處理結果
while(rs.next()){
System.out.println(rs.getString("1"));
}
//第五步:關閉連接
conn.close();
}
}
❾ mysql jdbc 編程實例誰能給一個
package jdbc;
import java.sql.*;
class MysqlDb {
public static void DB(String sql) {
// 驅動程序名
String driver = "com.mysql.jdbc.Driver";
// url指向的資料庫
String url = "jdbc:mysql://localhost:3306/test";
// MYSQL用戶名
String user = "root";
// MYSQL密碼
String password = "root";
try {
// 載入驅動程序
Class.forName(driver);
// 連接資料庫
Connection conn = DriverManager.getConnection(url, user, password);
// statement用來執行SQL語句
Statement statement = conn.createStatement();
//執行查詢SQL
ResultSet rs = statement.executeQuery(sql);
//如表欄位有:name,age,card等
while (rs.next()) {
//取值
System.out.println(rs.getString("name"));
System.out.println(rs.getInt("age"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
MysqlDb.DB("select * from t_user");
}
}
❿ 用JDBC直接連接SQL資料庫,無需配置數據源,怎樣連接例子如下
http://hi..com/%CB%F7%C4%BD%CD%AB/blog/item/12cb4b8ebe7854f3503d920c.html
這裡面有你出現的問題,你自己看一下吧