在java 中使用 hibernate

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";则只能采用数组下标获取相应的对象属性,代码如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值