hibernate环境搭建和xml文件的配置

版权声明:未经博主同意,禁止转载 https://blog.csdn.net/weixin_42130471/article/details/84978036

新建java项目并添加一个文件夹并命名为lib(以下是已经搭建好环境时的java项目,一般刚开始新建时没有Referenced Libraries和JUnit4)

官网下载hibernate压缩文件

解压后按以下路径分别打开文件

复制以上两个图片的共10个jar包,到工程的lib文件夹下,除此之外还有四个jar包需要下载

下载后也复制到lib文件夹下,并右键bulid path,如下

接下来配置xml文件:

有两个xml文件需要配置:

a.第一个xml文件一个名称和位置任意,但推荐使用 类名.hbm.xml方式命名,位置推荐放在包下,这个配置文件作用是建立java类和数据库表的一 一对应关系(表和类对应以及表字段和类属性一 一对应);

如:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 以下约束信息,在hibernate-mapping文件中能找到,不需要死记硬背 但是要能看懂-->
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<!-- 以下是配置信息-->
<hibernate-mapping>
	<class name="sc.ustc.hibernate.User" table="t_user">
		<id name="uid" column="uid">
			<generator class="native"></generator>
		</id>
		<property name="username" column="username"></property>
		<property name="password" column="password"></property>
		<property name="address" column="address"></property>
	</class>
</hibernate-mapping>

class标签的name是全路径(包名加类名),table是表名;id表示主键,generator中native表示自动增长。property中name是非主属性,column是数据库中对应字段。

b.第二个xml文件名称和位置是确定的,表名称是hibernate.cfg.xml,叫做核心配置文件,位置在src文件下。

如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- hibernate-configuration中找 -->
<!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 >
	<!-- hibernate.properties中查找 是键值对 -->
	<!-- 第一部分,配置数据库信息,必须有 -->
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">666666</property>
		
		
	<!-- 第二部分:配置hibernate信息 可选的 -->
	<!-- 输出底层的sql语句,关键词查找show -->
	<property name="hibernate.show_sql">true</property>
	<!-- 输出底层sql语句格式 -->
	<property name="hibernate.format_sql">true</property>
	<!-- hibernate帮创建表,需配置之后
			update:如果已经有表,更新,如果没有,创建 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
	<!-- 配置数据库方言
		在mysql里面实现分页关键字limit,只能使用mysql里面
		在oracle数据库,实现分页rownum
	 	让hibernate框架识别不同数据库的自己特有的语句
	 	-->
		<property name="hibernate.dialect ">org.hibernate.dialect.MySQLDialect</property>
		
	<!-- 第三部分:把映射文件放到核心配置文件中 必须的 -->
		<mapping resource="sc/ucst/hibernate/User.hbm.xml"></mapping>
	</session-factory>
	
</hibernate-configuration>

User类:(java bean :有private属性和可访问的get和set方法)

package sc.ustc.hibernate;

public class User {
	private int uid;
	private String username;
	private String password;
	private String address;
	public int getUid() {
		return uid;
	}
	public void setUid(int uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	
}

测试类:

package sc.ucst.hibernatetest;

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

import sc.ustc.hibernate.User;

public class HibernateDemo {
	@Test
	public void testAdd(){
	//第一步加载hibernate核心配置文件
		//到src下面找到名称是hibernate.cfg.xml
		//在hibernate里面封装对象
		Configuration cfg=new Configuration();
		cfg.configure();
	//第二步,创建SessionFactory对象
		//读取hibernate核心配置文件内容,创建sessionFactory
		//在过程中,根据隐射关系,在配置数据库里面把表创建
		SessionFactory sessionFactory=cfg.buildSessionFactory();
	//第三步,使用SessionFactory创建session对象
		//类似于连接
		Session session=sessionFactory.openSession();
	//第四部开启事务
		Transaction tx=session.beginTransaction();
	//第五步 写具体逻辑crud操作
		//添加功能
		User user=new User();
		user.setUsername("小王");
		user.setPassword("250");
		user.setAddress("日本");
		//调用session的方法实现添加
		session.save(user);
	//第六步 提交事务
		tx.commit();
		
	//第七步 关闭资源
		session.close();
		sessionFactory.close();
		
	}
}

最后工程目录截图:

ok完成了。

以下是无关操作:

这里测试类用了单元测试,需要导入JUnit4,如何导入?

工程---右键---properties---java build path----libraries

add libiary

JUnit-----next-----JUnit4----finish------ok

run as---junit test

再看数据库:表创建成功,插入语句成功。

猜你喜欢

转载自blog.csdn.net/weixin_42130471/article/details/84978036
今日推荐