学习了hibernate后就想先给大家分享一下它的配置方法:

jar包导入

一、数据库表的创建

 

二、开启hibernate配置

编译器:eclipse 数据库:mysql

1.创建第一个xml文件

在类路径下(src),hibernate默认是读取类路径下的文件的,创建xml文件:hibernate.cfg.xml。注:名称必须是这个,不能随意更改

<?xml version="1.0" encoding="UTF-8"?>

  1. <!DOCTYPE hibernate-configuration PUBLIC
  2. "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3. "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factory>
         <!-- 这是Mysql的配置信息,name值均是hibernate提供的固定的值 。Oracle并非是这样的--> 
  6. <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  7. <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
  8. <property name="hibernate.connection.username">root</property>
  9. <property name="hibernate.connection.password">123456</property>
  10. <property name="hibernate.show_sql">true</property>
  11. <!-- 方言,使用的是哪个数据库 -->
  12. <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  13. <!-- 这个是映射文件的路径 -->
  14. <mapping resource="com/xxx/pojo/User.hbm.xml"/>
  15. </session-factory>
  16.  
  17. </hibernate-configuration>

http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd,这个是hibernate对于xml文件的约束,只能使用hibernate规定的标签

将约束引入eclipse中,根据给定的路径,将路径拷贝到浏览器的地址栏,进行dtd文件的下载(此路径就是dtd文件的下载路径,直接复制即可)

下载之后是:

接下来,打开eclipse--->window--->Preferences,搜索xml,找到XML Catalog,点击Add,Location是你本机上下载的dtd文件的路径,Key type选择是URI,Key是xml文件中的约束路径,点击Ok就可以了

2.创建一个实体类User(com.xxx.pojo)

实体类中的属性必须和数据库中表的字段相对应(属性名和字段名称可以不一致,但是字段类型和数量必须一致)。

3.在实体类包下创建第二个配置文件:User.hbm.xml。

此配置文件,格式是xxx.hbm.xml,xxx可以改变,但必须是实体类的类名,后面的hbm.xml不可以改变

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC
  3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  4. "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6.  
  7.   <!-- name:实体类路径 table:表名 -->
  8. <class name="com.xxx.pojo.User" table="user">
  9. <id name="id" column="id">
  10. <!--
  11. 设置主键生成策略
  12. increment:主键按数值顺序递增,用在mysql上
  13. sequence:采用数据库提供的sequence 机制生成主键。如Oralce中的Sequence
  14. native:由Hibernate 根据使用的数据库自行判断
  15. -->
  16. <generator class="native">
  17. <param name=""></param>
  18. </generator>
  19. </id>
  20. <property name="name" column="user_name"></property>
  21. <property name="sex" column="user_sex"></property>
  22. <property name="age" column="user_age"></property>
  23. </class>
  24. </hibernate-mapping>

这个xml文件中也有一个约束,和之前的hibernate.cfg.xml文件对的约束的添加方法是一致的

完成后,不要忘记将此映射文件的路径引入进 hibernate.cfg.xml 中,上面的hibernate.cfg.xml文件已经引入,可自行去查看

到这里,hibernate 配置就已经结束了,接下来是测试阶段

三、测试hibernate程序

ps:相关概念

(1).Configuration类,启动Hibernate,用来指定对象,关系映射,文件的位置或者动态配置hibernate的属性

(2).SessionFactory接口,一个存储源(DB)的代理,一个Factory对应一个DB

(3).session接口 持久化管理器,主要增删改查

(4).Transaction接口 主要是事务管理

(5).Query和Criteria接口 都是查询 get() load();

1.测试插入数据

  1. @org.junit.Test
  2. public void test1(){
  3. Configuration configuration = new Configuration().configure();
  4. SessionFactory sessionFactory = configuration.buildSessionFactory();
  5. Session session = sessionFactory.openSession();
  6. Transaction transaction = session.beginTransaction();
  7.  
  8. User user = new User("李四", "男", 20);
  9. session.save(user);
  10. transaction.commit();
  11. session.close();
  12.  
  13. }

2.测试查询数据(查询所有)

  1. @org.junit.Test
  2. public void test2(){
  3. Configuration configuration = new Configuration().configure();
  4. SessionFactory sessionFactory = configuration.buildSessionFactory();
  5. Session session = sessionFactory.openSession();
  6. Transaction transaction = session.beginTransaction();
  7.  
  8. //方法一
  9. /*Criteria createCriteria = session.createCriteria(User.class);
  10. List<User> list = createCriteria.list();
  11. System.out.println(list);*/
  12.  
  13. //方法二
  14. /*Query query = session.createQuery("from User");
  15. List<User> list = query.list();
  16. System.out.println(list);*/
  17.  
  18. //方法三
  19. SQLQuery query = session.createSQLQuery("select *from user");
  20. List<Object[]> list = query.list();
  21. for (Object[] objects : list) {
  22. System.out.println(Arrays.toString(objects));
  23. }
  24.  
  25. transaction.commit();
  26. session.close();
  27.  
  28. }

3.测试删除数据

  1. @org.junit.Test
  2. public void test3(){
  3. Configuration configuration = new Configuration().configure();
  4. SessionFactory sessionFactory = configuration.buildSessionFactory();
  5. Session session = sessionFactory.openSession();
  6. Transaction transaction = session.beginTransaction();
  7. //进行删除前,先查询出来这条记录
  8. User user = session.get(User.class, 1);
  9. //进行删除
  10. session.delete(user);
  11. transaction.commit();
  12. session.close();
  13.  
  14. }

4.测试更新数据

  1. @org.junit.Test
  2. public void test4(){
  3. Configuration configuration = new Configuration().configure();
  4. SessionFactory sessionFactory = configuration.buildSessionFactory();
  5. Session session = sessionFactory.openSession();
  6. Transaction transaction = session.beginTransaction();
  7. //进行删除前,先查询出来这条记录
  8. User user = session.get(User.class, 3);
  9. //重新给name复制
  10. user.setName("xxx");
  11. //进行插入
  12. session.update(user);
  13. transaction.commit();
  14. session.close();
  15.  
  16. }

到此结束,哈哈!!!

hibernate入门配置及第一个hibernate程序的更多相关文章

  1. Mybatis入门配置及第一个Mybatis程序

    目的:使用mybatis来进行对数据库表的操作 第一步:引入jar包 我这里是创建的maven工程 第二步:创建数据表user 第三步:创建实体类 实体类放在包 com.xxx.pojo 下,包名可自 ...

  2. Node.js入门以及第一个helloworld程序

    1.概念:简单的说 Node.js 就是运行在服务端的 JavaScript.学之前需要明白Node.js是无法挑战jsp.php或者asp这种老牌网站的地位的,是永远不会出现在证券.金融这种领域的. ...

  3. Android 开发前的基本的配置及第一个Android 程序

     一.JDK 1. 网上下载JDK 2.   配置环境变量(网上百度相关资料)       JAVA_HOME=D:\Java\jdk1.8.0_91       CLASSPATH=.;%JAVA_ ...

  4. Servlet入门总结及第一个Servlet程序

    目录 一了解Servlet的概念 二Servlet技术功能 三 Servlet技术特点 四 Servlet生命周期 五servlet工作过程 六 Servlet与JSP区别 七Servlet代码结构 ...

  5. Cesium入门2 - Cesium环境搭建及第一个示例程序

    Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...

  6. SpringMVC基础入门,创建一个HelloWorld程序

    ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...

  7. Java基础教程1:环境配置及第一个HelloWorld.java

    本文主要介绍JDK环境配置.Sublime Text3配置及第一个HelloWorld.Java程序.运行环境为Win10系统,使用JDK1.8版本. 1. JDK下载及环境配置 1.1 JDK下载 ...

  8. Conda安装及第一个py程序

    Conda安装及第一个py程序 安装Conda 下载安装 在Anaconda官网下载Anaconda 打开Conda安装程序 设置好安装目录(这个一定要记好,后边要用),比如我的目录就是 D:\Pro ...

  9. Hibernate学习笔记--第一个Hibernate框架程序

    一般使用集成开发环境是,把所需的类库添加到项目属性的库路径中,开发工具在部署时会自动复制所需要的类包到WEB-INF\lib目录下 MyEclipse中: 创建项目,右击项目->myeclips ...

随机推荐

  1. (转)svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrupted”

    今天碰到了个郁闷的问题,svn执行clean up命令时报错“Previous operation has not finished; run 'cleanup' if it was interrup ...

  2. DOTS原则和愿景

    Unity Data Oriented Tech Stack基于一系列原则.这些原则为我们正在努力实现的目标提供了良好的背景.一些原则清楚地反映在代码中.其他则只是我们为自己设定的目标. 默认情况下的 ...

  3. 部署 --- Nginx

    Nginx介绍 简介: Nginx是由伊戈尔.塞索耶夫开发的,在04年10月开源的一款高性能HTTP和反向代理服务器. 因为它的稳定性好,功能丰富,有示例配置文件和较低的系统资源消耗而闻名 同时也是一 ...

  4. 使用Navicat为数据库表建立触发器

    打开Navicat   打开数据表所在的数据库,右击需要新增字段的数据库表,然后点击[设计表]   此时进入表设计界面   点击[触发器]标签页,输入触发器名称,如trigger1   选择触发条件, ...

  5. Date、DateFormat和Calendar类的简单认识

    第三阶段 JAVA常见对象的学习 Date.DateFormat和Calendar类的简单认识 Date类 Date:表示特定的瞬间,精确到毫秒. (一) 构造方法: Date():根据当前的默认毫秒 ...

  6. loback的介绍与配置-(通俗易通)

    一.logback的配置介绍 Logback的配置分为三个内容:Logger.appender及layout Logger:作为日志的记录器,主要用于存放日志对象,也可以定义日志类型.级别. appe ...

  7. postgresSQL常用命令

    1.createdb 数据库名称  产生数据库2.dropdb  数据库名称  删除数据库 3.CREATE USER 用户名称  创建用户4.drop User 用户名称  删除用户 5.SELEC ...

  8. 1.3.1 Lock接口及其实现

    1.锁的本质 2.Lock接口使用ReentrenLock 3.读写锁使用 4.读写锁实现 Lock接口方法 有点意思的是lockInterruptibly(), 只要没有获取到锁就会一直等待,直到某 ...

  9. 西安区域赛 D.Miku and Generals 二分图+背包

    Miku and Generals Describe "Miku is matchless in the world!" As everyone knows, Nakano Mik ...

  10. 15.Ansible安装与配置简单版

    Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用.安装软件.执行命令.配置和编排任务. 一.Ansible工作机制 从图中可 ...