hql语句基础的增删改查

来源:互联网 发布:台湾政治知乎 编辑:程序博客网 时间:2024/04/30 23:46

hql语句基础的增删改查:

注意首先要继承HibernateDaoSupport;

以User为例子,User的两个成员变量username,userpass;

1.增
增加比较简单,直接存入对象,而且对象也不需要全部的成员变量都赋值,如果不赋值会默认为null,不过有一点需要注意,在你的数据库中(我用的是mysql)如果有datetime这样类型的时候,就需要去赋值,不然会报错。

User user = new User(username,userpass);this.getHibernateTemplate().save(user);

2.查
因为删除和修改都需要用到查,就先说一下查找:
有一点需要注意,这个查找的是对象,而不是数据的表,所有的操作都是针对于对象。
第一种:最简单的查找,查找整个表中的数据:

this.getHibernateTemplate().find("from User");

第二种:单条件查找,根据字段名查找数据,比如根据用户名查找:

this.getHibernateTemplate().find("from User where username = ?",username);

第三种:多条件查找,比如根据用户名和密码查找:

this.getHibernateTemplate().find("from User where username = ? and userpass = ?",new String[] { username, userpass });

第四种:根据对象查找,如果在数据表的设计中有外键,或者说一对多,多对一,多对多的关系的时候,在生成对象的时候,它存储的也是一个对象,比如说现在有一个对象Power,在数据库中,power的外键是user的id,但是在hibernate生成对象的时候,user成为了Power的成员变量,查找方式如下,以上面类似:

this.getHibernateTemplate().find("from Power where user = ?",user);

注意的是,返回的值可以用list存储。
3.改
修改首先要找到修改的是那一条数据,然后再修改,一般来说是通过id(主键)识别:

User user = new User();List<User> users = this.getHibernateTemplate().find("from User where userId=?",id);user = users.get(0);this.getHibernateTemplate().update(user);

4.删
删除和修改类似,都是先找到要修改的对象,再删除:

User user = new User();List<User> users = this.getHibernateTemplate().find("from User where userId=?",id);user = users.get(0);this.getHibernateTemplate().delete(User);

注:不一定要通过id来查找,但是必须是唯一标识。

0 0
原创粉丝点击