3、hibernate5.3.5注解方式配置hibernate.cfg.xml

本文介绍了Hibernate不同版本的配置差异,并提供了一个完整的示例,包括配置文件、实体类及测试代码,展示了如何通过Hibernate进行数据库操作。

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

hibernate 不同版本配置不一样,可以参考https://www.cnblogs.com/lakeslove/p/5990402.html

hibernate.cfg.xml 代码: <mapping class="model.Student"/><!-- 注册我们的实体映射类-->

5..X版本<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> 

4.X版<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		    <!-- 数据库连接配置 -->
		    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		    <property name="connection.url">jdbc:mysql://localhost:3306/curricula</property>
		    <property name="connection.username">root</property>
		    <property name="connection.password">12345678</property>
		    <!-- 数据库连接池的大小 -->
		    <property name="connection.pool_size">5</property>
		     <!-- 每次从数据库中取出并放到JDBC的Statement中的记录条数。Fetch Size设的越大,读数据库的次数越少,速度越快,Fetch Size越小,读数据库的次数越多,速度越慢-->   
		    <property name="jdbc.fetch_size">50 </property>   
		    <!--批量插入,删除和更新时每次操作的记录数。Batch Size越大,批量操作的向数据库发送Sql的次数越少,速度就越快,同样耗用内存就越大-->   
		    <property name="jdbc.batch_size">23 </property>  
		    <!-- SQL 方言 -->
		    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
		    <!-- Enable Hibernate's automatic session context management -->
		    <property name="current_session_context_class">thread</property>
		    <!-- 在控制台输出sql语句 -->
		    <property name="show_sql">true</property>
		    <!-- 在启动时根据配置更新数据库 -->
		    <property name="hbm2ddl.auto">update</property>
		    <mapping class="model.Student"/><!-- 注册我们的实体映射类-->
	</session-factory>
</hibernate-configuration>

student javabean代码:

package model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="student") 
public class Student {
	private int id;
	private String name;
	private String pwd;
	private String phone;
	private String grade;
	private String photo;
	@Id
	@GeneratedValue
	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;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public String getGrade() {
		return grade;
	}
	public void setGrade(String grade) {
		this.grade = grade;
	}
	public String getPhoto() {
		return photo;
	}
	public void setPhoto(String photo) {
		this.photo = photo;
	}

}

测试类myApp代码:

package test;

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

import model.Student;

public class myApp {
		@Test
	 public void test() {
	// TODO Auto-generated constructor stub
		SessionFactory sessionFactory = new Configuration().configure("/hibernate.cfg.xml").buildSessionFactory();
	    Session session = sessionFactory.openSession();//从会话工厂获取一个session
	    Transaction transaction = session.beginTransaction();//开启一个新的事务
	    Student  s = new Student();
	    s.setName("admin");
	    s.setPhone("1866666089");
	    s.setPwd("12345689");
	    s.setGrade("二年级1班");
	    session.save(s);
	    transaction.commit();//提交事务
		}
}

面板输出

数据库:表中数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值