搭建环境

一、新建一个项目 , 导包   一个是hibernate的jar包,一个是jdbc的jar包

hibernate的jar包

这些jar包全部导入

二、配置Hibernate。

1.建立hibernate.cfg.xml文件, 包所在的文件夹的project里去搜索cfg.xml复制并修改

2.配置hibernate.cfg.xml文件

<!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>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 数据库方言 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- 引用jdbc包 -->
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/myzy?characterEncoding=GBK</property> <!-- 数据库链接 -->
<property name="show_sql">true</property> <!-- true 执行完在控制台打印SQL语句 -->
<!-- 表映射加载 -->
<mapping resource="com/itnba/maya/model/Fruit.hbm.xml"/> </session-factory>
</hibernate-configuration>

3.每个配置项的值可以从project/etc/hibernate.properties中搜索

三、准备数据库

四、准备实体(建议使用:引用类型。建议类名属性名与列名一致)

package com.itnba.maya.model;

public class Fruit {
public String getIds() {
return ids;
}
public void setIds(String ids) {
this.ids = ids;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public Integer getNumbers() {
return numbers;
}
public void setNumbers(Integer numbers) {
this.numbers = numbers;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
private String ids;
private String name;
private Double price;
private String source;
private Integer numbers;
private String image; }

五、准备映射文件 实体类名.hbm.xml 例:Fruit.hbm.xml

1.建立:实体类名.hbm.xml文件。包所在的文件夹的project里去搜索hbm.xml复制并修改

要跟实体类放一个包里

2.配置实体类名.hbm.xml文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="false" package="com.itnba.maya.model"> <!-- 导入包 --> <class name="Fruit" table="Fruit"> <!-- 表名 -->
<id name="ids"> <!-- 主键 -->
<generator class="assigned"/><!-- 如果主键是自增长改为class="native" -->
</id>
<!-- 对应的各个字段名 -->
<property name="name"/>
<property name="price"/>
<property name="source"/>
<property name="numbers"/>
<property name="image"/> </class>
</hibernate-mapping>

六、写代码

说明:这里的session不是web中的session。
web中的session代表的是客户端与web服务器之间的会话。
这里的session指的是程序与数据库之前的会话,它是由hibernate进行管理的。

添加

package com.itnba.maya.test;
import java.util.List; import org.hibernate.*;
import org.hibernate.cfg.*; import com.itnba.maya.model.Fruit; public class AA { public static void main(String[] args) {
//读取hibernate.cfg.xml的配置,加载Hiberna的类库
Configuration config=new Configuration().configure();
//根据配置,生成session工厂
SessionFactory factory= config.buildSessionFactory();
//用工厂生成session
Session session =factory.openSession();
//添加
//1.造对象
Fruit data = new Fruit();
data.setIds("s002");
data.setName("芒果");
data.setSource("博山");
data.setPrice(10.0);
data.setNumbers(200);
data.setImage("无"); //2.用session.save()保存到数据库了
try{
session.beginTransaction();
session.save(data);
session.getTransaction().commit();
}
catch(Exception ex){
session.getTransaction().rollback();
} session.close();
} }

查询

package com.itnba.maya.test;
import java.util.List; import org.hibernate.*;
import org.hibernate.cfg.*; import com.itnba.maya.model.Fruit; public class AA { public static void main(String[] args) {
//读取hibernate.cfg.xml的配置,加载Hiberna的类库
Configuration config=new Configuration().configure();
//根据配置,生成session工厂
SessionFactory factory= config.buildSessionFactory();
//用工厂生成session
Session session =factory.openSession();
//查询
//查单条数据
Fruit data=session.get(Fruit.class, "k001");
System.out.println(data.getName()+data.getPrice()+data.getNumbers()); //查询所有数据
List<Fruit> list = session.createQuery("from Fruit").getResultList();
for(Fruit a:list){
System.out.println(a.getName()+a.getPrice()+a.getNumbers());
}
session.close();
} }

控制台显示

删除

package com.itnba.maya.test;
import java.util.List; import org.hibernate.*;
import org.hibernate.cfg.*; import com.itnba.maya.model.Fruit; public class AA { public static void main(String[] args) {
//读取hibernate.cfg.xml的配置,加载Hiberna的类库
Configuration config=new Configuration().configure();
//根据配置,生成session工厂
SessionFactory factory= config.buildSessionFactory();
//用工厂生成session
Session session =factory.openSession();
//删除
//先查出
Fruit data = session.load(Fruit.class,"k002");//get和load都可以查
if(data!=null){
session.beginTransaction();
//删除提交数据库
session.delete(data);
session.getTransaction().commit();
}
session.close();
} }

修改

package com.itnba.maya.test;
import java.util.List; import org.hibernate.*;
import org.hibernate.cfg.*; import com.itnba.maya.model.Fruit; public class AA { public static void main(String[] args) {
//读取hibernate.cfg.xml的配置,加载Hiberna的类库
Configuration config=new Configuration().configure();
//根据配置,生成session工厂
SessionFactory factory= config.buildSessionFactory();
//用工厂生成session
Session session =factory.openSession();
//修改
//1.查
Fruit data = session.load(Fruit.class,"s002"); if(data != null){
session.beginTransaction();
//2.改
data.setName("哈密瓜");
data.setPrice(11.1);
data.setNumbers(99);
//3.提交
session.update(data);
session.getTransaction().commit();
} session.close();
} }

hibernate框架环境搭建与使用的更多相关文章

  1. (01)hibernate框架环境搭建及测试

    ---恢复内容开始--- 1.创建javaweb项目 2.导包 hibernate包 hibernate\lib\required\*.jar 数据库驱动包 mysql-connector-java- ...

  2. eclipse中SSH三大框架环境搭建<三>

    相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...

  3. eclipse中SSH三大框架环境搭建<一>

    这里先简单介绍一下我用的三大框架版本以及下载地址 相关链接:eclipse中SSH三大框架环境搭建<二> eclipse中SSH三大框架环境搭建<三> struts-2.3.3 ...

  4. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  5. eclipse中SSH三大框架环境搭建<二>

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  6. 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建

    基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建 前言 最近做回后台开发,重新抓起以前学过的SSM(Spring+Sp ...

  7. [Hibernate 1]Hibernate的环境搭建

    一.Hibernate是什么 直接使用JDBC操作数据库的步骤很繁琐,JDBC操作的是关系型数据库,而我们用JAVA开发程序,则使用面向对象的思想.Hibernate正是在这两种不同的模型之间建立关联 ...

  8. 【Hibernate】hibernate框架的搭建

    1, Hibernate 是什么 Hibernate是java应用程序与数据库交互的开发的框架. Hibernate是一个开源,轻量级的ORM(对象关系映射)工具. 2,Hibernate框架的优点 ...

  9. 3/16 Django框架 环境搭建

    3/16 Django框架 环境搭建 环境搭建 Python解释器 Python代码通过Python解释器去执行. 编程语言 机器语言---汇编语言(助记符)---高级语言 解释型语言:解释器将代码一 ...

随机推荐

  1. (4.1)SQL Server Browser 与动态端口

    转自:http://blog.51cto.com/jimshu/1120295 一.启用TCP端口 1.启用TCP/IP协议 打开SSCM(SQL Server Configuration Manag ...

  2. 你真的会用Retrofit2吗?Retrofit2完全教程

    本文注目录: Retrofit入门 Retrofit注解详解 Gson与Converter RxJava与CallAdapter 自定义Converter 自定义CallAdapter 其它说明 前言 ...

  3. pytharm提示过期 License Activation 解决办法

    遇到如下问题: 打开网站:  http://idea.lanyus.com/   next next ok    

  4. ubuntu开启ROOT用户自动登录教程

    ub默认不开root很纠结,虽说是为了安全,但对于linux老鸟,老是sudo烦的很 开root方法: sudo passwd root 输入root密码 sudo gedit /etc/gdm/cu ...

  5. EasyUI:所有的图标

    EasyUI:所有的图标 所有的图标在 jquery-easyui-1.2.6/themes/icons 目录下: jquery-easyui-1.2.6/themes/icon.css .icon- ...

  6. linux 查看内存信息,及其他硬件信息 dmidecode命令

    由于想换内存,想看看内存型号.频率,简单搜了下命令 可以用dmidecode 命令查看. dmidecode -t memory 这个命令可以查看内存的几乎所有信息,包括频率 大小等等 另外这个命令强 ...

  7. 当root用户无密码,非超级权限用户时提示mysqladmin: Can't turn off logging; error: 'Access denied; you need the SUPER privilege for this op解决方案

    问题: 在centOS上安装了mysql后,卸载了又重新安装,使用mysqladmin -u root password 'new password' 更改密码,提示: mysqladmin: Can ...

  8. 0927—MySQL常用语句集合

    一.连接MySQL 格式: mysql -h 主机地址 -u 用户名 -p 用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysql bin,再键入命令mysql ...

  9. zabbix api

    #!/usr/bin/env python # -*-coding:utf-8 -*- import requests import json class AutoZabbix: def __init ...

  10. 什么是webhook

    什么是webhook 翻译,原文地址:https://sendgrid.com/blog/webhook-vs-api-whats-difference/ 一.概述 Webhook是一个API概念,并 ...