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方法轻易的修改数据,,因此命名为对象-关系映射