hibernate入门

                                                             hibernate详解一

             

 

 

            hibernate是一个Java开发框架,属于ssh框架中的第三层,工作在数据持久层中,可以用一句话概括hibernate为:hibernate是作用于数据持久化层的对JDBC进行轻量级封装的一个ORM框架。

            下面我们来建立一个使用hibernate框架的程序。首先我们需要到官网上下载有关hibernate的jar包,并将其引入到我们的项目工程中。在我们这个项目工程中涉及到三个方面。POJO类,配置文件以及数据库表

            hibernate让我们可以不必关注底层使用的是什么类型的数据库,所以必须由我们配置它的配置文件告诉hibernate我们使用的是什么类型的数据库,类和表之间的关联关系。而POJO的全称为plain ordinary java objects,它与数据库中的表相对应。我们首先建立一张表gamespecies:表中有4个字段:id,gamename,species,players,其中主键为id。

create table gamespecies(
    id int primary key auto_increment,
    gamename varchar(40),
    species varchar(40),
    players int not null
    )

              接下来我们建立POJO类,类名为:Hibernatetest,这个类与上面所建的表相对应。

package com.hibernatetest.test;
public class Hibernatetest {
	private Integer id;
	private String species;
	private String gamename;
	private Integer players;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getSpecies() {
		return species;
	}
	public void setSpecies(String species) {
		this.species = species;
	}
	public String getGamename() {
		return gamename;
	}
	public void setGamename(String gamename) {
		this.gamename = gamename;
	}
	public Integer getPlayers() {
		return players;
	}
	public void setPlayers(Integer players) {
		this.players = players;
	}
}

              POJO类也叫做Domain类,还有时候被叫做javabean,反正这三种名称所代指的均是与数据库表相对应的java类。搞完这些,我们就要设置配置文件了。一般配置文件名的格式为POJO类名.hbm.xml要将它与POJO类相同的文件夹下面。简单的配置文件如下:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.hibernatetest.test">
	<!-- 配置主键 -->
	<class name="Hibernatetest" table="gamespecies">    <!--也就是类和表的名字-->
	<id name="id" column="id">    <!--id元素是用于主键属性-->
	<generator class="sequence">
	<param name="sequence"></param>
	</generator>
	</id>  
	<!-- 配置其他属性 -->
	<property name="gamename" type="java.lang.String"> <!-- String类型的属性 -->
	<column name="gamename" not-null="false"></column> 
	</property>   <!-- property中是类中属性的名称,而column中是表中的字段名 -->
	<property name="species" type="java.lang.String">
	<column name="species" not-null="false"></column>
	</property>
	<property name="players" type="java.lang.Integer">
	<column name="players" not-null="true"></column>
	</property>
	</class>  
</hibernate-mapping>

                  一般来说,这个文件不用我们自己写,可以自动生成。接下来,就到了我们配置hibernate.cfg.xml文件的时刻了。。。这个文件中包含了我们所用数据库的类型,用户名密码等等连接数据库所需要的信息。具体配置如下:

<?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>
		<!-- 配置driver -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
                <!-- 切换数据库改这里 -->
		<property name="connection.username">username</property>
                <!-- 用户名和密码 -->
		<property name="connection.password">password</property>
		<property name="connection.url">jdbc:mysql://zxdzxdzxd.mysql.rds.aliyuncs.com:3333/zxddb</property>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>		<!-- 明确指出hibernate连接的是哪种数据库 -->
		<mapping resource="com/hibernatetest/test/Hibernatetest.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

                   均配置好之后,最后我们写一个测试程序测试POJO类与数据库表是否已经建立好联系。具体代码如下:

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.hibernatetest.test.Hibernatetest;
public class TestMain {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建configuration
		Configuration configuration=new Configuration().configure();//读取hibernate.hbm.xml,并完成初始化
		//创建SessionFactory会话工厂,重量级的类。
		SessionFactory sessionFactory = configuration.buildSessionFactory();
		//创建session,与数据库打交道
		Session session=sessionFactory.openSession();
		//使用事物提交
		Transaction transcation = session.beginTransaction();
		//添加一个雇员
		Hibernatetest test = new Hibernatetest();
		test.setId(1);
		test.setGamename("DOTA");
		test.setSpecies("RTS");
		test.setPlayers(1000);
		System.out.println("processint!");
		session.save(test);//这里也就是insert into...
		transcation.commit();
		System.out.println("successful!");
		session.close();
	}
}

结果为:mission completed!

             在搭建的时候遇到的主要问题:

             1.hibernate.cfg.xml配置文件中数据库url的格式,对于MySQl型数据库来说,它的格式为:jdbc:mysql://url:port/db

             2.编写xml配置文件的时候写错了开头的部分:

<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

            这部分代码可以直接从hibernate文档中的同名文件(hibernate.cfg.xml以及User.hbm.xml)中拷贝,不过这些配置文件都可以自动生成。

             3.上面搭建hibernate的过程大体上是从先建立好数据库表——>编写POJO类——>设置配置文件,这是三种搭建hibernate框架方法中的一种。

             以上。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值