1. 程式人生 > >JAVA入門到精通-第64講-sql server備份恢復

JAVA入門到精通-第64講-sql server備份恢復

  郵件伺服器備份:   c 建立  查詢  更新  刪除  /  增刪改查;   分離:把資料庫aaa暫時離開資料庫,可以分離,附加到另外地方去; .mdf  和  .ldf 這兩個檔案   所有任務---分離資料庫  
  附加資料庫:   ---備份和恢復 備份資料庫不會影響原資料庫的使用;   備份資料庫會形成 back檔案; kkk.back     ---資料庫恢復 備份對應還原;   .從裝置 ========================= --查詢分析器中完成備份和恢復
  -- 如何備份資料庫 backup  database  aaa  to  disk='xxx.bak'   --刪除資料庫 drop  database  aaa   --恢復資料庫 restore  database  你的資料庫名  from  disk='xxx'   --有時候可能不需要備份整個資料,表的備份...
    --JDBC-- 現實生活中有許多程式語言, 資料庫需要對這些程式語言有好的支援, 各個語言不一樣,做個介面, 微軟-最早做了個ODBC,開放的資料介面; 介面就是一堆API,一堆函式; 通過API,對資料庫進行操作;   sun公司對效率不太滿意,JDBC,JDBC-ODBC-資料庫; JDBC直接操作資料庫;純JDBC(微軟提供給sun的驅動); 本地協議的JDBC/網路化的JDBC;   JDBC-ODBC: 純JDBC:     JAVA-ORACLE: 也叫JDBC,但是針對ORACLE的JDBC;不同的系統; 連的時候的驅動不一樣,後面是一樣的;     Hiberate專案:所有資料庫統一起來: 實現了對資料庫操作更寬泛的統一和更好的可移植性;   --jdbc-odbc橋連線,odbc搭了個橋   -演示使用jdbc-odbc橋連方式操作資料庫  1.配置資料來源 2.在程式中連線資料來源 --------------------------------- 開始-控制面板-管理工具-資料來源 使用者、系統 使用者DSN/新增-SQLserver   小三角,會在全網中找資料庫例項,速度會很慢 .  或者 local   兩種方式連線資料來源       ----------------------- --程式中連線資料來源   1.載入驅動(作用是把需要的驅動加入記憶體) Class. forName("sun.jdbc.odbc.Jdc0dbcDriver")   2.得到連線    import  java.sql.*;   Connection  ct= DriverManager.getConnection(" jdbc:odbc:mytest","sa","shunping")    mytest是資料來源的名稱,windows驗證,不寫使用者名稱、密碼;   3.建立statement或者PreparedStatement  //statement用處是: 主要用於傳送sql語句到資料庫 Statement  sm=ct.createStatement();   4.執行(crud,建立資料庫,備份資料庫,刪除資料庫) //executeUpdate可以執行cud操作 sm. executeUpdate(arg0)   int i=sm.execute....... i==1 ,1 條加進;i表示新增記錄的數量;     Connection / Stetement 是一種資源,必須關閉; 不然,連線會越積越多; 關閉順序是:誰後建立,誰先關閉; 為了程式健壯,做一個判斷: if (sm !=null)      

資料庫的備份和恢復

使用企業管理器完成備份和恢復

使用企業管理器有兩種方式完成備份和恢復

1、分離/附加

    分離完後,請到sql server安裝的目錄下去找兩個檔案資料庫名.mdf和資料庫名.ldf,這兩個檔案就是分離後的檔案,資料庫分離後,該資料庫就不能再使用了。

    附加是指,當用戶需要重新使用某個分離的資料庫時進行的操作,就是讓sql server資料庫重新關聯該資料庫。

 

2、備份/恢復

    備份資料庫是指,把某個資料庫檔案從sql server中備份出來,這樣使用者可以根據需要再使用(用於恢復、複用..),備份資料庫不會影響到源資料庫的使用

    恢復資料庫是指,當源資料庫因為某種原因(比如源資料庫毀壞、資料丟失、系統崩潰)需要恢復時進行的操作

 

使用查詢分析器完成備份和恢復

    用企業管理器完成對資料庫的備份和恢復簡單直觀,同樣我們也可以在查詢分析器中完成類似的任務。

--使用查詢分析器對資料庫進行備份和恢復

--資料庫備份

--語法:backup database 資料庫名 to disk='儲存路徑'

backup database LiangshanHero2 to disk='f:/liangshan.bak'

 

--資料庫恢復

--語法:restore database 資料庫名 from disk='讀取路徑'

restore database LiangshanHero2 from disk='f:/liangshan.bak'

 

--新建資料庫

--語法:create datebase 資料庫名

create database LiangshanHero2

 

--刪除資料庫

--語法:drop database 資料庫名

drop database LiangshanHero2

 

*******************************************************************************


 

 

java程式操作sql server

crud介紹(增、刪、改、查操作)

CRUD是指在做計算處理時的增加(Create)、查詢(Retrieve)(重新得到資料)、更新(Update)和刪除(Delete)幾個單記事的首字母簡寫。主要被用在描述軟體系統中資料庫或者持久層的基本操作功能。

 Incomputing,CRUD is an acronym for create,retrieve,update,and delete.It is used to refer to the basic functions of a database or persistence layer in a software system.

 Create new records

 Rctricvc cxisting rccords

 Update existing records

 Delete existing records.

 

crud介紹

要對資料表進行增、刪、改、查,我們首先要清楚jdbc基本的概念:

 

   

 

 

   

JDBC有兩種,一種原sun公司提供的資料庫連線api但不是直接連線sql server而是先連線ODBC再通過ODBCsql server進行操作;一種是由微軟提供的JDBC資料庫連線api可直接對sql server資料庫進行操作。

JDBCJava Data Base Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。JDBC提供了一種基準,據此可以構建更高階的工具和介面,使資料庫開發人員能夠編寫資料庫應用程式,同時,JDBC也是個商標名。

    有了JDBC,向各種關係資料傳送SQL語句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問Sybase資料庫專門寫一個程式,為訪問Oracle資料庫又專門寫一個程式,或為訪問Informix資料庫又編寫另一個程式等等,程式設計師只需用JDBC API寫一個程式就夠了,它可向相應資料庫傳送SQL呼叫。同時,將Java語言和JDBC結合起來使程式設計師不必為不同的平臺編寫不同的應用程式,只須寫一遍程式就可以讓它在任何平臺上執行,這也是Java語言“編寫一次,處處執行”的優勢。

注:JDBC訪問不同的資料庫使用的JDBC API都有所不同,雖然統稱為JDBC。如:訪問sql server資料庫的JDBC,是不能訪問oracle資料庫的,同理也是也不訪問mysqldb2Informix資料庫等。只是訪問方式不同,對資料庫的操作依然是使用sql語句操作

Java 具有堅固、安全、易於使用、易於理解和可從網路上自動下載等特性,是編寫資料庫應用程式的傑出語言。所需要的只是 Java應用程式與各種不同資料庫之間進行對話的方法。而JDBC 正是作為此種用途的機制。

 

java程式操作sql server

jdbc的驅動的分類

目前比較常見的JDBC驅動程式可分為以下四個種類

1jdbc-odbc橋連線

2、本地協議純java驅動程式

3、網路協議純java驅動程式

4、本地api

 

jdbc不足

儘管JDBCJAVA語言層面實現了統一,但不同資料庫仍舊有許多差異。為了更好地實現跨資料庫操作,於是誕生了Hibernate專案,Hibernate是對JDBC的再封裝,實現了對資料庫操作更寬泛的統一和更好的可移植性。

 

java操作sql server資料庫()

 

1、我們先使用jdbc-odbc橋連的方式來操作sql server資料庫()完成對emp表的crud操作[Sql_test1.java]

2、再用jdbc驅動程式直接操作sql server資料庫()完成對emp表的crud操作。

/**

*演示使用jdbc-odbc橋連方式操作sql server資料庫

* 具體操作test資料庫的emp表和dept

 *1、配置資料來源--windows下在控制面板-->管理工具-->ODBC資料來源-->使用者DSN--新增

* sql server

 * 2、在程式中去連線資料來源

* 3、使用Statement(不安全)連線資料庫

*/

 1 package com.sqlserver;
 2 import java.sql.*;
 3 public class Sql_test1 {
 4     public static void main(String[] args) {
 5         Connection ct=null;
 6         Statement  sm=null;
 7         ResultSet  rs=null;
 8         try {
 9             //1、載入驅動(把需要的驅動程式加入記憶體)
10             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
11             //2、得到連線(指定連線到哪個資料來源、資料庫的使用者名稱和密碼)
12             //如果配置資料來源的時候選擇的是windows NT驗證方式,則不需要資料庫的使用者名稱和密碼
13             //Connection ct=DriverManager.getConnection("jdbc:odbc:mytest");
14             ct=DriverManager.getConnection("jdbc:odbc:mytest","sa","sa");
15             //3、建立Statement或者PreparedStatement(區別)
16             //Statement用處:主要用於傳送SQL語句到資料庫
17             sm=ct.createStatement();
18             //4、執行(CRUD,建立資料庫、備份資料庫、刪除資料庫)
19             //演示1:新增一條資料到dept表中
20             //executeUpdate可以執行CUD操作(新增、刪除、修改)
21             int i=sm.executeUpdate("insert into dept values('60','保安部','西永')");
22             if(i==1){
23                 System.out.println("資料新增成功");
24             }else{
25                 System.out.println("新增失敗");
26             }
27            
28             //演示2:從dept表中刪除一條記錄
29             int j=sm.executeUpdate("delete from dept where deptno='50'");
30             if(j==1){
31                 System.out.println("資料刪除成功");
32             }else{
33                 System.out.println("刪除失敗");
34             }
35            
36             //演示3:從dept表中修改deptno=40 loc改為beijing
37             int k=sm.executeUpdate("update dept set loc='beijing' where deptno='40'");
38             if(k==1){
39                 System.out.println("資料修改成功");
40             }else{
41                 System.out.println("修改失敗");
42             }
43            
44             //演示4:查詢,顯示所有的部門資訊
45             //ResultSet結果集,大家可以把ResultSet理解成返回一張錶行的結果集
46             rs=sm.executeQuery("select * from dept");
47             //迴圈取出
48             while(rs.next()){
49                 int a=rs.getInt(1);
50                 String b=rs.getString(2);
51                 String c=rs.getString(3);
52                 System.out.println(a+"\t"+b+"\t"+c);   
53             }
54         } catch (Exception e) {
55             e.printStackTrace();
56         }finally{
57             //關閉資源,關閉順序先建立後關閉,後建立先關閉
58             try {
59                 //為了程式健壯
60                 if(rs!=null){
61                     rs.close();
62                 }
63                 if(sm!=null){
64                     sm.close();
65                 }
66                 if(ct!=null){
67                     ct.close();
68                 }
69             } catch (SQLException e) {
70                 e.printStackTrace();
71             }
72         }
73     }
74 }

 

                       

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

       



來自為知筆記(Wiz)