public PaginationBean selectResultMap(String sql,List param,int pageSize,int pageIndex) {
int totalCount=0;
Session session = getSession();
Query query = session.createSQLQuery(sql);
query.setMaxResults(pageSize);
query.setFirstResult(pageIndex);
for (int i = 0; i <param.size() ; i++) {
query.setParameter(i,param.get(i));
}
String sqlCount = Convert.Format("select count(1) from ({0})", sql);
//5.2后的版本
//query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<Object,Object>> list= query.setResultTransformer(CriteriaSpecification.ALIAS_TO_ENTITY_MAP).list();
if (list.size()>0){
query = session.createSQLQuery(sqlCount);
for (int i = 0; i <param.size() ; i++) {
query.setParameter(i,param.get(i));
}
List countList = query.list();
totalCount= Integer.parseInt(countList.get(0).toString());
}
PaginationBean pageV = new PaginationBean(list, totalCount);
return pageV;
}
<property name="connection.url">
jdbc:oracle:thin:@localhost:1521:orcl
</property>
<property name="connection.username">test</property>
<property name="connection.password">test</property>
<property name="connection.driver_class">
oracle.jdbc.OracleDriver
</property>
在hibernate.cfg.xml中配置上面的数据库连接,接下来编写下面的代码操作数据库
Configuration configuration=new Configuration().configure();
//链接数据库的
SessionFactory sessionFactory=configuration.buildSessionFactory();
//3.创建持久化工具
Session session=sessionFactory.openSession();
Query query = session.createSQLQuery(sql);
public void update(String id) {
String hql="from T where id='"+id+"'";
Session session = getSession();
Query query = session.createQuery(hql);
List<T> list = query.list();
T T=list.get(0);
T.setId(id);
try {
session.beginTransaction();
session.update(tDatumInfo);
session.getTransaction().commit();
} catch(Exception e) {
session.beginTransaction().rollback();
e.printStackTrace();
}
finally {
session.close();
}
}
public void add(Person p) {
Session session = getSession();
try {
session.beginTransaction();
session.save(p);
session.getTransaction().commit();
} catch(Exception e) {
session.beginTransaction().rollback();
e.printStackTrace();
} finally {
session.close();
}
}
jpa:
@OneToMany(targetEntity =Many.class,cascade = CascadeType.ALL)
@JoinColumn(name = "Many_Id",referencedColumnName = "one_id")
private List<Many> ManyList=new ArrayList<>();
hibernate返回map以及测试等配置
最新推荐文章于 2021-05-08 17:06:33 发布