ych

2008年9月3日

通过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 阅读(91) | 评论 (0)编辑 收藏

2007年8月29日

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 阅读(183) | 评论 (0)编辑 收藏

2007年7月6日

"^\\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 阅读(129) | 评论 (0)编辑 收藏

2007年6月1日

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 阅读(213) | 评论 (0)编辑 收藏

2007年5月23日

Linux上备份Oracle数据库脚本
# exp-backup.sh# initialize oracle database env variable /home/oracle/oraenv# assign current date to variable rq# 注意:定义rq变量用的单引号是tab键上面的~键。 rq=`date +"%y%m%d"`# export whole database exp expuser/web2dump5@ctgpcweb parfile=./export.par file=/backup/db_1634_$rq.dmp log=./db_1634_$rq.log

会发送和抄送邮件的MySQL数据库备份脚本
backupDB_then_mail_it.sh


#!/bin/bash

echo Delete last arthive file\(s\) ...
rm DB_BACKUP.sql.gz

echo Backup MySQL DB\(c156948_wbj123Drupal\) ...
mysqldump --user=c156948admin --password=xxxxxxx --host=mysql4-c c156948_wbj123Drupal | gzip > DB_BACKUP.sql.gz

echo Mail it to xxxxxx@gmail.com ...
uuencode DB_BACKUP.sql.gz DB_BACKUP.sql.gz | mail -s "Drupal DB BACKUP of wbj123.com" -c xxxxxxx@shtel.net.cn xxxxxx@gmail.com

解释如下:
先删掉上次备份的旧的备份文件
再备份MySQL数据库
再把数据库的备份文件Email到两个邮箱中

若不要抄送邮件,就改用下面这段

echo Mail it to xxx@yyyyyy.com with short title ...
uuencode DB_BACKUP.sql.gz DB.gz | mail -s "DB" xxx@yyyyyy.com
posted @ 2007-05-23 20:12 changhong 阅读(253) | 评论 (0)编辑 收藏

2007年5月17日

中文乱码问题的根本解决办法是明确地指定整个应用系统统一的字符集。
要做到以下几点:
一、开发和编译代码时指定字符集为UTF-8。JBuilder和Eclipse都可以在项目属性中设置。
二、使用过滤器,如果所有请求都经过一个Servlet控制分配器,那么使用Servlet的filter执行语句,将所有来自浏览器的请求(request)转换为UTF-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。关键一句:
request.setCharacterEncoding("UTF-8")。
需要配置web.xml 激活该Filter。
三、在JSP头部声明:<%@ page contentType="text/html;charset= UTF-8" %>。
四、在Jsp的html代码中,声明UTF-8:<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
五、设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8
一般数据库都可以通过管理设置设定UTF-8
六、其他和外界交互时能够设定编码时就设定UTF-8,例如读取文件,操作XML等。
七、如果使用的是tomcat服务器,那么修改在${tomcat_home}/conf/中的server.xml文件:
<Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" URIEncoding="UTF-8" />
或者改为:
<Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" useBodyEncodingForURI="true" />
都能达到很好的效果。
posted @ 2007-05-17 20:43 changhong 阅读(250) | 评论 (0)编辑 收藏

2006年8月8日

  <table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> <MARQUEE><FONT color=#0909f7>
<SCRIPT language=JavaScript>
<!--
var caution = false
function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "")
if (!caution || (name + "=" + escape(value)).length <= 4000)
document.cookie = curCookie
else
if (confirm("Cookie exceeds 4KB and will be cut!"))
document.cookie = curCookie
}
function getCookie(name) {
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
return null
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1)
cookieEndIndex = document.cookie.length
return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}
function deleteCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT"
}
}
function fixDate(date) {
var base = new Date(0)
var skew = base.getTime()
if (skew > 0)
date.setTime(date.getTime() - skew)
}
var now = new Date()
fixDate(now)
now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000)
var visits = getCookie("counter")
if (!visits)
visits = 1
else
visits = parseInt(visits) + 1
setCookie("counter", visits, now)
document.write("总访问量:" + visits + "次")
// -->
</SCRIPT>
</FONT></MARQUEE>
</td>
</tr>
</table>
posted @ 2006-08-08 13:37 changhong 阅读(482) | 评论 (0)编辑 收藏
仅列出标题  

导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿(1)

随笔档案

文章档案

相册

搜索

最新评论

阅读排行榜

评论排行榜