Hibernate xml quickstart

本文通过一个完整的示例介绍了如何使用 Hibernate 进行对象关系映射,包括配置文件 hibernate.cfg.xml 的设置、实体类 Message.java 及其映射文件 Message.hbm.xml 的定义,同时还展示了如何利用 HibernateUtil 和 Client 类进行数据的持久化操作。

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

hibernate.cfg.xml

HibernateUtils.java

Client.java

Message.java

Message.hbm.xml

 

======================hibernate.cfg.xml======================

<?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="hibernate.dialect">
   org.hibernate.dialect.Oracle9Dialect
  </property>
  <property name="driverClassName">
   oracle.jdbc.OracleDriver
  </property>
  <property name="url">
   jdbc:oracle:thin:@172.21.104.41:1521:alpsd
  </property>
  <property name="username">portal</property>
  <property name="password">portal</property>

  <property name="show_sql">true</property>
  <property name="format_sql">true</property>
  <property name="hibernate.hbm2ddl.auto">create</property>
  <mapping resource="domain/Message.hbm.xml" />

 </session-factory>

</hibernate-configuration>

 

 

======================HibernateUtils.java======================

package persistance;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {
	private static SessionFactory sessionFactory;
	static {
		try {
			sessionFactory = new Configuration().configure()
					.buildSessionFactory();
		} catch (Throwable ex) {
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	public static void shutdown() {
		getSessionFactory().close();
	}

}

  

======================Client.java======================

package hello;

import java.util.Iterator;
import java.util.List;

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

import persistance.HibernateUtil;
import domain.Message;

public class HelloWorld {
	public static void main(String[] args) {
		Configuration cfg1;
		SessionFactory sf;
		Session session;
		cfg1 = new Configuration().configure();
		sf = cfg1.buildSessionFactory();
		session = sf.openSession();

		Message message = new Message("Hello World");
		Long msgId = (Long) session.save(message);
		/*
		 * Transaction tx = session.beginTransaction(); Message message = new
		 * Message("Hello World"); Long msgId = (Long) session.save(message);
		 * tx.commit(); session.close();
		 * 
		 * Session newSession = HibernateUtil.getSessionFactory().openSession();
		 * Transaction newTransaction = newSession.beginTransaction(); List
		 * messages = newSession.createQuery( "from Message m order by ? m.text
		 * asc").list(); System.out.println(messages.size() + " message(s)
		 * found:");
		 * 
		 * for (Iterator iter = messages.iterator(); iter.hasNext();) { Message
		 * loadedMsg = (Message) iter.next();
		 * System.out.println(loadedMsg.getText()); } newTransaction.commit();
		 * newSession.close(); HibernateUtil.shutdown();
		 */
	}
}

 

======================Message.java======================

package domain;

public class Message {
	private Long id;
	private String text;
	private Message nextMessage;

	Message() {
	}

	public Message(String text) {
		this.text = text;
	}

	public Long getId() {
		return id;
	}

	private void setId(Long id) {
		this.id = id;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	public Message getNextMessage() {
		return nextMessage;
	}

	public void setNextMessage(Message nextMessage) {
		this.nextMessage = nextMessage;
	}
}

 

 

======================Message.hbm.xml======================

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC    "-//Hibernate/Hibernate Mapping DTD//EN"    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="domain.Message" table="MESSAGES">
		<id name="id" column="MESSAGE_ID" type="long">
			<generator class="increment" />
		</id>
		<property name="text" column="MESSAGE_TEXT" type="string"/>
		<many-to-one name="nextMessage" cascade="all"
			column="NEXT_MESSAGE_ID" foreign-key="FK_NEXT_MESSAGE" />
	</class>
</hibernate-mapping>

 

 

 ant-1.6.5.jar
    ant-antlr-1.6.5.jar
    ant-junit-1.6.5.jar
    ant-launcher-1.6.5.jar
    ant-swing-1.6.5.jar
    antlr-2.7.6.jar
    asm-attrs.jar
    asm.jar
    c3p0-0.9.1.jar
    cglib-2.1.3.jar
    checkstyle-all.jar
    cleanimports.jar
    commons-collections-2.1.1.jar
    commons-logging-1.0.4.jar
    concurrent-1.3.2.jar
    dom4j-1.6.1.jar
    ehcache-1.2.3.jar
    hibernate3.jar
    jaas.jar
    jacc-1_0-fr.jar
    javassist.jar
    jaxen-1.1-beta-7.jar
    jboss-cache.jar
    jboss-common.jar
    jboss-jmx.jar
    jboss-system.jar
    jgroups-2.2.8.jar
    jta.jar
    junit-3.8.1.jar
    log4j-1.2.11.jar
    ojdbc-14.jar
    oscache-2.1.jar
    proxool-0.8.3.jar
    swarmcache-1.0rc2.jar
    syndiag2.jar
    versioncheck.jar
    xerces-2.6.2.jar
    xml-apis.jar

 

内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值