多对一映射
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="com.gis.hibernate.entity.WseLocationAddressPhone" table="WSE_LOCATION_ADDRESS_PHONE" catalog="wse">
<composite-id name="id" class="com.gis.hibernate.entity.WseLocationAddressPhoneId">
<key-many-to-one name="wseLocation" class="com.gis.hibernate.entity.WseLocation">
<column name="location_id" />
</key-many-to-one>
<key-many-to-one name="wseAddress" class="com.gis.hibernate.entity.WseAddress">
<column name="address_id" />
</key-many-to-one>
<key-many-to-one name="wsePhone" class="com.gis.hibernate.entity.WsePhone">
<column name="phone_id" />
</key-many-to-one>
</composite-id>
<many-to-one name="wseAddress" class="com.gis.hibernate.entity.WseAddress" update="false" insert="false" fetch="select">
<column name="address_id" not-null="true" unique="true" />
</many-to-one>
<many-to-one name="wseLocation" class="com.gis.hibernate.entity.WseLocation" update="false" insert="false" fetch="select">
<column name="location_id" not-null="true" unique="true" />
</many-to-one>
<many-to-one name="wsePhone" class="com.gis.hibernate.entity.WsePhone" update="false" insert="false" fetch="select">
<column name="phone_id" not-null="true" unique="true" />
</many-to-one>
</class>
</hibernate-mapping>
一对多映射
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="com.gis.hibernate.entity.WsePhone" table="WSE_PHONE" catalog="wse">
<id name="phoneId" type="java.lang.Integer">
<column name="phone_id" />
<generator class="increment" />
</id>
<property name="fixedPhone" type="java.lang.String">
<column name="fixed_phone" length="64" />
</property>
<property name="cellPhone" type="java.lang.String">
<column name="cell_phone" length="12" />
</property>
<property name="alterPhone" type="java.lang.String">
<column name="alter_phone" length="32" />
</property>
<set name="wseLocationAddressPhones" inverse="true">
<key>
<column name="phone_id" not-null="true" unique="true" />
</key>
<one-to-many class="com.gis.hibernate.entity.WseLocationAddressPhone" />
</set>
</class>
</hibernate-mapping>
代码
/**
*Feb 21, 2007
* Zhou JianGuo
* MSN:zhuojianguo_leo@hotmail.com
*/
package com.gis.struts.data.action;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.gis.hibernate.dao.GenticDAOFactory;
import com.gis.hibernate.entity.Classification;
import com.gis.hibernate.entity.GisData;
import com.gis.hibernate.entity.GisIndex;
import com.gis.hibernate.entity.GisLevel;
import com.gis.hibernate.entity.WseAddress;
import com.gis.hibernate.entity.WseDistrict;
import com.gis.hibernate.entity.WseLocation;
import com.gis.hibernate.entity.WseLocationAddressPhone;
import com.gis.hibernate.entity.WseLocationAddressPhoneId;
import com.gis.hibernate.entity.WsePhone;
import com.gis.hibernate.entity.WseRoad;
import com.gis.struts.base.action.BaseAction;
import com.gis.struts.data.form.DataForm;
import com.gis.util.page.Pager;
import com.gis.util.page.PageHelp;
import com.gis.util.page.PageQuery;
public class DataAction extends BaseAction {
/**
*Feb 21, 2007
* Zhou JianGuo
* 小白
* 中国电信上海技术研究院
* MSN:zhuojianguo_leo@hotmail.com
*/
public DataAction() {
// TODO Auto-generated constructor stub
}
public ActionForward list(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException
{
logger.info("#########Begin Data list ActionForward execute#######");
List level_ = new ArrayList();
List list1=GenticDAOFactory.getFactory().getInstance().findByEntity("GisIndex");
System.out.println("list1="+list1);
if (list1 != null & list1.size() > 0) {
for (int i = 0; i < list1.size(); i++) {
GisIndex tmp = (GisIndex) list1.get(i);
if (tmp != null) {
level_.add(new GisIndex(tmp.getLevel(),new String(tmp.getDescription().getBytes("ISO-8859-1"),"GBK")));
}
}
}
List index_ = new ArrayList();
List list2=GenticDAOFactory.getFactory().getInstance().findByEntity("GisLevel");
if (list2 != null & list2.size() > 0) {
for (int i = 0; i < list2.size(); i++) {
GisLevel tmp = (GisLevel) list2.get(i);
if (tmp != null) {
index_.add(new GisLevel(tmp.getLevel(),new String(tmp.getDescription().getBytes("ISO-8859-1"),"GBK")));
}
}
}
List list=GenticDAOFactory.getFactory().getInstance().findByEntity("Classification");
List Classification = new ArrayList();
if (list != null & list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
Classification tmp = (Classification) list.get(i);
if (tmp != null) {
Classification.add(new Classification(tmp.getType(),tmp.getChineseName()+"/"+tmp.getEnglishName()));
}
}
}
DataForm DataForm=(DataForm)form;
request.setAttribute("level_", level_);
request.setAttribute("index_", index_);
request.setAttribute("Classification", Classification);
HttpSession session= request.getSession();
String bookin=(String) session.getAttribute("userid");
DataForm.setBookin(bookin);
return mapping.findForward(LIST);
}
public ActionForward add(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException
{
logger.info("#########Begin Data add ActionForward execute#######");
DataForm DataForm=(DataForm)form;
WseAddress address=new WseAddress();
WseDistrict district=new WseDistrict();
WseLocationAddressPhone wap=new WseLocationAddressPhone();
WseLocation location=new WseLocation();
WsePhone phone=new WsePhone();
WseRoad road=new WseRoad();
String level=DataForm.getlevel();//场所级别
String editorsRecommendation=DataForm.getEditorsRecommendation();//推荐指数
String classification=DataForm.getClassification();//大类
String locationNameChn=DataForm.getLocationNameChn();//场所名
String locationNameEn=DataForm.getLocationNameEn();
String locationNamePinyin=DataForm.getLocationNamePinyin();
String featuredKeyWordsEn=DataForm.getFeaturedKeyWordsEn();//特征关键字
String featuredKeyWordsChn=DataForm.getFeaturedKeyWordsChn();
String locationDescriptionEn=DataForm.getLocationDescriptionEn();//特征描述
String locationDescriptionChn=DataForm.getLocationDescriptionChn();
try
{
location.setLocationNameChn(locationNameChn);
location.setLocationNameEn(locationNameEn);
location.setLocationNamePinyin(locationNamePinyin);
location.setType(Integer.parseInt(classification));
location.setPopularity(new Long(0));
location.setEditorsRecommendation(new Integer(0));
location.setFeaturedKeyWordsChn(featuredKeyWordsChn);
location.setFeaturedKeyWordsEn(featuredKeyWordsEn);
location.setLocationDescriptionChn(locationDescriptionChn);
location.setLocationDescriptionEn(locationDescriptionEn);
System.out.println("开始往Location表里插入数据...");
GenticDAOFactory.getFactory().getInstance().save(location);
System.out.println("插入成功...id:"+location.getLocationId());
}catch(Exception e)
{
System.out.println("Location插入数据出错!"+e);
}
String fixedPhone=DataForm.getPhone();//电话
String cellPhone=DataForm.getCellPhone();
String alterPhone=DataForm.getAlterPhone();
try
{
phone.setFixedPhone(fixedPhone);
phone.setCellPhone(cellPhone);
phone.setAlterPhone(alterPhone);
System.out.println("开始往Phone表里插入数据...");
GenticDAOFactory.getFactory().getInstance().save(phone);
System.out.println("插入成功...id:"+phone.getPhoneId());
}catch(Exception e)
{
System.out.println("Phone插入数据出错!"+e);
}
String districtNameEn=DataForm.getDistrictNameEn();//地区名
String districtNameChn=DataForm.getDistrictNameChn();
String districtNamePinyin=DataForm.getDistrictNamePinyin();
try
{
district.setDistrictNameEn(districtNameEn);
district.setDistrictNameChn(districtNameChn);
district.setDistrictNamePinyin(districtNamePinyin);
System.out.println("开始往District表里插入数据...");
GenticDAOFactory.getFactory().getInstance().save(district);
System.out.println("插入成功...id:"+district.getDistrictId());
}catch(Exception e)
{
System.out.println("District插入数据出错!"+e);
}
String roadNameEn=DataForm.getRoadNameEn();//街道路
String roadNameChn=DataForm.getRoadNameChn();
String roadNamePinyin=DataForm.getRoadNamePinyin();
try
{
road.setRoadNameEn1(roadNameEn);
road.setRoadNameChn(roadNameChn);
road.setRoadNamePinyin(roadNamePinyin);
System.out.println("开始往Road表里插入街道数据...");
GenticDAOFactory.getFactory().getInstance().save(road);
System.out.println("插入成功...id:"+road.getRoadId());
}catch(Exception e)
{
System.out.println("Road插入数据出错!"+e);
}
Integer tmpRoadId=road.getRoadId();
String nearRoadNameEn=DataForm.getNearRoadNameEn();//交叉路
String nearRoadNameChn=DataForm.getNearRoadNameChn();
String nearRoadNamePinyin=DataForm.getNearRoadNamePinyin();
try
{
road.setRoadNameEn1(nearRoadNameEn);
road.setRoadNameChn(nearRoadNameChn);
road.setRoadNamePinyin(nearRoadNamePinyin);
System.out.println("开始往Road表里插入交叉路数据...");
GenticDAOFactory.getFactory().getInstance().save(road);
System.out.println("插入成功...id:"+road.getRoadId());
}catch(Exception e)
{
System.out.println("Road插入数据出错!"+e);
}
String addressBriefEn=DataForm.getAddressBriefEn();//地址
String addressBriefChn=DataForm.getAddressBriefChn();
String addressNumber=DataForm.getAddressNumber();//门牌号
try
{
address.setAddressBriefChn(addressBriefChn);
address.setAddressBriefEn(addressBriefEn);
address.setAddressNumber(addressNumber);
address.setDistrictId(district.getDistrictId());
address.setNearRoadId(String.valueOf(road.getRoadId()));
address.setRoadId(tmpRoadId);
System.out.println("开始往Address表里插入数据...");
GenticDAOFactory.getFactory().getInstance().save(address);
System.out.println("插入成功...id:"+address.getAddressId());
}catch(Exception e)
{
System.out.println("Address插入数据出错!"+e);
}
try
{
WseLocationAddressPhoneId wapId=new WseLocationAddressPhoneId();
wapId.setWseAddress(address);
wapId.setWseLocation(location);
wapId.setWsePhone(phone);
wap.setId(wapId);
/*
wap.setWseAddress(address);
wap.setWseLocation(location);
wap.setWsePhone(phone);
*/
wap.setId(wapId);
System.out.println("开始往wap表里插入数据...");
GenticDAOFactory.getFactory().getInstance().save(wap);
System.out.println("插入成功...");
}catch(Exception e)
{
System.out.println("wap插入数据出错!"+e);
}
String begtime=DataForm.getBegtime();//日期
String bookin=DataForm.getBookin();//登记人
return mapping.findForward(SUCCESS);
}
public ActionForward search(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException
{
logger.info("#########Begin Data search ActionForward execute#######");
String count="select count(*) from WseLocationAddressPhone";
String query = "from WseLocationAddressPhone wap";
String queryURL="DataAction.gis?method=search";
List list=new ArrayList();
int totalRows=new PageQuery().pageQuery(count);
Pager page=PageHelp.getPager(request,totalRows);
list=new PageQuery().search(page.getPageSize(),page.getStartRow(),query);
request.setAttribute("list",list);
request.setAttribute("page",page);
request.setAttribute("queryURL", queryURL);
return mapping.findForward(SEARCH);
}
public ActionForward delete(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException
{
logger.info("#########Begin Data delete ActionForward execute#######");
DataForm DataForm=(DataForm)form;
GisData GisData=new GisData();
String[] select=DataForm.getSelectMes();
for(int i=0;i<select.length;i++)
{
GisData=(GisData) GenticDAOFactory.getFactory().getInstance().findById("com.gis.hibernate.entity.GisData", Integer.parseInt(select[i]));
GenticDAOFactory.getFactory().getInstance().delete(GisData);
}
return mapping.findForward(DELETE);
}
}