1、定义hibetnate的配置文件,该文件说明了数据库配置信息和数据库映射资源之间的对应关系,示例配置文件如下说明:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver </property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/school </property>
<property name="hibernate.connection.username">root </property>
<property name="hibernate.connection.password">root </property>
<property name="hibernate.connection.pool.size">20 </property>
<property name="hibernate.show_sql">true </property>
<property name="jdbc.fetch_size">50 </property>
<property name="jdbc.batch_size">23 </property>
<property name="jdbc.use_scrollable_resultset">false </property>
<property name="Connection.useUnicode">true </property>
<property name="connection.characterEncoding">gbk </property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect </property>
<property name="hibernate.hbm2ddl.auto">update </property>
<mapping resource="xerlly/java/maven/HibernetTest/Model/student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
其中:
hibernate.connection.driver_class表示使用的数据库驱动 hibernate.connection.url表示数据库监听和数据库实例 resource="xerlly/java/maven/HibernetTest/Model/student.hbm.xml" 表示使用的实体对应配置数据的位置,路径是相对于hibernate配置文件的位置 2、定义数据库对象和java对象的对应关系,该对应关系一般利用xml文件进行说明,存放在上述resource资源指定的目录下,示例如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping package="xerlly.java.maven.HibernetTest.Model"> <class name="Student" table="student"> <id name="stuid" column="stuid"> <generator class="assigned"> </generator> </id> <property name="name" column="name" type="java.lang.String"></property> <property name="sex" column="sex" type="java.lang.String"></property> <property name="classname" column="class" type="java.lang.String"></property> <property name="schooltime" column="schooltime" type="java.lang.String"></property> </class> </hibernate-mapping>
注意:最好采用开发环境来生成该文件,我从网上复制的文件开起来内容都一样,也可以作为正常xml文件被使用,但是进行关系映射的时候一直报错,困惑了我半天
3、当对对象进行批量查询时,hibernate sql 中的对象名称应该是java的对象名称,比如:
String Hql=" from Student"; 中的Student表示的是java 对象 Student,注意和java对象的名称保持一致;
当使用" from Student"时,即:选择对象的全部属性时,可以将查询结果装换为对象,如下代码:
Configuration config=new Configuration().configure(); SessionFactory sFactory=config.buildSessionFactory(); Session session=sFactory.openSession(); String sql="select name from Student"; Query query=session.createQuery(sql); List list=query.list(); for(int i=0;i<list.size();i++) { System.out.println(list.get(i).get(0)); } session.close();
若:进行了对象的属性选择 ,如
String Hql="select name,stuid,sex from Student";则只能采用数组下标获取相应的对象属性,代码如下: