学习了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. python基础----redis模块

    数据库 关系型数据 例如mysql,有表还有约束条件等 非关系型 k-v形式 memcache 存在内存中 redis 存在内存 mongodb 数据存在磁盘 import redis #string ...

  2. Flutter路由_fluro引入配置和使用

    Flutter本身提供了路由机制,作个人的小型项目,完全足够了.但是如果你要作企业级开发,可能就会把入口文件变得臃肿不堪.而再Flutter问世之初,就已经了企业级路由方案fluro. flutter ...

  3. 配置zabbix监控windows,cmd运行报错cannot connect to Service Manager: [0x00000005]

    错误原因: cmd运行没有管理员权限 解决: 找到cmd.exe的位置C:\Windows\System32,选中--右键--使用管理员身份运行 再通过cmd进入到zabbix_agentd文件夹进行 ...

  4. Linux 之 netstat使用

    netstat介绍 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast ...

  5. Debezium系列随笔

    0.Debezium简介 1.Run Debezium for Mysql in docker step by step 2.Run Debezium for SQLServer in docker ...

  6. cenos 防火墙操作

    iptables防火墙 1.基本操作 # 查看防火墙状态 service iptables status   # 停止防火墙 service iptables stop   # 启动防火墙 servi ...

  7. 怎么才能记住java线程的start()和run()谁是启动方法

    start()和run()开始的时候总是记不住那个是线程的启动方法,现在是记得很真切了! 如果用run()启动线程就跟不用线程效果是一样的,因为是run是顺序执行的.start()才是线程的启动方法. ...

  8. oracle不记得所有账户和密码怎么办

    1.打开cmd,输入sqlplus /nolog,回车: 2.输入“conn / as sysdba”; 3.输入“alter user sys identified by 新密码:”,注意:必须输入 ...

  9. 解决Eclipse中文文档注释错位-处女座的悲哀!

    1.右键打开eclips属性 2.选择兼容性为win8,然后打开Eclipse即可解决 作者:醉烟 出处:https://www.cnblogs.com/WangLei2018/    本文版权归作者 ...

  10. S4VM解析

    S4VM解析 2018年08月03日 15:20:59 stringlife 阅读数 1233   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. ...