hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架。hibernate可以自动生成SQL语句,自动执行,可以随心所欲的使用对象编程思维来操纵数据库。
不同数据库语法细节上存在差异,hibernate可根据方言自动应付底层数据库访问所存在的细节差异,将HQL有针对的转化为某一数据库所支持的SQL语句。
Gbase8s Hibernate方言包,针对Gbase8s数据库定制的语法解析包,本文通过实例介绍如何通过hibernate方言包实现连接Gbase8s数据库,实现数据添加与查询过程。
1、首先,工程中引入Gbase8s hibernate方言包、hibernate原生包文件,以及Gbase8s驱动程序。
2、配置文件
1)配置hibernate.cfg.xml文件
com.gbasedbt.jdbc.Driver
jdbc:gbasedbt-sqli://172.16.33.240:5555/test:GbaseDBTSERVER=ol_gbasedbt1210_2;
root
redhat
gbase.hibernate.dialect.GbaseDialect
true
true
false
update
hibernate.cfg.xml文件主要参数说明
1)hibernate.connection.driver_class属性,配置为Gbase8s驱动类名称定义为
com.gbasedbt.jdbc.Driver
2)hibernate.connection.url属性,为Gbase8s数据库url
3)hibernate.connection.username属性,为Gbase8s数据库用户名
4)hibernate.connection.password属性,为Gbase8s数据库密码
5)hibernate.dialect属性,为Gbase8s数据库方言,定义为
gbase.hibernate.dialect.GbaseDialect
6)hibernate.connection.url属性,为Gbase8s数据库url
7)hibernate对象-关系映射文件配置为com/hibernate/util/student.hbm.xml
2)配置对象-关系映射文件,com/hibernate/util/student.hbm.xml
com/hibernate/util/student.hbm.xml文件如下:
private int id;
private String name;
private int age;
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
4、执行用例
1)插入数据
public void insertUser(){
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
try {
SessionFactory sessionFactory = new metadataSources(serviceRegistry).buildmetadata().buildSessionFactory();
Session session = null;
session = sessionFactory.openSession();
//开始事物
Transaction transaction = session.beginTransaction();
Student s = new Student();
s.setId(1);
s.setAge(20);
s.setName(“zhangsan”);
session.save(s);
transaction.commit();
session.close();
sessionFactory.close();
}catch (Exception e) {
StandardServiceRegistryBuilder.destroy( serviceRegistry );
e.printStackTrace();
}
}
1)插入数据
public void selectUsers(){
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
try {
SessionFactory sessionFactory = new metadataSources(serviceRegistry).buildmetadata().buildSessionFactory();
Session session = null;
session = sessionFactory.openSession();
String hql="select u.name,u.age from Student u";
Query q= session.createQuery(hql);
List
通过以上步骤实现通过hibernate方言包,实现数据的插入和查询。



