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

jar包导入

一、数据库表的创建

 

二、开启hibernate配置

编译器:eclipse 数据库:mysql

1.创建第一个xml文件

在类路径下(src),hibernate默认是读取类路径下的文件的,创建xml文件: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>
     <!-- 这是Mysql的配置信息,name值均是hibernate提供的固定的值 。Oracle并非是这样的--> 
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="hibernate.show_sql">true</property>
<!-- 方言,使用的是哪个数据库 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 这个是映射文件的路径 -->
<mapping resource="com/xxx/pojo/User.hbm.xml"/>
</session-factory> </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不可以改变

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>   <!-- name:实体类路径 table:表名 -->
<class name="com.xxx.pojo.User" table="user">
<id name="id" column="id">
<!--
设置主键生成策略
increment:主键按数值顺序递增,用在mysql上
sequence:采用数据库提供的sequence 机制生成主键。如Oralce中的Sequence
native:由Hibernate 根据使用的数据库自行判断
-->
<generator class="native">
<param name=""></param>
</generator>
</id>
<property name="name" column="user_name"></property>
<property name="sex" column="user_sex"></property>
<property name="age" column="user_age"></property>
</class>
</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.测试插入数据

    @org.junit.Test
public void test1(){
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction(); User user = new User("李四", "男", 20);
session.save(user);
transaction.commit();
session.close(); }

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

    @org.junit.Test
public void test2(){
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction(); //方法一
/*Criteria createCriteria = session.createCriteria(User.class);
List<User> list = createCriteria.list();
System.out.println(list);*/ //方法二
/*Query query = session.createQuery("from User");
List<User> list = query.list();
System.out.println(list);*/ //方法三
SQLQuery query = session.createSQLQuery("select *from user");
List<Object[]> list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
} transaction.commit();
session.close(); }

3.测试删除数据

    @org.junit.Test
public void test3(){
Configuration configuration = new Configuration().configure();
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
//进行删除前,先查询出来这条记录
User user = session.get(User.class, 1);
//进行删除
session.delete(user);
transaction.commit();
session.close(); }

4.测试更新数据

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

到此结束,哈哈!!!

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. Semaphore 并发信号

    package com.thread; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executo ...

  2. 免Root停用“Android键盘(AOSP)”

    一.效果:隐藏手机状态栏输入法选择图标: 二.手段:使用ADB免root 停用系统默认Android键盘(AOSP),这里参考了大神的方法,在此表示感谢: 三.实现过程: 上图 下面就是按照大神的方法 ...

  3. PL-VIO Docker测试

    Docker里面测试PL-VIO的代码 PL-VIO贺一家大佬最近开源出来的一个点线特征融合的VIO代码,基于Vins-Mono,想要快速测试一下代码,所以就写了个简单的Dockerfile来测试一下 ...

  4. 跨服务器执行SQL

    --exec sp_helpserver 可以以存储过程形式执行以下: --1.1 创建登录信息(或叫创建链接服务器登录名映射)(只需选择一种方式) --1.1.1 以windows认证的方式登录 / ...

  5. 巧用 Class Extension 隐藏属性

    一般来说,Extension用来给Class增加私有属性和方法,写在 Class 的.m文件.但是Extension不是必须要写在.m文件,你可以写在任何地方,只要在 @implementation  ...

  6. 冲刺Noip2017模拟赛4 解题报告——五十岚芒果酱

    题1 韬韬抢苹果(apple) [问题描述] 又到了收获的季节,树上结了许多韬韬,错了,是许多苹果,有很多个小韬韬都来摘苹 果.每个韬韬都想要最大的苹果,所以发生了争执,为了解决他们的矛盾,出题人定了 ...

  7. poj1222(高斯消元法解异或方程组+开关问题)

    题目链接:https://vjudge.net/problem/POJ-1222 题意:给定一个5×6的01矩阵,改变一个点的状态时它上下左右包括它自己的状态都会翻转,因为翻转2次等价与没有翻转,那么 ...

  8. Linux下文件搜索、查找、查看命令

    Linux下文件搜索.查找.查看命令 1.最强大的搜索命令:find 查找各种文件的命令 2.在文件资料中查找文件:locate 3.搜索命令所在的目录及别名信息:which 4.搜索命令所在的目录及 ...

  9. Jmeter对Websocket进行接口压力测试

    压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求 ...

  10. Mysql——日期函数,时间操作(汇总)

    英文文档连接:https://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html 中文文档连接:https://www.docs4 ...