Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突
来源:互联网 发布:算法 第四版 pdf 微盘 编辑:程序博客网 时间:2024/06/11 09:45
HibernateUtil:
package hibernate.util;import java.io.Serializable;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.AnnotationConfiguration;import com.zxf.model.Student;public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); public static SessionFactory buildSessionFactory() { if(sessionFactory != null) { return sessionFactory; } else { try { return new AnnotationConfiguration().configure().buildSessionFactory(); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void add(Object o) { Session session = null; try { session = sessionFactory.openSession(); session.beginTransaction(); session.save(o); session.getTransaction().commit(); } catch (HibernateException e) { e.printStackTrace(); } finally { session.close(); } } public static void update(Object o) { Session session = null; try { session = sessionFactory.openSession(); session.beginTransaction(); session.update(o); session.getTransaction().commit(); } catch (HibernateException e) { e.printStackTrace(); } finally { session.close(); } } public static void delete(Object o) { Session session = null; try { session = sessionFactory.openSession(); session.beginTransaction(); session.delete(o); session.getTransaction().commit(); } catch (HibernateException e) { e.printStackTrace(); } finally { session.close(); } } public static Object get(Class className,Serializable id) { Session session = null; Object o = null; try { session = sessionFactory.openSession(); o = session.get(className, id); } catch (HibernateException e) { e.printStackTrace(); return null; } finally { if(session != null) { session.close(); } } return o; }}
HQL:
import hibernate.util.HibernateUtil;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.junit.Test;import com.zxf.model.Student;public class HQLTest {@Testpublic void query01() {Query query = null;Session session = null;List<Student> students = null;String hql = "from Student as user where user.name=?";session = HibernateUtil.buildSessionFactory().openSession();query = session.createQuery(hql);query.setString(0, "teeny");students = query.list();//query.uniqueResult();唯一记录for(Student s:students) {System.out.println(s.getName() + "----" + s.getAge());}}}
Critera:
//Critera查询@Testpublic void query04() {Criteria cri = null;Session session = null;List<Student> students = null;try {session = HibernateUtil.buildSessionFactory().openSession();cri = session.createCriteria(Student.class);cri.add(Restrictions.eq("name", "jason"));//添加对于Student对象的约束条件cri.add(Restrictions.eq("age",20));students = cri.list();//cri.uniqueResult();唯一记录for(Student s:students) {System.out.println(s.getName() + "----" + s.getAge());}} catch (HibernateException e) {e.printStackTrace();} finally {if(session != null) {session.close();}}}
对象名与关键字冲突:
<hibernate-mapping package="com.zxf.model"> <class name="Student" table="Student"> <id name="id"></id> <property name="name"/> <property name="age"/> </class></hibernate-mapping>
table名冲突,比如User在sqlserver和oracle里面都是关键字,可以指定配置中table属性重新指定一个table,或者是用``将表名括起来,这样数据库就不会把它当关键字对待,而是看做普通字符串,如下:
<hibernate-mapping package="com.zxf.model"> <class name="Student" table="`Student`"> <id name="id"></id> <property name="name" column="`name`"/> <property name="age"/> </class></hibernate-mapping>
- Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突
- hibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页
- Hibernate实体类或属性名与数据库关键字冲突的解决办法
- 06_传智播客hibernate教程_完善HibernateUtil类及hql查询入门 &amp;&amp;07_传智播客hibernate教程_实体类或属性名与数据库关键字冲突问题
- 实体类或属性名与数据库关键字冲突问题
- hibernate 映射文件 当表名或字段名与数据库关键字冲突的解决办法
- Hibernate 与Mysql 关键字冲突
- Hibernate 对象操作 和 HQL
- MVC View 中 html 属性名与关键字冲突问题的分析与解决
- 数据库名与系统关键字冲突
- SQL 表名 与关键字冲突
- MySQL 字段名 与 保留关键字 冲突
- mysql表名和关键字冲突
- Hibernate的HQL查询和工具类的增强
- hibernate 插入数据mysql 表名关键字冲突
- Hibernate笔记:HQL查询总结(一)——简单属性查询和实体对象查询
- HQL简单属性和实体对象查询
- [学习小结]Mybaits的解决字段名与实体类属性名不相同的冲突
- Linux下halt,poweroff,reboot,shutdown命令的区别
- .NET程序员,我们应该更专业点
- sql语句,exec执行 拼接的字符串 输出参数 问题
- 通达OA 有时在线时长也需要改一下,这个需求有时也会有
- 20个常用的linux系统管理工具
- Hibernate工具类丰富和Hql用法 对象属性名与关键字冲突
- Android2.3 中如何使用GPU硬件加速
- eclipse设置类似Visual Studio的代码提示功能
- 让世界因为有我而发生一点点变化
- ubuntu11.10 openssh
- 构建基于.NET的管理信息系统
- ubuntu 批量转换文本编码命令
- 基于移动平台的多媒体框架——移植SDL到Android
- 屏蔽浏览器打开下载文件方法