基于mysql数据库的Hibernate3的环境搭建

1.在ecipse中建立一个java项目 命名为:HibernateDemo

2.选择build path中的添加库为项目添加用户库,命名为hibernate,并将所需要的全部jar包添加到刚建的库中,如图所示:


选择添加外部jar,将hibernate3的jar文件全部导入,如图


点击完成后,用户库添加完毕。

3.在项目的 根目录下创建lib文件夹,将mysql数据库所需要的驱动程序拷到其中,并在本地磁盘上找到该项目中的classpath文件,,用记事本打开,在<classpath></classpath>中添加

<classpathentry kind="lib" path="lib/mysql-5.0.5.jar"/>

4.创建test数据库,在该数据库下创建学生表student,将学号作为主键,添加字段(与之后创建Student实体类中的属性保持一致,如图所示


5.在src下的com.bean包下创建实体类Student 代码如下:

  package com.bean;


import java.io.Serializable;


public class Student implements Serializable {
  private String stuNo;
  private String stuName;
  private String sex;
  public Student() 
  {

  }
public Student(String stuNo, String stuName) {

this.stuNo = stuNo;
this.stuName = stuName;
}
public Student(String stuNo, String stuName, String sex) {

this.stuNo = stuNo;
this.stuName = stuName;
this.sex = sex;
}
public String getStuNo() {
return stuNo;
}
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
  
 }

6.在com.bean下创建Student类的hibernate映射文件Student.hbm.xml,代码如下(注意,该文件必须与Student类同一个目录下)

 <?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>
       <!--配置Student类的hibernate映射  -->
      <class name="com.bean.Student">
      <id name="stuNo"> 
          <!--id为关键字,指向数据库中的主键 generator表示主键的值由应用程序指定,若想使其自增长则改为native,并在数据库中设置自增长  -->
          <generator class="assigned"/>   
      </id>  
      <property name="stuName" ></property>
      <property name="sex" ></property>
      </class> 
      
  </hibernate-mapping>

7.创建与数据库连接的配置文件Hibernate.cfg.xml(该文件需创建在src目录下),代码如下

 <?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>
    <!--hibernate与数据库建立连接的配置  -->
   <session-factory >
       <!--mysql数据库驱动  -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
       <!--mysql数据库名称  -->
    <property name="connection.url">jdbc:mysql://localhost:3306/test</property>
       <!--为 每种适配器提供适配器,方便转换 -->
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 

   <!--连接的数据库的用户名和密码  -->
    <property name="connection.username">root</property>
    <property name="connection.password">root</property>
     <!--mysql数据库 对数据库的操作为插入-->
    <property name="hbm2ddl.auto">insert</property>
     <!--引入映射文件,将com.bean下的Student实体类与数据库表student关联 -->
    <mapping resource="com/bean/Student.hbm.xml"/>
 
 </session-factory>
</hibernate-configuration>

 8.编写测试类Test,向数据库插入一条数据。代码如下:

public class Test {

public static void main(String[] args)throws Exception {
      SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();
      Student student=new Student();
      student.setStuNo("5");
      student.setStuName("hehaifeng");
      student.setSex("m");
      Session session=sessionFactory.openSession();
      Transaction tx=(Transaction)session.beginTransaction();
      session.save(student);
      tx.commit();
      session.close();
      sessionFactory.close();
      System.out.println("成功插入一条记学生记录");
}


}

此时去数据库的student表中查看,成功添加了数据。


9.总结

一 原理:  hibernate是实现对象-关系映射的,,,用户在提供了数据后,通过对象的方式提交到hibernate的session会话中,通过hibernate.cfg.xml配置文件进行数据库的访问同时调用映射文件Student.hbm.xml,而Student.hbm.xml文件则是将对象的各个属性成功匹配到数据库表student中.,,持久化的类必须与建的数据库表名保持一致。即一个持久化类必须有一个表与之对应

二 好处:我们可以大胆假设,,若采用hibenate机制,,将能够完全消灭以往繁琐的String sql=“select * from...”这样的sql语句,,,我们可以使用对象的set,get方法轻易的修改数据,,因此命名为对象-关系映射


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值