第一个hibernate例子

1. 第一个hibernate例子:

1), 创建一个Java项目。


2), 导入相关的jar包

 * hibernate的相关jar包

           hibernate-distribution-3.5.6-Final\lib\required\*.jar

           hibernate-distribution-3.5.6-Final\hibernate3.jar

           hibernate-annotations-3.4.0.GA\lib\test\slf4j-log4j12.jar

           hibernate-annotations-3.4.0.GA\lib\test\log4j.jar

   *  junit测试的jar包

           junit-4.8.2.jar

   *  mysql的驱动jar包

           mysql-connector-java-5.1.10-bin.jar


3), 创建表

    use test;

createtable customers(

        id int PRIMARY key,

        name varchar(12),

        age int,

        des text

)


4), 创建表对应的javabean

public class Customer {

        private Integer id;

        private String name;

        private Integer age;

        private String des;

        ... // get,set方法

}   


5), 创建表和javabean的映射文件Customer.hbm.xml,该文件和javabean放置在同一个目录下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
   
<hibernate-mapping>
	<!-- class标签建立javabean和表之间的映射 -->
	<class name="cn.itcast.primer.Customer" table="customers">
		<!-- id映射表中的主键 -->
		<id name="id" type="integer">
			<column name="id"></column>
			<!-- 配置主键的生成策略 -->
			<generator class="increment"></generator>
		</id>
		<!-- 
			property建立javabean中的属性和表中列的对应关系
			type="string": string表示的是hibernate的类型,该类型是java类型和sql类型之间的桥梁
			               java中的类型: String name; sql中的类型: varchar(255);
			                                        映射一个sql的varchar类型到java的String类型
		 -->
		<property name="name" type="string">
			<!-- column定义表中的列    -->
			<column name="name"></column>
		</property>
		<property name="age" type="integer">
			<column name="age"></column>
		</property>
		<property name="des" type="string">
			<column name="des"></column>
		</property>
	</class>
</hibernate-mapping>

6), 创建hibernate的配置文件hibernate.cfg.xml,放置在src下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
		
		<!-- 配置数据库的方言,让hibernate知道连接的是那个数据库 -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
          <!-- 配置利用javabean和映射文件生成数据库中的表
			 hibernate.hb2ddl.auto值
			    * create: 执行时,先查找该表是否存在,如存在先删除表,再创建表
			    * none: 不能创建表,只能往表中插入数据,如表不存在,抛出异常, 这个是默认值
			    * update: 执行时: 情况1: 先查找该表是否存在,如表存在,直接插入,如果表不存在,先创建表,再插入数据
			                          情况2: 先查找该表是否存在,如表存在,但表的结构不一样,要修改表的结构
		 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		<!-- 显示hibernate生成的sql语句 -->
		<property name="hibernate.show_sql">true</property>
         <mapping resource=”cn/itcast/primer/Customer.hbm.xml”></mapping>
	</session-factory>
</hibernate-configuration>

7), 测试程序:

public class App {
	private static SessionFactory sf = null;
	static{
		// 1. 加载hibernate的配置文件hibernate.cfg.xml
		Configuration config = new Configuration();  // 默认加载类路径下的hibernate.cfg.xml文件
		config.configure();
		// 2. 加载映射文件
		// 方法1 config.addResource("cn/itcast/primer/customer.hbm.xml"); 
		// 方法2  要求: 映射文件和Customer.java文件必须在同一个目录下,且和Customer.java文件的文件名称相同
		config.addClass(Customer.class);                             
		// 3. 利用上面的配置生成SessionFactory
		sf = config.buildSessionFactory();
	}
	
	@Test
	public void saveCustomer(){
		// 4. 从SessionFactory里获取Session		
		Session session = sf.openSession();
		
		// 5. 开启事务
		Transaction ts = session.beginTransaction();
		
		// 6. 创建Customer对戏那个
		Customer customer = new Customer();
		customer.setName("zhangsan");
		customer.setAge(18);
		customer.setDes("xxxxxx");
		
		// 7. 保存对象
		session.save(customer);
		
		// 8. 提交事务
		ts.commit();
		
		// 9. 关闭session
		session.close();
	}
}

2. 用myeclipse创建hibernate应用
第一步:使用 Myeclipse DataBase Explorer 建立与MySql数据库的连接。

第二步:建立一个Java项目,建一个包存放SessionFactory类

第三步:通过MyEclipse的Add Hibernate Capabilities功能,加入它对Hibernate的支持。

第四步:修改生成的类文件。

第五步:进行简单的查询。

3. Hibernate的运行过程
1) 应用程序先调用Configuration类,读取hibernate.cfg.xml文件, hibernate.cfg.xml文件读取Xxx.hbm.xml文件,
获取配置信息及映射文件中的信息

2) 通过这些信息生成一个SessionFactory对象, SessionFactory生成一个Session对象

3) 使用Session对象生成Transaction对象

 ①, 通过Session对象的get, load, save, update, delete和saveOrUpdate等方法对数据库进行加载,保存,更新,删除等操作

 ②, 在查询的情况下,可以通过Session对象生成一个Query对象,然后利用Query对象执行查询操作,如没有发生异常,Transaction对象将提交这些操作到数据库



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值