数据库查询方法汇集(笔记)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Hibernate:

首先,在配置文件hibernate.cfg.xml中配置数据源

其次,在HibernateSessionFactory中加载配置文件(数据源)初始化并创建session 用持久化对象hibernate时从创建Session session开始:

Session session = sessionfactory.openSession();

有session后可创建Criteria、Query、SQLQuery对象操作数据库

Spring:

首先,在spring.xml中配置sessionFactory数据源以及mapping等资源

其次,在dao类的配置中需要注入sessionFactory,继承HibernateDaoSupport类

然后,利用HibernateTemplate模板类进行操作数据库

如果用到分页查询,需要创建获得session对象

return (List) getHibernateTemplate().execute(new HibernateCallback() {

public Object doInHibernate(Session session) throws HibernateException {

Query query = session.createQuery(queryString);

query.setProperties(args);

return query.list();

}

});

如果用纯SQL,可用sping的JdbcTemplate的模板方法进行操作数据库,需要在dao 类中注入dataSource,并继承JdbcTemplate

如下:

private JdbcTemplate jdbcTemplate;

private DataSource dataSource;

public JdbcTemplate getJdbcTemplate() {

if (jdbcTemplate == null) {

jdbcTemplate = new JdbcTemplate(dataSource);

}

return jdbcTemplate;

}

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource;

}

1.创建一个条件面向对象的查询对象Criteria

Criteria : 代表一次查询

Criterion:代表一个查询条件

Restrictions:代表查询条件的工具类。

步骤:1 获取Hibernate的Session对象

2.已Session对象创建Criteria对象

3.使用Restrictions的静态方法创建Criterion

4.向Criteria查询中添加查询条件

5.执行Criteria的List方法返回查询结果

Criteria criteria = session.createCriteria(Class persistentClass) criteria.add(Expression.eq("name","zgl"));

备注:条件表达式:Expression 和Restrictions关系–继承

ng.Object

org.hibernate.criterion.Restrictions

org.hibernate.criterion.Expression

对象:DetachedCriteria

为了查询条件和Session分离而重复使用查询条件,使用DetachedCriteria对象DetachedCriteria detachedCriteria =

DetachedCriteria.forClass(MyTest.class);

detachedCriteria.add(Expression.eq("name", "zgl"));

detachedCriteria.addOrder(Order.asc("age"));

当查询时再和session绑定:

Criteria c = detachedCriteria.getExecutableCriteria(session);

Iterator it = c.list().iterator();

类Projections:分组、统计

2. 创建HQL语句查询对象Query

public Query createQuery(String queryString)throws HibernateException S tring hql = "from com.Ts_User";

Query query = session.createQuery(hql);

List querylist = query.list();

【提示】HQL语句中对象路径写全路径类名,并区分大小写

A属性查询:查询结果只需要对象的某个属性

如:只需name 和age 两个属性,则用查询结果为Object[]数组

String HQL = “select name , age from Ts_User ”;

B:提供更新语句

String HQL = “update Ts_User set age=18 ”;

Query query = session.createQuery(hql);

Int ret = query.executeUpdate();

C:删除一样

String HQL =”delete Ts_User where age=18”

D:参数

相关文档
最新文档