hibernate主要配置文件整合-----实体类映射--持久化

hibernate主要配置文件整合

结构图:
在这里插入图片描述
实体类映射文件,名称格式:XX.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="org.hibernate.test.exception" >
	<!-- name填写实体类的路径 table填写表名 -->
	<class name="com.wqk.entity.User" table="user">
	
		<!-- id填写实体类主键字段 table填写表主键字段 -->
		<id name="id" column="id">
		<!-- native代表自增长依赖于表 -->
		<generator class="native"></generator>
		</id>
		<property name="username" column="username"></property>
		<property name="password" column="password"></property>
		<!-- 映射文件结束 -->
	</class>
</hibernate-mapping>

hibernate核心配置文件:名称: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>

        <!-- jdbc操作数据库配置文件 -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://127.0.0.1:3306/test01</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123</property>

        <!-- 数据库连接池初始化时创建的connection个数 -->
        <property name="connection.pool_size">2</property>

        <!-- 数据库类型,官方称之为sql方言,这里使用mysql,不要自己写从官网api文档上cp -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>


        <!-- 执行sql的时候是否打印sql语句,这里使用true,代表打印 -->
        <property name="show_sql">true</property>

        <!-- 这个配置是说:当数据库不存在时是否创建:DDL,这里我不允许它自己创建,so,修改为update -->
        <property name="hbm2ddl.auto">update</property>

        <!-- 这里是指向实体类的映射文件,注意:是实体类的映射文件,不是实体类 -->
        
	<!-- 刚刚找了一下。发现是属性写错了,拷贝的时候也要注意 -->
        <mapping resource="com/wqk/entity/User.hbm.xml"/>
        <!-- hibernate核心配置文件完成 -->

    </session-factory>

</hibernate-configuration>

基本操作:增删改查

package com.wqk.test;

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

import com.wqk.entity.User;

public class Test01 {
	
	//注解@Test相当于main方法
	@Test
	public void show()
	{
		Configuration con = new Configuration();
		//加载核心配置文件
		con.configure();
		//获取session工厂
		SessionFactory sf=con.buildSessionFactory();
		//打开session
		Session session = sf.openSession();
		//测试查询get(实体类.class, id)
		User user=(User) session.get(User.class, 1);
		System.out.println(user.getUsername());
		session.close();
		
	
	}
	//测试增删改
	@Test
	public void insert()
	{
		Configuration con = new Configuration();
		con.configure();
		SessionFactory sf = con.buildSessionFactory();
		Session session = sf.openSession();
		//做增删改时要求使用事物
		//获取事物
		Transaction tc = session.beginTransaction();
		//开启事物
		tc.begin();
		User user=new User();
		user.setUsername("张迷");
		user.setPassword("123456");
		session.save( user );
		//提交
		tc.commit();
		//关闭
		sf.close();
		//新增成功
	}
	
	//测试增删改
		@Test
		public void delete()
		{
			Configuration con = new Configuration();
			con.configure();
			SessionFactory sf = con.buildSessionFactory();
			Session session = sf.openSession();
			//做增删改时要求使用事物
			//获取事物
			Transaction tc = session.beginTransaction();
			//开启事物
			tc.begin();
			//先查询
			User user=(User) session.get(User.class, 1);
			session.delete(user);
			//提交
			tc.commit();
			//关闭
			sf.close();
			//删除成功
		}
		//测试增删改
				@Test
				public void update()
				{
					Configuration con = new Configuration();
					con.configure();
					SessionFactory sf = con.buildSessionFactory();
					Session session = sf.openSession();
					//做增删改时要求使用事物
					//获取事物
					Transaction tc = session.beginTransaction();
					//开启事物
					tc.begin();
					//依然先查询
					User user=(User) session.get(User.class, 2);
					user.setUsername("我爱你");
					session.update(user);
					//提交
					tc.commit();
					//关闭
					sf.close();
					//修改成功
				}
				//hibernate基础到此结束

}

猜你喜欢

转载自blog.csdn.net/qq_40910788/article/details/84981166