java学习

java学习

 

访问tomcat时只输入ip就可以访问系统的方法

1.在tomcat的service.xml中把端口改成80
2.把自己的项目名称改成ROOT,覆盖tomcat的原ROOT项目,就可以了

posted @ 2013-05-13 11:28 杨军威 阅读(175) | 评论 (0)编辑 收藏

extjs下拉框点击一行触发事件,得到valueField和displayField的值

            var combo = new Ext.form.ComboBox(
                                                        {
                                                            store : store,
                                                            emptyText : '请选择',
                                                            mode : 'local',
                                                            triggerAction : 'all',
                                                            valueField : 'value',
                                                            displayField : 'name',
                                                            //autoScroll : true,
                                                            //length : 4,
                                                            //IdValue : 'name',
                                                            listeners : {//选择一行后触发的事件
                                                                'select' : function() {
                                                            
                                                            var url = combo
                                                            .getValue();//得到valueField的值
                                                            if (url != null
                                                                    && url != '') {
                                                            
                                                                loactionTo(
                                                                        combo
                                                                        .getRawValue(),//得到displayField的值
                                                                        url);
                                                                // typeForm.getForm().submit({});
                                                            }
                                                            }
                                                            }

                                                        });

posted @ 2013-05-12 09:22 杨军威 阅读(2263) | 评论 (0)编辑 收藏

Hibernate Fetch策略

hibernate抓取策略(单端代理的批量抓取)
  保持默认,同fetch="select",如:
  <many-to-one name="classes" column="classesid" fetch="select"/>
  fetch="select",另外发送一条select语句抓取当前对象关联实体或集合
  
  设置fetch="join",如:
  <many-to-one name="classes" column="classesid" fetch="join"/>
  fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合
  此时lazy会失效
  
  
  hibernate抓取策略(集合代理的批量抓取)
  保持默认,同fetch="select",如:
  <set name="students" inverse="true" cascade="all" fetch="select">
  fetch="select",另外发送一条select语句抓取当前对象关联实体或集合
  
  设置fetch="join",如:
  <set name="students" inverse="true" cascade="all" fetch="join">
  fetch="join",hibernate会通过select语句使用外连接来加载其关联实体或集合 此时lazy会失效
  
  设置fetch="subselect",如:
  <set name="students" inverse="true" cascade="all" fetch="subselect">
  fetch="subselect",另外发送一条select语句抓取在前面查询到的所有实体对象的关联集合
  
  hibernate抓取策略,,batch-size在<class>上的应用
  batch-size属性,可以批量加载实体类,参见:Classes.hbm.xml
  <class name="Classes" table="t_classes" batch-size="3">
  
  hibernate抓取策略,batch-size在集合上的应用
  batch-size属性,可以批量加载实体类,参见:Classes.hbm.xml
  <set name="students" inverse="true" cascade="all" batch-size="5">
  hibernate 会下先完发sql,再一次性的大数据 

posted @ 2013-05-07 10:13 杨军威 阅读(180) | 评论 (0)编辑 收藏

hibernate中实体类继承,按照子类建表

实体类父类:

public class Animal {
 
 private int id;
 
 private String name;
 
 private boolean sex;

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public boolean isSex() {
  return sex;
 }

 public void setSex(boolean sex) {
  this.sex = sex;
 }
}

子类:

public class Bird extends Animal {

 private int height;

 public int getHeight() {
  return height;
 }

 public void setHeight(int height) {
  this.height = height;
 }
}


public class Pig extends Animal {
 
 private int weight;

 public int getWeight() {
  return weight;
 }

 public void setWeight(int weight) {
  this.weight = weight;
 }
}


extends.hbm.xml文件:
<hibernate-mapping package="com.hibernate">
 <class name="Animal" abstract="true">
  <id name="id">
   <generator class="assigned"/>
  </id>
  <property name="name"/>
  <property name="sex"/>
  <union-subclass name="Pig" table="t_pig">
   <property name="weight"/>
  </union-subclass>
  <union-subclass name="Bird" table="t_bird">
   <property name="height"/>
  </union-subclass>
 </class>
</hibernate-mapping>
数据库表如下:

posted @ 2013-05-07 09:46 杨军威 阅读(295) | 评论 (0)编辑 收藏

hibernate中实体类继承,分成若干表

父类实体类:

public class Animal {
 
 private int id;
 
 private String name;
 
 private boolean sex;

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public boolean isSex() {
  return sex;
 }

 public void setSex(boolean sex) {
  this.sex = sex;
 }
}

子类实体类:

public class Bird extends Animal {

 private int height;

 public int getHeight() {
  return height;
 }

 public void setHeight(int height) {
  this.height = height;
 }
}

public class Pig extends Animal {
 
 private int weight;

 public int getWeight() {
  return weight;
 }

 public void setWeight(int weight) {
  this.weight = weight;
 }
}

extends.hbm.xml文件:
<hibernate-mapping package="com.hibernate">
 <class name="Animal" table="t_animal">
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name"/>
  <property name="sex"/>
  <joined-subclass name="Pig" table="t_pig">
   <key column="pid"/>
   <property name="weight"/>
  </joined-subclass>
  <joined-subclass name="Bird" table="t_bird">
   <key column="bid"/>
   <property name="height"/>
  </joined-subclass>
 </class>
</hibernate-mapping>
在数据库中表如下:

posted @ 2013-05-07 09:37 杨军威 阅读(399) | 评论 (0)编辑 收藏

hibernate中每棵继承树映射成一张表

public class Animal {
 
 private int id;
 
 private String name;
 
 private boolean sex;

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public boolean isSex() {
  return sex;
 }

 public void setSex(boolean sex) {
  this.sex = sex;
 }
}

public class Bird extends Animal {

 private int height;

 public int getHeight() {
  return height;
 }

 public void setHeight(int height) {
  this.height = height;
 }
}

public class Pig extends Animal {
 
 private int weight;

 public int getWeight() {
  return weight;
 }

 public void setWeight(int weight) {
  this.weight = weight;
 }
}

在extends.hbm.xml文件:
<hibernate-mapping package="com.hibernate">
 <class name="Animal" table="t_animal" lazy="false">
  <id name="id">
   <generator class="native"/>
  </id>
  <discriminator column="type" type="string"/>
  <property name="name"/>
  <property name="sex"/>
  <subclass name="Pig" discriminator-value="P">
   <property name="weight"/>
  </subclass>
  <subclass name="Bird" discriminator-value="B">
   <property name="height"/>
  </subclass>
 </class>
</hibernate-mapping>
理解如何映射
  因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必须有某种机制来区分哪些记录是属于哪个类的。
 这种机制就是,在表中添加一个字段,用这个字段的值来进行区分。用hibernate实现这种策略的时候,有如下步骤:
 父类用普通的<class>标签定义
 在父类中定义一个discriminator,即指定这个区分的字段的名称和类型
 如:<discriminator column=”XXX” type=”string”/>
 子类使用<subclass>标签定义,在定义subclass的时候,需要注意如下几点:
 Subclass标签的name属性是子类的全路径名
 在Subclass标签中,用discriminator-value属性来标明本子类的discriminator字段(用来区分不同类的字段)
 的值Subclass标签,既可以被class标签所包含(这种包含关系正是表明了类之间的继承关系),也可以与class标
 签平行。 当subclass标签的定义与class标签平行的时候,需要在subclass标签中,添加extends属性,里面的值
 是父类的全路径名称。子类的其它属性,像普通类一样,定义在subclass标签的内部。

posted @ 2013-05-06 22:51 杨军威 阅读(211) | 评论 (0)编辑 收藏

hibernate 中集合映射成表

实体类是:

public class CollectionMapping {
 
 private int id;
 
 private String name;
 
 private Set setValue;
 
 private List listValue;
 
 private String[] arrayValue;
 
 private Map mapValue;

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public Set getSetValue() {
  return setValue;
 }

 public void setSetValue(Set setValue) {
  this.setValue = setValue;
 }

 public List getListValue() {
  return listValue;
 }

 public void setListValue(List listValue) {
  this.listValue = listValue;
 }

 public String[] getArrayValue() {
  return arrayValue;
 }

 public void setArrayValue(String[] arrayValue) {
  this.arrayValue = arrayValue;
 }

 public Map getMapValue() {
  return mapValue;
 }

 public void setMapValue(Map mapValue) {
  this.mapValue = mapValue;
 }
}

在CollectionMapping.hbm.xml文件中:
<hibernate-mapping>
 <class name="CollectionMapping" table="t_CollectionMapping">
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name"/>
  <set name="setValue" table="t_set_value">
   <key column="set_id"/>
   <element type="string" column="set_value"/>
  </set>
  <list name="listValue" table="t_list_value">
   <key column="list_id"/>
   <list-index column="list_index"/>
   <element type="string" column="list_value"/>
  </list>
  <array name="arrayValue" table="t_array_value">
   <key column="array_id"/>
   <list-index column="array_index"/>
   <element type="string" column="array_value"/>
  </array>
  <map name="mapValue" table="t_map_value">
   <key column="map_id"/>
   <map-key type="string" column="map_key"/>
   <element type="string" column="map_value"/>
  </map>
 </class>
</hibernate-mapping>
在数据库中生成5个表

posted @ 2013-05-06 22:22 杨军威 阅读(177) | 评论 (0)编辑 收藏

hibernate中实体类中有其他普通类的引用,普通类的属性在数据库中是实体类的一个字段

例如:
普通类:

public class Contact {
 
 private String email;
 
 private String address;
 
 private String zipCode;
 
 private String contactTel;

 public String getEmail() {
  return email;
 }

 public void setEmail(String email) {
  this.email = email;
 }

 public String getAddress() {
  return address;
 }

 public void setAddress(String address) {
  this.address = address;
 }

 public String getZipCode() {
  return zipCode;
 }

 public void setZipCode(String zipCode) {
  this.zipCode = zipCode;
 }

 public String getContactTel() {
  return contactTel;
 }

 public void setContactTel(String contactTel) {
  this.contactTel = contactTel;
 }
}

实体类:

public class User {
 
 private int id;
 
 private String name;
 
 private Contact contact;
 
 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public Contact getContact() {
  return contact;
 }

 public void setContact(Contact contact) {
  this.contact = contact;
 }
 
}

User.hbm.xml文件:
<hibernate-mapping>
 <class name="User" table="t_user">
  <id name="id">
   <generator class="native"/>
  </id>
  <property name="name"/>
  <component name="contact">
   <property name="email"/>
   <property name="address"/>
   <property name="zipCode"/>
   <property name="contactTel"/>
  </component>
 </class>
</hibernate-mapping>
在数据库中在t_user表中含有Contact类的属性字段

posted @ 2013-05-06 22:10 杨军威 阅读(542) | 评论 (0)编辑 收藏

hibernate实体配置文件中主键生成策略

<id name="id" column="user_id" length="32">
  <!-- 主键自动生成uuid -->
   <generator class="uuid"/>
  </id>
<id name="id" column="user_id">
  <!-- 主键自动增长 -->
   <generator class="native"/>
  </id>
<id name="id" column="user_id" length="32">
  <!-- 主键需要手动定义 -->
   <generator class="assigned"/>
  </id>

posted @ 2013-05-06 21:32 杨军威 阅读(174) | 评论 (0)编辑 收藏

dom4j解析xml文件

1.先导入dom4j-1.6.1.jar包
2.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<config>
 
 
 <action name="user" className="com.kaishengit.web.UserAction">
  <result name="success" type="forward">suc.jsp</result>
  <result name="error" type="redirect">404.jsp</result>
 </action>
 
 
 <action name="book" className="com.kaishengit.web.BookAction">
  <result name="success">book.jsp</result>
  <result name="error" type="redirect">bookerror.jsp</result>
 </action>
 
 <action name="person" className="com.kaishengit.web.PersonAction" method="del">
  <result name="ok">suc.jsp</result>
 </action>
 
 

</config>

3.解析测试类是:

package com.kaishengit.test;

import java.io.File;
import java.net.URL;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class Dom4jTest {

 public void readXML() {
  //拿到src文件夹里的xml配置文件
  URL url = getClass().getResource("/");
  System.out.println(url);
  String filePath = url.getFile() + "struts.xml";
  
  try {
   //创建读取配置文件的对象
   SAXReader reader = new SAXReader();
   //开始读取配置文件
   Document doc = reader.read(new File(filePath));
   //拿到根节点
   Element root = doc.getRootElement();
   
   //拿到根节点下的action接点数组
   List<Element> actions = root.elements("action");
   
   for(Element action : actions) {
    String name = action.attributeValue("name");
    String className = action.attributeValue("className");
    String method = action.attributeValue("method");
    System.out.println("name="+name);
    System.out.println("className="+className);
    System.out.println("method="+method);
    
    List<Element> results = action.elements("result");
    for(Element result : results) {
     String resultName = result.attributeValue("name");
     String resultType = result.attributeValue("type");
     String pageName = result.getText();
     
     System.out.println("name:" + resultName + "\tresultType:" + resultType + "\tpageName:" + pageName);
   
    }
    
    System.out.println("----------------------");
   }
   
   
  } catch (Exception e) {
   e.printStackTrace();
  }
  
 }
 
 
 
 public static void main(String[] args) {
  
  
  Dom4jTest d = new Dom4jTest();
  d.readXML();
  
  
  
 }
}

posted @ 2013-05-06 21:08 杨军威 阅读(1343) | 评论 (0)编辑 收藏

仅列出标题
共43页: First 上一页 18 19 20 21 22 23 24 25 26 下一页 Last 

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜