您的位置:首页 > 其它

临时 保存

2014-03-05 08:09 190 查看
package com.XXX.dao;

import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Types;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import oracle.jdbc.OracleTypes;

import org.hibernate.Criteria;

import org.hibernate.Query;

import org.hibernate.criterion.Projections;

import org.hibernate.criterion.Restrictions;

import org.springframework.orm.hibernate3.SessionFactoryUtils;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.langsin.crm.model.City;

import com.langsin.crm.utils.JsonObject;

public class CityDAOImpl extends HibernateDaoSupport implements CityDAO {

@SuppressWarnings("unchecked")

public Map getCities(String pname, JsonObject page) {

// TODO Auto-generated method stub

/*

* Map map = new HashMap(); map.put("name", "石家庄"); map.put("pname",

* "河北");

*/

/*

* Query queryObject = null; try { String queryString =

* "select new map(sc.id as id, sc.name as name, sc.pycode as pycode,sc.sProvince.name as pname,sc.postcode as postcode,sc.areacode as areacode)from City as sc where sc.sProvince.name=?"

* ; queryObject = this.getSession().createQuery(queryString);

* queryObject.setParameter(0, pname);

*

* } catch (Exception e) { // TODO Auto-generated catch block

* e.printStackTrace(); } return

* queryObject.setFirstResult(page.getStart

* ()).setMaxResults(page.getLimit()).list();

*/

Map city_map = new HashMap();

try {

String strWhere = "pid=(select id from s_province where name='"

+ pname + "')";

Connection conn = SessionFactoryUtils.getDataSource(

this.getSessionFactory()).getConnection();

CallableStatement proc = conn

.prepareCall("{ call GetRecordByPage(?,?,?,?,?,?,?,?) }");

proc.setString(1, "s_city");

proc.setString(2, "id");

proc.setInt(3, page.getLimit());

proc.setInt(4, page.getStart());

proc.setInt(5, 1);// 升序,0是降序

proc.setString(6, strWhere);

proc.registerOutParameter(7, Types.INTEGER);

proc.registerOutParameter(8, OracleTypes.CURSOR);

proc.execute();

int count = proc.getInt(7);

ResultSet rs = (ResultSet)proc.getObject(8);

ArrayList list = new ArrayList();

while(rs.next()){

Map map = new HashMap();

map.put("id", rs.getInt("id"));

map.put("name", rs.getString("name"));

map.put("pycode", rs.getString("pycode"));

map.put("pname", pname);

map.put("postcode", rs.getString("postcode"));

map.put("areacode", rs.getString("areacode"));

list.add(map);

}

city_map.put("totalCount", count);

city_map.put("root", list);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return city_map;

}

public boolean deleteCites(String ids){

Query query = this.getSession().createQuery("delete City as c where c.id in ("+ids+")");

int i = query.executeUpdate();

if(i > 0){

return true;

}else{

return false;

}

}

public int insertCity(City city){

Object o = this.getHibernateTemplate().save(city);

return (Integer)o;

}

public void updateCity(City city){

this.getHibernateTemplate().update(city);

}

public List queryCity(City city,JsonObject jsonObj){

Criteria criteria = this.getSession().createCriteria(City.class).createAlias("province", "s");

this.setCriteria(criteria, city);

return criteria.setFirstResult(jsonObj.getStart()).setMaxResults(jsonObj.getLimit()).setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP).list();

}

public Criteria setCriteria(Criteria criteria,City city){

if(city.getName() != null && !"".equals(city.getName())){

criteria.add(Restrictions.eq("this.name", city.getName()));

}

if(city.getPostcode() != null && !"".equals(city.getPostcode())){

criteria.add(Restrictions.eq("this.postcode", city.getPostcode()));

}

if(city.getPycode() != null && !"".equals(city.getPycode())){

criteria.add(Restrictions.eq("this.pycode", city.getPycode()));

}

if(city.getAreacode() != null && !"".equals(city.getAreacode())){

criteria.add(Restrictions.eq("this.areacode", city.getAreacode()));

}

if(city.getProvince().getName() != null && !"".equals(city.getProvince().getName())){

criteria.add(Restrictions.eq("s.name", city.getProvince().getName()));

}

criteria.setProjection(Projections.projectionList()

.add(Projections.property("id"),"id")

.add(Projections.property("name"),"name")

.add(Projections.property("postcode"),"postcode")

.add(Projections.property("pycode"),"pycode")

.add(Projections.property("areacode"),"areacode")

.add(Projections.property("s.name"),"pname")

);

return criteria;

}

public int queryCityCount(City city){

Criteria criteria = this.getSession().createCriteria(City.class).createAlias("province", "s");

this.setCriteria(criteria, city);

return Integer.parseInt(criteria.setProjection(Projections.rowCount()).uniqueResult().toString());

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: