ITPub博客

首页 > 数据库 > 国内数据库 > 如何通过配置hibernate方言包+GBase8s jdbc实现GBase8s数据库操作

如何通过配置hibernate方言包+GBase8s jdbc实现GBase8s数据库操作

原创 国内数据库 作者:wj_2021 时间:2021-11-26 15:28:23 0 删除 编辑

                    h ibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架 hibernate可以自动生成SQL语句,自动执行,可以随心所欲的使用对象编程思维来操纵数据库。

不同数据库语法细节上存在差异,hibernate 可根据方言自动应付底层数据库访问所存在的细节差异,将HQL有针对的转化为某一数据库所支持的SQL语句

GBase8s Hibernate方言包,针对GBase8s数据库定制的语法解析包, 本文通过实例介绍如何通过 hibernate方言包 实现连接GBase8s数据库,实现数据添加 与查询 过程。

1、首先,工程中引入 GBase8s hibernate方言包、hibernate原生包 文件,以及GBase8s驱动程序。

 

2、 配置文件

1 )配置 hibernate.cfg.xml 文件

<? xml   version = "1.0"   encoding = "UTF-8" ?>

<! DOCTYPE   hibernate-configuration   PUBLIC

     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

     " >

 

< hibernate-configuration >

     < session-factory >

 

         <!-- 配置数据库连接的基本信息 : -->

         < property   name = "hibernate.connection.driver_class" >

            com.gbasedbt.jdbc.Driver

         </ property >

         < property   name = "hibernate.connection.url" >

            jdbc:gbasedbt-sqli://172.16.33.240:5555/test:GBASEDBTSERVER=ol_gbasedbt1210_2;

         </ property >

         < property   name = "hibernate.connection.username" > root </ property >

         < property   name = "hibernate.connection.password" > redhat </ property >

 

         <!-- 配置 Hibernate 方言,用于针对不同数据库生成不同底层SQL 语句 -->

        < property   name = "hibernate.dialect" >

            gbase.hibernate.dialect.GBaseDialect

         </ property >

 

         <!-- 显示 SQL -->

         < property   name = "show_sql" > true </ property >

         <!-- 格式化 SQL -->

         < property   name = "hibernate.format_sql" > true </ property >

         <!-- 关闭事物自动提交 -->

         < property   name = "hibernate.connection.autocommit" > false </ property >

         <!-- hbm : 映射 to DDL -->

         <!-- update :如果数据库中没有表,创建一个新的表,如果有,直接使用这个表,并可以更新表的结构。 -->

         < property   name = "hibernate.hbm2ddl.auto" > update </ property >

         < mapping   resource = "com/hibernate/util/student.hbm.xml"   />

     </ session-factory >

</ hibernate-configuration >

 

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 文件如下:

<? xml   version = "1.0" ?>

<! DOCTYPE   hibernate-mapping   PUBLIC

   "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

   " >

 

< hibernate-mapping >

< class   name = "com.hibernate.util.Student"   table = "student" >

< id   name = "id"   column = "id" >

</ id >

< property   name = "name"   column = "name"   type = "java.lang.String"   />

< property   name = "age"   column = "age"   type = "int"   />

</ class >

</ hibernate-mapping >

3、配置实体类

public   class  Student {

 

private   int   id ;

private  String name ;

private   int   age ;

/**

 * @return  the age

 */

public   int  getAge() {

return   this . age ;

}

/**

 * @param  age

 * the name to set

 */

public   void  setAge( int   age ) {

this . age  = age ;

}

 

/**

 * @return  the name

 */

public  String getName() {

return   name ;

}

/**

 * @param  name

 *            the name to set

 */

public   void  setName(String name ) {

this . name  = name ;

}

/**

 * @return  the id

 */

public   int  getId() {

return   id ;

}

/**

 * @param   id

 *            the id   to set

 */

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   select User s (){

 

 

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<Object[]> list = q .list() ;

for  ( int   i  = 0; i  < list .size(); i ++) {

Object[] os = list .get( i );

System. out .println( "name:" + os [0]+ "age " + os [1]);

}

session .close();

sessionFactory .close();

} catch  (Exception e ) {

StandardServiceRegistryBuilder. destroy ( serviceRegistry  );

e .printStackTrace();

}

}

通过以上步骤实现通过 hibernate方言包 实现数据的插入和查询

 

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69993860/viewspace-2844320/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-01-25

  • 博文量
    35
  • 访问量
    12154