临时 保存

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());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值