zoukankan      html  css  js  c++  java
  • 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+"	"+b+"	"+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;">





  • 相关阅读:
    十的次方——挖掘并非显而易见的观点与想法
    6-3-5式脑力接龙
    三个臭皮匠,顶上一个诸葛亮——在Google Ideathon上Design Thinking分享
    上瘾:如何打造习惯养成中的产品(投资篇)
    上瘾:如何打造习惯养成中的产品(奖励篇)
    上瘾:如何打造习惯养成中的产品(行动篇)
    上瘾:如何打造习惯养成中的产品(触发器篇)
    上瘾:如何打造习惯养成中的产品
    告别2013拥抱2014
    Design Thinking Workshop @ Agile Tour 2013 Shanghai
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/10035881.html
Copyright © 2011-2022 走看看