导入SVN工程到myEclipse中

1,改名包为可编译的source包
2,新建WEB-INF/src 为source包
3.将工程右键点击,发布为j2ee web工程

posted @ 2012-07-04 23:12 youngturk 阅读(1153) | 评论 (0)编辑 收藏

DBlink关于from a@dblink

example:http://www.ixpub.net/thread-1361302-1-1.html



posted @ 2012-07-02 13:55 youngturk 阅读(200) | 评论 (0)编辑 收藏

powerDesigner 导入sql 生成数据模型

将sql文件导入到pdm文件  
    PDM中的逆向工程是指从现有DBMS的用户数据库或现有数据库SQL脚本中生成PDM的过程。逆向工程有两种对象:1)通过ODBC数据源连接数据库 2) 现有数据库sql脚本。  
    具体的操作如下:  
    1、 数据库已创建完毕,访问用户和密码设置完成。数据库为Oracle9i。  
    2、 ODBC数据源已由oracle 的Net Configuration Assistant 创建,本地网络命名服务“Database”。  
    3、 sql脚本示例create.sql。  
    4、 Powerdesigner已安装完成。  
      
    一、 通过数据源连接数据库逆向工程生成PDM  
    1、 配置用户数据库连接参数  
    选择Database->configure connections,转到system dsn标签,点击Add按钮,选数据库类型Oracle,点击完成。  
    显示如下:输入DataSource Name“PDMTest”;输入ServerName“Database”, 配置完成。  
      
    点击“Test Connect”输入ServerName“Database”,用户名和密码,以后每次连接,选择Database->connect,选择odbc数据源,输入ServerName“Database”,用户名和密码。  
    若无提示,则说明连接成功。同时,可以通过Database->Connection Information 查看连接信息。  
    2、 设置逆向工程选项,生成pdm  
    创建一个PDM文件,选择与之匹配的数据库类型“oracle9i”。  
    选择Database->Reverse Engineer Database,弹出Database Reverse Engineering对话框,选Using an ODBC data source选ODBC数据源“PDMTest”  
      
    点击确定后,显示此数据库中所有表、视图、用户。根据需要选择后,转换成pdm。  
      
    3、 查看数据  
    对于生成好的PDM,选择一个表图形符号,点击右键,选择View Data,就可以访问表中的数据了。  
       
    mysql同理  
    comment只能导入comment段,无法导入name段,要导入name,试试erstudio. 


方法二
http://blog.csdn.net/hedongyang/article/details/1609489

posted @ 2012-06-29 10:26 youngturk 阅读(1908) | 评论 (0)编辑 收藏

找回commit前的数据集用 as of timestamp

用法:
select * from tableName as of timestamp to_timestamp('20120627143000','yyyymmddHH24miss');

posted @ 2012-06-27 15:20 youngturk 阅读(1638) | 评论 (0)编辑 收藏

js中jSON转换为对象的方法 eval(data)[0] 也可用each配合自己查(配合ajax)

function test(varWeight){
    
//var index = parseFloat(document.activeElement.id);
    var index = parseFloat($(varWeight).attr("id"));
    
   var fieldNo 
=  document.getElementsByName("fieldNo")[index].value;
   var dWeight 
=  document.getElementsByName("weight")[index+1]
     var weight 
= dWeight.value;
    
if(fieldNo != "" && weight != ""){
       var query 
= "fieldNo="+fieldNo+"&weight="+weight;
         $.ajax(
{  
           type: 
"POST",  
            url: 
'${webroot}/suggest!maxCount.do',  
            dataType: 
'json',  
            data: query,  
            success:function(data)
{
                var item 
=  eval(data)[0];//将JSON转换成对象 
             
//var item2 = JSON.parse(data);
                var max_weight = parseFloat((item.max_weight).replace(",",""));
                var current_weight 
= parseFloat((item.current_weight).replace(/,/g,""));
                var temp 
= current_weight + parseFloat(weight);
            
if(max_weight<temp){
                alert(
"当前合计库存:"+temp+",大于最大库存量:"+max_weight);
                dWeight.focus();
                
return false
            }

            close();
            
//return false; 
            
// document.getElementById(obj).innerHTML=html; 
            }
,
            error: function()
{   
          
//  document.getElementById(obj).innerHTML="网络连接超时,无法显示数据!";   
         
//  return;   
            }
   
            
         }
);

    }

posted @ 2012-06-21 00:14 youngturk 阅读(1409) | 评论 (1)编辑 收藏

误删资料恢复

一、误删资料恢复
   一不小心删错了,还把回收站清空了,咋办啊?只要三步,你就能找回你删掉并清空回收站的东西。 
   步骤: 
   1、单击“开始——运行,然后输入regedit (打开注册表) 

   2、依次展开:HEKEY——LOCAL——MACHIME/SOFTWARE/microsoft/WINDOWS/CURRENTVERSION/EXPLORER/DESKTOP/NAMESPACE 在左边空白外点击“新建”,选择:“主键”,把它命名为“645FFO40——5081——101B——9F08——00AA002F954E”再把右边的“默认”的主键的键值设为“回收站”,然后退出注册表。就OK啦。 
   3、要重启计算机。
   只要机器没有运行过磁盘整理。系统完好.任何时候的文件都可以找回来。
也许你已经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel也不过如此,甚至了无新意。但我们平日里无数次重复的得心应手的使用方法只不过是Excel全部技巧的百分之一。本专题从Excel中的一些鲜为人知的技巧入手,领略一下关于Excel的别样风情。

posted @ 2012-06-20 19:59 youngturk 阅读(207) | 评论 (0)编辑 收藏

Dom4j全部实例

Attribute
Attribute定义了XML的属性
Branch
Branch为能够包含子节点的节点如XML元素(Element)和文档(Docuemnts)定义了一个公共的行为,
CDATA
CDATA 定义了XML CDATA 区域
CharacterData是一个标识接口,标识基于字符的节点。如CDATA,Comment, Text.
Comment
Comment 定义了XML注释的行为
Document
定义了XML文档
DocumentType
DocumentType 定义XML DOCTYPE声明
Element
Element定义XML 元素
ElementHandler
ElementHandler定义了 Element 对象的处理器
ElementPath
被 ElementHandler 使用,用于取得当前正在处理的路径层次信息
Entity
Entity定义 XML entity
Node
Node为所有的dom4j中XML节点定义了多态行为
NodeFilter 定义了在dom4j节点中产生的一个滤镜或谓词的行为(predicate)
ProcessingInstruction
ProcessingInstruction 定义 XML 处理指令.
Text
Text 定义XML 文本节点.
Visitor
Visitor 用于实现Visitor模式.
XPath
XPath
要想弄懂这套接口,关键的是要明白接口的继承关系:
  • interface java.lang.Cloneable
    • interface org.dom4j.Node
      • interface org.dom4j.Attribute
      • interface org.dom4j.Branch
        • interface org.dom4j.Document
        • interface org.dom4j.Element
      • interface org.dom4j.CharacterData
        • interface org.dom4j.CDATA
        • interface org.dom4j.Comment
        • interface org.dom4j.Text
      • interface org.dom4j.DocumentType
      • interface org.dom4j.Entity
      • interface org.dom4j.ProcessingInstruction
1. 读取并解析XML文档:
读写XML文档主要依赖于org.dom4j.io包,其中提供DOMReader和SAXReader两类不同方式,而调用方式是一样的。这就是依靠接口的好处。
 
    // 从文件读取XML,输入文件名,返回XML文档
    public Document read(String fileName) throws MalformedURLException, DocumentException {
       SAXReader reader = new SAXReader();
       Document document = reader.read(new File(fileName));
       return document;
    }
 
    
   
其中,reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取。得到的Document对象就带表了整个XML。根据本人自己的经验,读取的字符编码是按照XML文件头定义的编码来转换。如果遇到乱码问题,注意要把各处的编码名称保持一致即可。
2.    取得Root节点
读取后的第二步,就是得到Root节点。熟悉XML的人都知道,一切XML分析都是从Root元素开始的。
 
   public Element getRootElement(Document doc){
       return doc.getRootElement();
    }
 
3.    遍历XML树
DOM4J提供至少3种遍历节点的方法:
1) 枚举(Iterator)
 
    // 枚举所有子节点
    for ( Iterator i = root.elementIterator(); i.hasNext(); ) {
       Element element = (Element) i.next();
       // do something
    }
    // 枚举名称为foo的节点
    for ( Iterator i = root.elementIterator(foo); i.hasNext();) {
       Element foo = (Element) i.next();
       // do something
    }
    // 枚举属性
    for ( Iterator i = root.attributeIterator(); i.hasNext(); ) {
       Attribute attribute = (Attribute) i.next();
       // do something
    }

2)递归
递归也可以采用Iterator作为枚举手段,但文档中提供了另外的做法
 
    public void treeWalk() {
       treeWalk(getRootElement());
    }
    public void treeWalk(Element element) {
       for (int i = 0, size = element.nodeCount(); i < size; i++)     {
           Node node = element.node(i);
           if (node instanceof Element) {
              treeWalk((Element) node);
           } else { // do something....
           }
       }
}
 

3) Visitor模式
最令人兴奋的是DOM4J对Visitor的支持,这样可以大大缩减代码量,并且清楚易懂。了解设计模式的人都知道,Visitor是GOF设计模式之一。其主要原理就是两种类互相保有对方的引用,并且一种作为Visitor去访问许多Visitable。我们来看DOM4J中的Visitor模式(快速文档中没有提供)
只需要自定一个类实现Visitor接口即可。
 
        public class MyVisitor extends VisitorSupport {
           public void visit(Element element){
               System.out.println(element.getName());
           }
           public void visit(Attribute attr){
               System.out.println(attr.getName());
           }
        }
 
        调用:  root.accept(new MyVisitor())
    Visitor接口提供多种Visit()的重载,根据XML不同的对象,将采用不同的方式来访问。上面是给出的Element和Attribute的简单实现,一般比较常用的就是这两个。VisitorSupport是DOM4J提供的默认适配器,Visitor接口的Default Adapter模式,这个模式给出了各种visit(*)的空实现,以便简化代码。
    注意,这个Visitor是自动遍历所有子节点的。如果是root.accept(MyVisitor),将遍历子节点。我第一次用的时候,认为是需要自己遍历,便在递归中调用Visitor,结果可想而知。
4. XPath支持
    DOM4J对XPath有良好的支持,如访问一个节点,可直接用XPath选择。
 
   public void bar(Document document) {
        List list = document.selectNodes( //foo/bar );
        Node node = document.selectSingleNode(//foo/bar/author);
        String name = node.valueOf( @name );
     }
 
    例如,如果你想查找XHTML文档中所有的超链接,下面的代码可以实现:
 
    public void findLinks(Document document) throws DocumentException {
        List list = document.selectNodes( //a/@href );
        for (Iterator iter = list.iterator(); iter.hasNext(); ) {
            Attribute attribute = (Attribute) iter.next();
            String url = attribute.getValue();
        }
     }
 

5. 字符串与XML的转换
有时候经常要用到字符串转换为XML或反之,
 
    // XML转字符串
  Document document = ...;
    String text = document.asXML();
// 字符串转XML
    String text = <person> <name>James</name> </person>;
    Document document = DocumentHelper.parseText(text);
 

6 用XSLT转换XML
 
   public Document styleDocument(
       Document document,
       String stylesheet
    ) throws Exception {
    // load the transformer using JAXP
    TransformerFactory factory = TransformerFactory.newInstance();
    Transformer transformer = factory.newTransformer(
       new StreamSource( stylesheet )
    );
    // now lets style the given document
    DocumentSource source = new DocumentSource( document );
    DocumentResult result = new DocumentResult();
    transformer.transform( source, result );
    // return the transformed document
    Document transformedDoc = result.getDocument();
    return transformedDoc;
}
 

7. 创建XML
  一般创建XML是写文件前的工作,这就像StringBuffer一样容易。
 
    public Document createDocument() {
       Document document = DocumentHelper.createDocument();
       Element root = document.addElement(root);
       Element author1 =
           root
              .addElement(author)
              .addAttribute(name, James)
              .addAttribute(location, UK)
              .addText(James Strachan);
       Element author2 =
           root
              .addElement(author)
              .addAttribute(name, Bob)
              .addAttribute(location, US)
              .addText(Bob McWhirter);
       return document;
    }
 

8. 文件输出
    一个简单的输出方法是将一个Document或任何的Node通过write方法输出
 
    FileWriter out = new FileWriter( foo.xml );
    document.write(out);
 
  如果你想改变输出的格式,比如美化输出或缩减格式,可以用XMLWriter类
 
    public void write(Document document) throws IOException {
       // 指定文件
       XMLWriter writer = new XMLWriter(
           new FileWriter( output.xml )
       );
       writer.write( document );
       writer.close();
       // 美化格式
       OutputFormat format = OutputFormat.createPrettyPrint();
       writer = new XMLWriter( System.out, format );
       writer.write( document );
       // 缩减格式
       format = OutputFormat.createCompactFormat();
       writer = new XMLWriter( System.out, format );
       writer.write( document );
    }
 
5.使用ElementHandler
XmlHandler.java
import java.io.File;
 
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.ElementHandler;
import org.dom4j.ElementPath;
import org.dom4j.io.SAXReader;
 
public class XmlHandler {
    public static void main(String[] args) {
       SAXReader saxReader = new SAXReader();
       File file = new File("students.xml");
       try {
           // 添加一个ElementHandler实例。
           saxReader.addHandler("/students/student", new StudentHandler());
           saxReader.read(file);
 
       } catch (DocumentException e) {
           System.out.println(e.getMessage());
       }
    }
 
    /**
     * 定义StudentHandler处理器类,对<student>元素进行处理。
     */
    private static class StudentHandler implements ElementHandler {
       public void .Start(ElementPath path) {
           Element elt = path.getCurrent();
           System.out.println("Found student: " + elt.attribut.ue("sn"));
           // 添加对子元素<name>的处理器。
           path.addHandler("name", new NameHandler());
       }
 
       public void .End(ElementPath path) {
           // 移除对子元素<name>的处理器。
           path.removeHandler("name");
       }
    }
 
    /**
     * 定义NameHandler处理器类,对<student><name>子元素进行处理。
     */
    private static class NameHandler implements ElementHandler {
       public void .Start(ElementPath path) {
           System.out.println("path : " + path.getPath());
       }
 
       public void .End(ElementPath path) {
           Element elt = path.getCurrent();
           // 输出<name>元素的名字和它的文本内容。
           System.out.println(elt.getName() + " : " + elt.getText());
       }
    }
}

posted @ 2012-06-15 11:14 youngturk 阅读(628) | 评论 (0)编辑 收藏

使用accepter遍历所有XML子元素

public class Myvisitor extends VisitorSupport {
    /**
     * 对于属性节点,打印属性的名字和值
     */
    public void visit(Attribute node) {
        System.out.println("attribute : " + node.getName() + " = "
               + node.getValue());
    }

    /**
     * 对于处理指令节点,打印处理指令目标和数据
     */
    public void visit(ProcessingInstruction node) {
        System.out.println("PI : " + node.getTarget() + " "
               + node.getData());
    }

    /**
     * 对于元素节点,判断是否只包含文本内容,如是,则打印标记的名字和 元素的内容。如果不是,则只打印标记的名字
     */
    public void visit(Element node) {
        if (node.isTextOnly())
           System.out.println("element : " + node.getName() + " = "
                  + node.getText());
        else
           System.out.println("--------" + node.getName() + "--------");
    }
 
    @Test
    public void test() throws DocumentException {
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read("src/book.xml");
        // dom4jParser.traversalDocumentByIterator();
        document.accept(new Myvisitor());
     }
    

posted @ 2012-06-14 22:45 youngturk 阅读(234) | 评论 (0)编辑 收藏

dom4j解析 字符串传唤成xml

d
oc = DocumentHelper.parseText(xml); // 将字符串转为XML

map.put(
"title", title);
                
                Iterator
<?> iters = recordEle.elementIterator("script");

String title 
= recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值
Iterator iters = map.keySet().iterator();
        
while (iters.hasNext()) {
            String key 
= iters.next().toString(); // 拿到键
            String val = map.get(key).toString(); // 拿到值
            System.out.println(key + "=" + val);



List list = (document.selectNodes("/books/book/@show" )); // xpath解析
            Iterator iter = list.iterator();
            while(iter.hasNext()){
                Attribute attribute = (Attribute)iter.next();
                if(attribute.getValue().equals("yes")){
                attribute.setValue("no");
                }
               
                Element ownerElement = (Element)iter.next();
                Element dateElement = ownerElement.addElement("date");
                dateElement.setText("2004-09-11");

            }

 

posted @ 2012-06-14 14:44 youngturk 阅读(526) | 评论 (0)编辑 收藏

dom4j实例 的Xpath解析 转

books.xml:

<?xml version="1.0" encoding="UTF-8"?>  
    
<books>  
        
<!--This is a test for dom4j, jakoes, 2007.7.19-->  
        
<book show="yes" url="lucene.net">  
            
<title id="456">Lucene Studing</title>  
        
</book>  
        
<book show="yes" url="dom4j.com">  
            
<title id="123">Dom4j Tutorials</title>  
        
</book>  
        
<book show="no" url="spring.org">  
            
<title id="789">Spring in Action</title>  
        
</book>  
        
<owner>O'Reilly</owner>  
    </books> 



public void parseBooks(){  
         
        SAXReader reader 
= new SAXReader();  
        
try {  
            Document doc 
= reader.read("books.xml");  
            Node root 
= doc.selectSingleNode("/books");  
            List list 
= root.selectNodes("book[@url='dom4j.com']");  
             
            
for(Object o:list){  
                 
                Element e 
= (Element) o;  
                String show
=e.attributeValue("show");  
                System.out.println(
"show = " + show);  
            }  
            
        } 
catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
Document doc 
= reader.read("books.xml");的意思是加载XML文档,此是可以用doc.asXML()来查看,它将打印整个xml文档。

  Node root 
= doc.selectSingleNode("/books");是读取刚才加载的xml文档内的books节点下的所有内容,对于本例也是整个xml文档。
  当然我们也可以加载
/books下的某一个节点,如:book节点
Node root 
= doc.selectSingleNode("/books/book");
或:Node root 
= doc.selectSingleNode("/books/*");
注意:如果有多个book节点,它只会读取第一个
root.asXML()将打印:
<book show="yes" url="lucene.net">
        
<title id="456">Lucene Studing</title>
</book>

  既然加载了这么多,那我怎么精确的得到我想要的节点呢,别急,看下面:
List list 
= root.selectNodes("book[@url='dom4j.com']");
它的意思就是读取books节点下的book节点,且book的节点的url属性为dom4j.com
为什么使用list来接收呢,如果有两个book节点,且它们的url属性都为dom4j.com,此时就封闭到list里了。

  如果想读取books下的所有book节点,可以这样:
List list 
= root.selectNodes("book");

  如果想读取books节点下的book节点下的title节点,可以这样:
List list2 
= root.selectNodes("book[@url='dom4j.com']/title[@id='123']");

  注意:selectNodes()参数的格式:
  节点名[@属性名
='属性值'],如:book[@url='dom4j.com']
  如果有多个节点,用“
/”分开,如:book[@url='dom4j.com']/title[@id='123']

  最近就是读取封闭在List里的内容了,可以用Node来读取,也可以用Element来转换。
attributeValue(
"属性")是读取该节点的属性值
getText()是读取节点的的内容。




posted @ 2012-06-14 08:56 youngturk 阅读(1080) | 评论 (0)编辑 收藏

仅列出标题
共33页: First 上一页 10 11 12 13 14 15 16 17 18 下一页 Last 
<2024年9月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

导航

统计

公告

this year :
1 jQuery
2 freemarker
3 框架结构
4 口语英语

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

EJB学习

Flex学习

learn English

oracle

spring MVC web service

SQL

Struts

生活保健

解析文件

搜索

最新评论

阅读排行榜

评论排行榜