Hibernate 学习之HelloWorld

本文详细介绍如何通过导入相关包来使用Hibernate,包括创建数据库、建立表、配置配置文件、实体类、映射文件以及实现类。通过示例操作演示如何使用Hibernate进行数据持久化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hibernate如何去学习

——Helloword
本文章纯属个人见解,本人大三学生,学校上课仅仅讲到了SSH框架中的Struts2,对于Hibernate和Spring,在此之前,不曾有过任何接触
根据传智播客官网中提供的免费视频自学ing,部分资料源自于此
转载请注明出处
    
    如何去使用Hibernate呢,当然,跟struts2一样,导入相关包呗,一般需要导入的包有:
                         hibernate-distribution-3.6.0.Final                                       目录下的hibernate3.jar文件
                          hibernate-distribution-3.6.0.Final/lib/jpa                             目录下的hibernate-jpa-2.0-api-1.0.0.Final.jar
                          hibernate-distribution-3.6.0.Final/lib/required                    目录下的全部文件:
                                                                                                                    antlr-2.7.6.jar
                                                                                                                    commons-collections-3.1.jar
                                                                                                                    dom4j-1.6.1.jar
                                                                                                                    javassist-3.12.0.GA.jar
                                                                                                                    jta-1.1.jar
                                                                                                                    slf4j-api-1.6.1.jar
                        另外还是把mysql数据库链接驱动包夜添加进入吧,并且与上述包放在lib目录中,并且添加到项目的buildPath中去
  
    建立一个Mysql数据库,名为study_hibernate360,并且建立一个表,名为t_user,详细信息如下:
    create database  study_hibernate360;
    create table t_user (id int primary key default character set utf8,name varchar(20) );
    首先必须配置的一个配置文件,一般情况下,取名为Hibernate.cfg.xml,并且位置通常都src根目录下,在不熟悉的情况下,不要随意更改名字以及路径,HelloWorld中该配置文件如下:
     
<!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 name="foo">
	<!-- 连接数据库基本信息
	              包括数据库连接名javaee
	              数据库链接urljdbc:mysql://localhost:3306/study_hibernate360
	              用户名root
	              密码1
	              链接驱动com.mysql.jdbc.Driver
	     Hibernate数据库链接方言,mysql专属的一个类org.hibernate.dialect.MySQLDialect-->
	<property name="myeclipse.connection.profile">javaee</property>
	<property name="connection.url">
		jdbc:mysql://localhost:3306/study_hibernate360</property>
	<property name="connection.username">root</property>
	<property name="connection.password">1</property>
	<property name="connection.driver_class">
		com.mysql.jdbc.Driver</property>
	<property name="dialect">
		org.hibernate.dialect.MySQLDialect</property>
	
	
	<!-- 常量配置
	         show_sql 表示将生成的sql查询语句打印到控制台,默认false -->
	<property name="show_sql">true</property>
	
	<!-- 映射文件位置配置
	                           一般将实体与数据库表映射文件都单独分开,方便管理,在本文件中注明相关位置即可
	         HelloWorld中仅仅一个实体-->
	<mapping resource="hibernate/helloworld/TUser.hbm.xml"/>
	
</session-factory>
</hibernate-configuration>

    接下来,库表对应的实体类,TUser.java
    对应的代码如下:
package hibernate.helloworld;

public class TUser {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

再接下来,对应的一个实体与库表的映射文件,通常取名为实体名一样,加上hbm.xml,即:TUser. hbm.xml,详细信息如下:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="hibernate.helloworld">
    <!-- 实体TUser对应数据库表t_user
                           实体属性id即为表主键,对应表列id,并且是采用数据库自带的自增长策略
                           实体属性name对应表列name -->
	<class name="TUser" table="t_user">
		<id name="id" type="int" column="id" >
			<generator class="native"/>
		</id>
		<property name="name" type="string" column="name"/>			
	</class>
</hibernate-mapping>

那么最后就是一个实现类,这里我仅仅写了一个利用hibernate往数据库添加数据的操作
使用注解@Test来测试运行,(需要一定环境,引入JUnit4相关包就行)
package hibernate.helloworld;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

public class App {
	private static SessionFactory sessionFactory;//静态工厂,保证只产生一个
	static {                                     //写在static里面,保证只加载一次
		Configuration cfg = new Configuration(); //配置文件管理类
		cfg.configure("hibernate.cfg.xml");      //读取配置文件
		sessionFactory = cfg.buildSessionFactory();//根据配置文件产生session工厂
	}
	@Test   //test注解
	public void testSave(){
		/*
		 * 往数据库存数据,需要什么
		 * 最核心的一个类Session,用Session来保存数据,那个如何让数据持久化的存在呢
		 * 那么必须有的就是事物了,事物提交,持久化存在
		 * 务必关闭session
		 */
		try{
			TUser user = new TUser();
			Session session = sessionFactory.openSession();
			Transaction tx = session.beginTransaction();
			user.setName("张三");
			session.save(user);
			tx.commit();
			session.close();
			System.out.println("1111111111");
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}
HelloWorld包(Java Project):点击打开链接
hibernate-distribution-3.6.0.Final包:无线网卡上传太慢额,去了学校在上传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值