URL當(dāng)中用了integratedSecurity=true;就不能用SQLServer的用戶名和密碼登錄了.你去掉試試。詳細(xì)看這里。blog.csdn.net/outofmemo/article/details/52549379

創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)達(dá)州托管服務(wù)器報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。
若要連接到遠(yuǎn)程服務(wù)器上的默認(rèn)實(shí)例,請使用:
String url = "jdbc:sqlserver://MyServer:integratedSecurity=true;"
若要連接到服務(wù)器上的特定端口,請使用:
String url = "jdbc:sqlserver://Myserver:1533;integratedSecurity=true;"
若要連接到服務(wù)器上的指定實(shí)例,請使用:
String url = "jdbc:sqlserver://MyServer;instanceName=INSTANCE1;integratedSecurity=true;"
若要連接到服務(wù)器上的特定數(shù)據(jù)庫,請使用:
String url = "jdbc:sqlserver://MyServer;database=AdventureWorks;integratedSecurity=true;"
package basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBC {
public void findAll() {
try {
// 獲得數(shù)據(jù)庫驅(qū)動
//由于長時(shí)間不寫,驅(qū)動名和URL都忘記了,不知道對不對,你應(yīng)該知道的,自己改一下的哈
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
// 創(chuàng)建連接
Connection conn = DriverManager.getConnection(url, userName,
password);
// 新建發(fā)送sql語句的對象
Statement st = conn.createStatement();
// 執(zhí)行sql
String sql = "select * from users";
ResultSet rs = st.executeQuery(sql);
// 處理結(jié)果
while(rs.next()){
//這個(gè)地方就是給你的封裝類屬性賦值
System.out.println("UserName:"+rs.getString(0));
}
// 關(guān)閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(){
try {
//步驟還是那六個(gè)步驟,前邊的兩步是一樣的
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url,userName,password);
//這里的發(fā)送sql語句的對象是PreparedStatement,成為預(yù)處理sql對象,因?yàn)榘礂l件刪除是需要不定值的
String sql = "delete from users where id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(0, 1);
int row = ps.executeUpdate();
if(row!=0){
System.out.println("刪除成功!");
}
// 關(guān)閉連接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如果說與數(shù)據(jù)庫打交道的意義上講,JDBC是最基礎(chǔ)的,mybatis等框架主鍵也是基于此。另外springJBA Data是什么鬼,是Spring Data JPA 吧,JPA全稱為Java持久性API(Java Persistence API),JPA是Java EE 5標(biāo)準(zhǔn)之一。
從應(yīng)用的角度來看,直接使用JDBC寫代碼連接數(shù)據(jù)庫已經(jīng)很少了,除了一些小項(xiàng)目;mybatis可以自動生成dao和daoImpl以及配置文件,可以修改sql語句,使用較為靈活;
為了簡化程序與數(shù)據(jù)庫交互的代碼,spring提供了一個(gè)現(xiàn)成的dao層框架,spring家族提供的spring-data適用于關(guān)系型數(shù)據(jù)庫和nosql數(shù)據(jù)庫 ,雖然使用起來很方便,但其簡化了SQL功能如查詢所有數(shù)據(jù) findAll(),但復(fù)雜查詢就有些麻煩了;
就是sqljdbc.auth.dll沒找到,要把它所有目錄放到系統(tǒng)變量Path或直接放到windows\System32下,不能把它打包到j(luò)ar里,也不是放在classpath上
如果JDBC連接處于自動提交模式,默認(rèn)情況下,則每個(gè)SQL語句在完成后都會提交到數(shù)據(jù)庫。
對于簡單的應(yīng)用程序可能沒有問題,但是有三個(gè)原因需要考慮是否關(guān)閉自動提交并管理自己的事務(wù) -
提高性能
保持業(yè)務(wù)流程的完整性
使用分布式事務(wù)
事務(wù)能夠控制何時(shí)更改提交并應(yīng)用于數(shù)據(jù)庫。 它將單個(gè)SQL語句或一組SQL語句視為一個(gè)邏輯單元,如果任何語句失敗,整個(gè)事務(wù)將失敗。
要啟用手動事務(wù)支持,而不是使用JDBC驅(qū)動程序默認(rèn)使用的自動提交模式,請調(diào)用Connection對象的setAutoCommit()方法。 如果將布爾的false傳遞給setAutoCommit(),則關(guān)閉自動提交。 也可以傳遞一個(gè)布爾值true來重新打開它。
例如,如果有一個(gè)名為conn的Connection對象,請將以下代碼關(guān)閉自動提交 -
conn.setAutoCommit(false);Java
提交和回滾
完成更改后,若要提交更改,那么可在連接對象上調(diào)用commit()方法,如下所示:
conn.commit( );Java
否則,要使用連接名為conn的數(shù)據(jù)庫回滾更新,請使用以下代碼 -
conn.rollback( );Java
以下示例說明了如何使用提交和回滾對象 -
try{
//Assume a valid connection object conn
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
String SQL = "INSERT INTO Employees ?" +
? ? ? ? ?"VALUES (106, 20, 'Rita', 'Tez')";
stmt.executeUpdate(SQL); ?
//Submit a malformed SQL statement that breaks
String SQL = "INSERTED IN Employees ?" +
? ? ? ? ?"VALUES (107, 22, 'Sita', 'Singh')";
stmt.executeUpdate(SQL);
// If there is no error.
conn.commit();}catch(SQLException se){
// If there is any error.
conn.rollback();}Java
在這種情況下,上述INSERT語句不會成功執(zhí)行,因?yàn)樗胁僮鞫急换貪L了。
為了更好的理解,建議學(xué)習(xí)研究“事務(wù)提交示例代碼”。
使用保存點(diǎn)
新的JDBC 3.0新添加了Savepoint接口提供了額外的事務(wù)控制能力。大多數(shù)現(xiàn)代DBMS支持其環(huán)境中的保存點(diǎn),如Oracle的PL/SQL。
設(shè)置保存點(diǎn)(Savepoint)時(shí),可以在事務(wù)中定義邏輯回滾點(diǎn)。 如果通過保存點(diǎn)(Savepoint)發(fā)生錯(cuò)誤時(shí),則可以使用回滾方法來撤消所有更改或僅保存保存點(diǎn)之后所做的更改。
Connection對象有兩種新的方法可用來管理保存點(diǎn) -
setSavepoint(String savepointName):?- 定義新的保存點(diǎn),它還返回一個(gè)Savepoint對象。
releaseSavepoint(Savepoint savepointName):?- 刪除保存點(diǎn)。要注意,它需要一個(gè)Savepoint對象作為參數(shù)。 該對象通常是由setSavepoint()方法生成的保存點(diǎn)。
有一個(gè)rollback (String savepointName)方法,它將使用事務(wù)回滾到指定的保存點(diǎn)。
以下示例說明了使用Savepoint對象 -
try{
//Assume a valid connection object conn
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
//set a Savepoint
Savepoint savepoint1 = conn.setSavepoint("Savepoint1");
String SQL = "INSERT INTO Employees " +
? ? ? ? ?"VALUES (106, 24, 'Curry', 'Stephen')";
stmt.executeUpdate(SQL); ?
//Submit a malformed SQL statement that breaks
String SQL = "INSERTED IN Employees " +
? ? ? ? ?"VALUES (107, 32, 'Kobe', 'Bryant')";
stmt.executeUpdate(SQL);
// If there is no error, commit the changes.
conn.commit();}catch(SQLException se){
// If there is any error.
conn.rollback(savepoint1);}Java
在這種情況下,上述INSERT語句都不會成功,因?yàn)樗胁僮鞫急换貪L了。
為了更好的理解,建議學(xué)習(xí)研究保存點(diǎn)示例代碼。
原文地址:網(wǎng)頁鏈接
新聞名稱:關(guān)于jdbcnosql的信息
標(biāo)題URL:http://chinadenli.net/article19/dsgoodh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、面包屑導(dǎo)航、微信小程序、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)