ych

          2007年6月1日

          通過exp導出與imp導入進行數據的備份轉移:
          exp命令:
          1 exp username/psw@TEST file=d:test.dmp full=y
          2 exp username/psw@TEST file=d:test.dmp owner=(ly)
          3 exp username/psw@TEST file= d:test.dmp tables=(grid1,grid2)
          1其中一是將Test(與某一數據庫對應的oracle服務名)數據庫進行整體導出
          2將屬于用戶ly的所有表導出
          3將表grid1,與grid2導出
          d:test.dmp是導出的文件地址

          imp命令:
          1 imp system/psw@TEST  file=d:test.dmp
          2 imp system/psw@TEST  full=y  file=d:test.dmp ignore=y
          3 imp system/psw@TEST  file=d:test.dmp  tables=(grid1)
          ignore=y表示如果被導入的數據庫中某個表已經存在就忽略不導入那個表
          3表示只導入grid1這個表

          在導入導出前要先測試下對應的數據庫是否是通的:tnsping test來測試,同樣test是服務名
          所有命令可在cmd下執行
          posted @ 2008-09-03 11:57 changhong 閱讀(97) | 評論 (0)編輯 收藏

          http://blog.csdn.net/techyang/archive/2005/08/09/448677.aspx(luanfengxia/arc/2006/05/20/746951.aspx)

           public ActionForward add(ActionMapping mapping, ActionForm form,
             HttpServletRequest request, HttpServletResponse response) throws Exception {
                  String encoding = request.getCharacterEncoding();
                  if ((encoding != null) && (encoding.equalsIgnoreCase("utf-8")))
                  {
                      response.setContentType("text/html; charset=gb2312");//如果沒有指定編碼,編碼格式為gb2312
                  }
                  NodeForm theForm = (NodeForm) form;
                  String nodename=theForm.getNodename();
                  String note=theForm.getNote();
                  FormFile file = theForm.getTheFile1();//取得上傳的文件
                  FormFile file2=theForm.getTheFile2();
                  FormFile file3=theForm.getTheFile3();
                  Session session=null;
                  String forward="";
                  try
                  {
                      /*
                       * 取當前系統路徑
                       */
                      String filePath = this.getServlet().getServletContext()
                      .getRealPath("/");
                      System.out.println("---------------------------------------"+filePath);
                      if(file.getFileSize()!=0){
                      ByteArrayInputStream stream = (ByteArrayInputStream) file.getInputStream();//把文件讀入
                    
                      //ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    
                      /*
                       * 建立一個上傳文件的輸出流
                       */
                      OutputStream bos = new FileOutputStream(filePath +
                              "UploadFiles\\"+file.getFileName());
                      request.setAttribute("fileName",filePath + "/"
                              + file.getFileName());
                      int bytesRead = 0;
                      byte[] buffer = new byte[8192];
                      while ((bytesRead = stream.read(buffer, 0, 8192)) != -1)
                      {
                          bos.write(buffer, 0, bytesRead);//將文件寫入服務器
                      }          
                      bos.close();
                      stream.close();
                      }if(file2.getFileSize()!=0){
                      ByteArrayInputStream stream2 = (ByteArrayInputStream) file2.getInputStream();
                      OutputStream bos2 =  new FileOutputStream(filePath +
                              "UploadFiles\\"+file2.getFileName());//建立一個上傳文件的輸出流
                      int bytesRead2 = 0;
                      byte[] buffer2 = new byte[8192];
                      while ((bytesRead2 = stream2.read(buffer2, 0, 8192)) != -1)
                      {
                          bos2.write(buffer2, 0, bytesRead2);//將文件寫入服務器
                      }          
                      bos2.close();
                      stream2.close();
                      }if(file3.getFileSize()!=0){
                      ByteArrayInputStream stream3 = (ByteArrayInputStream) file3.getInputStream();//把文件讀入
                  OutputStream bos3 =  new FileOutputStream(filePath +
                          "UploadFiles\\"+file3.getFileName());//建立一個上傳文件的輸出流
                  int bytesRead3 = 0;
                  byte[] buffer3 = new byte[8192];

                  while ((bytesRead3 = stream3.read(buffer3, 0, 8192)) != -1)
                  {
                      bos3.write(buffer3, 0, bytesRead3);//將文件寫入服務器
                  }          
                  bos3.close();
                  stream3.close();
                  }
            Configuration config = new Configuration().configure();
            SessionFactory factory = config.buildSessionFactory();
               session = factory.openSession();
                  Transaction transaction = session.beginTransaction();
                  Node node=new Node();
                  node.setNodeName(nodename);
                  node.setXsdName(file.getFileName());
                  node.setXslName(file2.getFileName());
                  node.setXhtmlName(file3.getFileName());
                  node.setNote(note);
                  session.save(node);
            session.flush();
            session.clear();
            forward="display";
                  transaction.commit();
                  }
                  catch (Exception e)
                  {
                   forward="error";
                      System.err.print(e);
                      e.printStackTrace();
                  }
             
            finally{
             session.close();
             }
                  return mapping.findForward(forward);
           }

          posted @ 2007-08-29 13:35 changhong 閱讀(208) | 評論 (0)編輯 收藏
          "^\\d+$"  //非負整數(正整數 + 0)
          "^[0-9]*[1-9][0-9]*$"  //正整數
          "^((-\\d+)|(0+))$"  //非正整數(負整數 + 0)
          "^-[0-9]*[1-9][0-9]*$"  //負整數
          "^-?\\d+$"    //整數
          "^\\d+(\\.\\d+)?$"  //非負浮點數(正浮點數 + 0)
          "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮點數
          "^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮點數(負浮點數 + 0)
          "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //負浮點數
          "^(-?\\d+)(\\.\\d+)?$"  //浮點數
          "^[A-Za-z]+$"  //由26個英文字母組成的字符串
          "^[A-Z]+$"  //由26個英文字母的大寫組成的字符串
          "^[a-z]+$"  //由26個英文字母的小寫組成的字符串
          "^[A-Za-z0-9]+$"  //由數字和26個英文字母組成的字符串
          "^\\w+$"  //由數字、26個英文字母或者下劃線組成的字符串
          "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
          "^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
          posted @ 2007-07-06 19:14 changhong 閱讀(136) | 評論 (0)編輯 收藏

          1連接數據庫:

          進入mysql的安裝路徑bin如:C:>cd C:Program FilesMySQLMySQL Server 5.0bin

          輸入用戶名密碼: C:Program FilesMySQLMySQL Server 5.0bin>mysql -uroot -p123456

          2退出mysql

          mysql>exit

          3. 修改密碼:
          C:Program FilesMySQLMySQL Server 5.0bin>mysqladmin -uroot -p123456 password 456123

          4.增加用戶:
          添加一個用戶test1 密碼為ABC;讓他可以在任何主機上登錄,并對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入mysql,

          mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

          增加一個用戶test2密碼為abc,讓其只可以在localhost上登錄,并可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即mysql數據庫所在的那臺主機),這樣用戶即使用知道test2的密碼,也無法從internet上直接訪問數據庫,只能通過mysql主機上的web頁來訪問了。

          mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";

          增加一個可以從任何地方連接服務器的一個完全的超級用戶
          mysql>grant all privileges on *.* to test3@"%" identified by 'abc' with grant option;

          5.刪除授權(與上面授權相對應)

          mysql>revoke select,insert,update,delete on *.* from test1@"%" ;

          mysql>revoke select,insert,update,delete on mydb.* from test2@localhost;

          mysql>revoke all privileges on *.* from test3@"%";

          6.顯示數據庫
          mysql>show databases;

          7.顯示數據庫中的表(exam數據庫名)
          mysql>use exam;
          mysql>show tables;

          8.顯示表的結構(db_testtemp表名)
          mysql>describe db_testtemp;

          9.建庫
          mysql>create database 庫名;

          10.建表
          mysql>use test;
          mysql>create table teacher(

          id int(3) auto_increment not null primary key,

          name char(10) not null,

          address varchar(50) default 'beijing',

          year date

          );

          或者

          school.sql的內容

          use exam;
          create table teacher(

          id int(3) auto_increment not null primary key,

          name char(10) not null,

          address varchar(50) default 'beijing',

          year date

          );

          把文件school.sql放到c:下,并在DOS狀態進入目錄C:>cd C:Program FilesMySQLMySQL Server 5.0bin
          然后C:Program FilesMySQLMySQL Server 5.0bin>mysql -uroot -p456123 < c:school.sql
          如果成功,空出一行無任何顯示;如有錯誤,會有提示。

          11.刪除庫
          mysql>drop database test;

          和刪除表

          mysql>use exam;
          mysql>drop table teacher;

          14.表重命名
          mysql>alter table teacher rename student;

          15. 備份數據庫(生成的exam.sql放在目錄C:Program FilesMySQLMySQL Server 5.0bin下)
          C:Program FilesMySQLMySQL Server 5.0bin>mysqldump -hlocalhost -uroot -pncae2010 exam > exam.sql

          16. 恢復數據庫(localhost不能用本機IP代替)
          C:Program FilesMySQLMySQL Server 5.0bin>mysql -hlocalhost -uroot -pncae2010 exam < exam.sql

          17.復制數據庫(把所有的數據庫備份到目錄C:Program FilesMySQLMySQL Server 5.0bin下的all-databases.sql文件中)
          C:Program FilesMySQLMySQL Server 5.0bin>mysqldump -hlocalhost -uroot -pncae2010 --all-databases > all-databases.sql

          18.備份表(生成的student.sql放在目錄C:Program FilesMySQLMySQL Server 5.0bin下)


          C:Program FilesMySQLMySQL Server 5.0bin>mysqldump -hlocalhost -uroot -pncae2010 exam student > student.sql

           

          19.恢復表(操作前先把原來的表刪除)
          C:Program FilesMySQLMySQL Server 5.0bin>mysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql

          還有一些未實踐

          20.為了改變列a,從INTEGER改為TINYINT NOT NULL(名字一樣),
          并且改變列b,從CHAR(10)改為CHAR(20),同時重命名它,從b改為c:
          ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

          增加一個新TIMESTAMP列,名為d:
          ALTER TABLE t2 ADD d TIMESTAMP;

          在列d上增加一個索引,并且使列a為主鍵:
          ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

          刪除列c:
          ALTER TABLE t2 DROP COLUMN c;

          增加一個新的AUTO_INCREMENT整數列,命名為c:
          ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
          注意,我們索引了c,因為AUTO_INCREMENT柱必須被索引,并且另外我們聲明c為NOT NULL,
          因為索引了的列不能是NULL

          ---------------------------------------------------------------

          21.數據的導入導出
          A。mysqlimport
          語法:mysqlbinmysqlimport database tables.txt( 文件名需要與表名相同)
          參數:-d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息;
          -f or --force 不管是否遇到錯誤
          -i or --ignore mysqlimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略;
          -l or -lock-tables 數據被插入之前鎖住表,這樣就防止了, 你在更新數據庫時,用戶的查詢和更新受到影響;
          --fields-enclosed- by= char
            指定文本文件中數據的記錄時以什么括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒有被字符括起的。
            --fields-terminated- by=char
            指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符

          (Tab)
            --lines-terminated- by=str
            此選項指定文本文件中行與行之間數據的分隔字符串 或者字符。 默認的情況下mysqlimport以newline為行分隔符。 您可以選擇用一個字

          符串來替代一個單個的字符: 一個新行或者一個回車。
            mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。

          --------------------------------------------------------------

          22.常用插入、修改、刪除語句
          插入記錄:insert into teacher s('','glchengang','深圳一中','1976-10-10');
          修改記錄:update mytable set single=′y′ where name=′abccs′;
          刪除記錄:delete from mytable where name=′abc′;

          出現: mysql 的提示符,此時已進入mysql的交互操作方式。
          3、退出MySQL操作界面
          在mysql>提示符下輸入quit可以隨時退出交互操作界面:
          mysql> quit
          Bye
          你也可以用control-D退出。

          4、第一條命令
          mysql> select version(),current_date();
          +----------------+-----------------+
          | version() | current_date() |
          +----------------+-----------------+
          | 3.23.25a-debug | 2001-05-17 |
          +----------------+-----------------+
          1 row in set (0.01 sec)
          mysql>
          此命令要求mysql服務器告訴你它的版本號和當前日期。嘗試用不同大小寫操作上述命令,看結果如何。結果說明mysql命令的大小寫結果是一致的。
          練習如下操作:
          mysql>Select (20+5)*4;
          mysql>Select (20+5)*4,sin(pi()/3);
          mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名為Result)
          <B>5、多行語句</B>
          一條命令可以分成多行輸入,直到出現分號“;”為止:
          <ccid_nobr>
          <table width="400" border="1" cellspacing="0" cellpadding="2"
          bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
          <tr>
          <td bgcolor="e6e6e6" class="code" style="font-size:9pt">
          <pre><ccid_code> mysql> select
          -> USER()
          -> ,
          -> now()
          ->;
          +--------------------+---------------------+
          | USER() | now() |
          +--------------------+---------------------+
          | ODBC@localhost | 2001-05-1:59:15 |
          +--------------------+---------------------+
          1 row in set (0.06 sec)
          mysql>
          注意中間的逗號和最后的分號的使用方法。

          6、一行多命令
          輸入如下命令:
          mysql> SELECT USER(); SELECT NOW();
          +------------------+
          | USER() |
          +------------------+
          | ODBC@localhost |
          +------------------+
          1 row in set (0.00 sec)
          +---------------------+
          | NOW() |
          +---------------------+
          | 2001-05-17 23:06:15 |
          +---------------------+
          1 row in set (0.00 sec)
          mysql>
          注意中間的分號,命令之間用分號隔開。

          7、顯示當前存在的數據庫
          mysql> show databases;
          +----------+
          | Database |
          +----------+
          | mysql |
          | test |
          +----------+
          2 row in set (0.06 sec)
          mysql>

          8、選擇數據庫并顯示當前選擇的數據庫
          mysql> USE mysql
          Database changed
          mysql>
          (USE 和 QUIT 命令不需要分號結束。)
          mysql> select database();
          +---------------+
          | database() |
          +---------------+
          | mysql |
          +---------------+
          1 row in set (0.00 sec)

          9、顯示當前數據庫中存在的表
          mysql> SHOW TABLES;

          10、顯示表(db)的內容
          mysql>select * from db;

          11、命令的取消
          當命令輸入錯誤而又無法改變(多行語句情形)時,只要在分號出現前就可以用 c來取消該條命令

          mysql> select
          -> user()
          -> c
          mysql>

           
          posted @ 2007-06-01 14:53 changhong 閱讀(220) | 評論 (0)編輯 收藏

          導航

          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西昌市| 开封县| 建水县| 昌宁县| 河北区| 平邑县| 威宁| 滕州市| 巫山县| 桑日县| 盐源县| 柞水县| 城口县| 开封市| 扎鲁特旗| 鹿邑县| 龙海市| 金山区| 盐山县| 鄯善县| 丽江市| 台安县| 墨江| 漳州市| 剑川县| 乐平市| 循化| 婺源县| 时尚| 宜城市| 兴隆县| 宁国市| 横峰县| 荃湾区| 嘉荫县| 天门市| 商水县| 邹平县| 佛山市| 西峡县| 利川市|