Hibernate框架之入门配置

一、Hibernate导入相关的包


     参考:http://blog.csdn.net/tunni/article/details/54982160

     这些包包括相应数据库驱动、hibernate.zip下lib目录下的jar包,其中必须包是required目录下的.jar


二、在项目classpath(类路径,即src目录下)配置hibernate.cfg.xml,并且配置数据库连接


 

hibernate.cfg.xml配置文件

<!DOCTYPE hibernate-configuration PUBLIC    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">    <hibernate-configuration>    <session-factory >    <!-- mysql数据库驱动 -->    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>    <!-- mysql数据库名称 -->    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_db</property>   <!-- 数据库的登陆用户名 -->    <property name="hibernate.connection.username">root</property>    <!-- 数据库的登陆密码 -->    <property name="hibernate.connection.password">admin</property>  <!-- 方言:为每一种数据库提供适配器,方便转换 -->    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>    <!-- 建议配置,方便在日志中查看sql语句-->    <propertynamepropertyname="hibernate.show_sql">true</property>  <propertyname="hibernate.format_sql">true</property>  <!--配置类与表的映射文件 -->    <mapping resource="com/hibernate/User.hbm.xml"/></session-factory>    
</hibernate-configuration>

 

 

com.hibernate.User类

package com.hibernate;public class User {    private String id;    private String username;    private String password;    public String getId() {    return id;    }    public void setId(String id) {    this.id = id;    }    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;    }    
}    

User.hbm.xml配置文件

<?xml version="1.0"?>    
<!DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">    <hibernate-mapping>    <!-- 类与数据库的表对应 -->    <class name="com.hibernate.User" table="user">    <!-- 主键名 -->    <id name="id" column="id">    <!-- 生成策略 -->    <generator class="uuid"/>    </id>    <!-- 其他类属性与表字段 -->     <property name="username" column="username"/>    <property name="password"/>    </class>    
</hibernate-mapping>  

hibernate访问工具类

 

package hibernate;
/*** hibernate工具* @author maokun* */
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;public class HibernateUtil {private static final SessionFactory sessionFactory;static{try{   //配置文件放在classpath路径,即src目录下//如果hibernate的配置文件目录为hibernate.cfg.xml,则//Configuration config = new Configuration().configure();//或Configuration config = new Configuration().configure("hibernate.cfg.xml");//或Configuration config = new Configuration().configure("hibernate.cfg.xml");       //配置其他路径如下://Configuration config = new Configuration().configure("hibernate/hibernate.cfg.xml");Configuration config = new Configuration().configure("/hibernate/hibernate.cfg.xml");sessionFactory = config.buildSessionFactory();}catch(Throwable e){throw new ExceptionInInitializerError(e);}}public static final ThreadLocal session = new ThreadLocal();public static Session currentSession() throws HibernateException{Session s = (Session)session.get();//如果线程没有session,打开新的sessionif(s == null || !s.isOpen()){s = sessionFactory.openSession();session.set(s);}return s;}public static void closeSession() throws HibernateException{Session s = (Session)session.get();session.set(null);if(s != null)s.close();}}


三、第一个hibernate例子


 

先创建hibernate_db数据库,接着创建user表包含id,username,password。


Test类

 

package hibernate;import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;import com.hibernate.User;public class Test {public static void main(String[] args) {User user =new User();user.setUsername("name");user.setPassword("pass");Session session = HibernateUtil.currentSession();//生成Session实例Transaction tx = session.beginTransaction();try{session.save(user);    //保存持久类对象tx.commit();        //提交到数据库session.close();            }catch(HibernateException e){e.printStackTrace();tx.rollback();}}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

annotations_Spring Annotations我从来没有机会使用第2部分:@ConfigurationProperties

annotations几天前&#xff0c;我在检查其他内容时不小心偶然发现了Spring Boot项目中的Spring注释。 我们都知道如何将带有“ Value”的属性值绑定到类&#xff0c;并且我们都知道如果要绑定多个属性&#xff0c;这可能会很麻烦。 Spring Boot可以为您提供帮助。 您可以使用“…

linux下检测硬盘,【转载】linux下硬盘监控诊断工具SmartTools

对于windwos下raid卡具备告警功能&#xff0c;当硬盘故障、raid卡告警时&#xff0c;可以发邮件给管理员。IBM、HP、Dell都支持。但在linux下&#xff0c;就没有找到相关的好工具了&#xff0c;今天到陈沙克的博客上到一篇关于linux下硬盘监控诊断工具SmartTools&#xff0c;感…

hibernate框架之主键生成

一、 hibernate 框架中主键的生成策略 (1)native: 表示由设置的方言决定采用什么数据库生成主键方式&#xff0c;根据底层数据库能力选择identity、sequence中的一个。 例如&#xff1a;在MySQL中会采用自增长的方式&#xff0c;主键字段必须都是整形类型&#xff1b;在Oracle数…

java泛型通配符

【0】README 0.1&#xff09;以下内容转自&#xff1a; http://blog.csdn.net/baple/article/details/25056169 0.2&#xff09; T 有类型 &#xff1f; 未知类型 一、通配符的上界&#xff08;extends关键字&#xff09; 既然知道List并不是List的子类型&#xff0c;那就需…

jdk 1.8 内存可见性_JDK 14中的常规,安全和确定性外部内存访问

jdk 1.8 内存可见性在“ JDK 14 Rampdown&#xff1a;Build 27 ”一文中&#xff0c;我总结了JDK 14 Early Access Build &#xff03;27中新增的许多针对JDK 14的功能。 已经存在另一种JDK 14 Early Access Build&#xff0c;并且此[ Build 28&#xff08;2019/12/18&#xff…

linux开启防火墙ping,如何在防火墙中放开ping

如何在防火墙中放开ping操作时需要注意的几项:1,注意iptables各版本间的区别我们的server os最旧的版本是redhat 7.3 kernel是2.4.20-18.7最新的server os最新的版本是centos 5, kernel是2.6.18-8差距很大iptables以模块形式运行在内核的空间,用lsmod可以看到所以它与内核的版本…

Hibernate: You have an error in your SQL syntax; check the manual that corresponds to your MySQL

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...Hibernate 出现这样的错误是因为表中的字段名使用了sql的保留字&#xff0c;不要使用保留字 一、mysql的保留字主要有&#xff1…

java.io 包

java.io 通过数据流、序列化和文件系统提供系统输入和输出。 请参见&#xff1a; 接口摘要CloseableCloseable 是可以关闭的数据源或目标。DataInputDataInput 接口用于从二进制流中读取字节&#xff0c;并根据所有 Java 基本类型数据进行重构。DataOutputDataOutput 接口用…

linux系统怎么安装pr,Linux安装后的配置

系统:CentOS-6.31.NVIDIA驱动的安装与配置Linux本身的显卡驱动是能够满足平常应用的&#xff0c;但是有时候我们为了获得3D效果&#xff0c;或者更流畅的视频体验&#xff0c;我们会安装新的显卡驱动。这时候就需要安装闭源驱动了&#xff0c;个人认为闭源的驱动更为好一些&…

java第三阶段源代码_有效Java第三版的源代码已更新为使用较新的功能

java第三阶段源代码那些已经阅读了有效Java 第三版的人可能知道与该书相关的源代码可以在GitHub上获得 。 jbloch / effective-java-3e-source-code项目拥有1700多个星星&#xff0c;截至撰写本文时&#xff0c;它已被分叉了近800次。 在有效Java的第三版中&#xff0c; Java的…

《线性代数及其应用》

【0】README 0.1&#xff09;以下内容转自&#xff1a; http://blog.csdn.net/ljbkiss/article/details/7194719 【1】正文干货 1.1&#xff09; 断断续续的终于把 《线性代数及其应用&#xff08;Linear Algebra and Its Application&#xff09; David C.Lay》 这本书看完了…

micrometer_具有InlfuxDB的Spring Boot和Micrometer第1部分:基础项目

micrometer对于那些关注此博客的人来说&#xff0c;难怪我会经常使用InfluxDB。 我喜欢这样一个事实&#xff0c;它是一个真正的单一用途的数据库&#xff08;时间序列&#xff09;&#xff0c;具有许多功能&#xff0c;并且还带有企业支持。 Spring也是我选择的工具之一。 因…

如何在win7(xp)home version下安装 rose 32 bit

【0】README 0.1&#xff09; 以下部分内容转自 http://blog.csdn.net/encienqi/article/details/5578725 【1】 干货开始 如果是家庭版(win7 or WindowsXPHomeEdition)请先按以下步骤修改部分文件后再安装&#xff1a; 1.1&#xff09;安装Microsoft Orca工具 step1&#x…

接口 Closeable

java.io 接口 Closeable public interface Closeable Closeable 是可以关闭的数据源或目标。调用 close 方法可释放对象保存的资源&#xff08;如打开文件&#xff09;。 从以下版本开始&#xff1a;1.5方法摘要 void close() 关闭此流并释放与此流关联的所有系统资源。 方法详…

Linux下python包放在哪,在alpinlinux中使用apk安装的Python包

我想用apk在Alpine Linux中安装一些Python包。我用numpy作为下面的例子。文档文件FROM python:3-alpineRUN apk add --update py3-numpy我建立我的码头形象$ docker build -t python-numpy .Sending build context to Docker daemon 2.048kBStep 1/2 : FROM python:3-alpine---…

spring 消息传递机制_Spring再次涵盖了您:继续进行消费者驱动的消息传递合同测试...

spring 消息传递机制在上一篇文章中&#xff0c;我们已经开始讨论基于消息的通信中的消费者驱动的合同测试 。 在今天的帖子中&#xff0c;我们将在测试工具箱中包含另一个工具&#xff0c;但是在此之前&#xff0c;让我对显微镜下的系统进行快速回顾。 它有两项服务&#xff0…

接口 DataInput

java.io接口 DataInput 所有已知子接口&#xff1a;ImageInputStream, ImageOutputStream, ObjectInput所有已知实现类&#xff1a;DataInputStream, FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamI…

java反射机制总结

【0】README 0.1&#xff09;以下内容转自&#xff1a; http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html 0.2&#xff09;for source code, please visit &#xff08;1~14 source code : https://github.com/pacosonTang/core-java-volume/blob/master…

c语言系统时间的作用,C语言得到当前系统时间

void getTime(){//获取当前系统时间time_t tTime;//距离1900年1月1日的秒数char str[80];struct tm* stTim;//时间结构time(&tTime);stTim localtime(&tTime);strftime(str,sizeof(str),"%Y%m%d%T",stTim);//格式化时间printf(str);}格式化时间的格式%a 星期…

aws集群重启_使用自动伸缩组在AWS中运行安全数据库集群

aws集群重启当您必须在AWS上运行可扩展应用程序时&#xff0c;您的数据库也必须是可扩展的。 扩展无状态应用程序层更容易&#xff0c;在无状态应用程序层中&#xff0c;每个节点几乎都是一次性的-即使3节点集群中的一个节点发生故障&#xff0c;您也可以启动另一个节点&#x…