Hibernate框架的使用。。。
在lib文件夹里面导入Hibernate开发的架包和连接mysql,连接数据源c3p0的架包...
在src目录下建立Hibernate Configuration File(cfg.xml)的配置文件:hibernate.cfg.xml;
其中有配置连接数据库的架包,配置Hibernate的基本信息;最后,指定关系的 .hbm.xml文件 ,包名和在该包下的hbm.xml文件名,是一个目录结构
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory> <!-- 配置连接数据的基本信息 -->
<property name="connection.username">root</property>
<property name="connection.password">lxn123</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///hibernate</property> <!-- 配置hibernate的基本信息 --> <!-- hibernate使用的数据库方言 ,这个是mysql支持事物的方法,在包:
hibernate-release-4.2.4.Final\hibernate-release-4.2.4.Final\project\etc\hibernate.properties.template,文件中找-->
<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- 执行操作是否在控制台打印,在eclipse中显示实现操作的sql语句 -->
<property name="show_sql">true</property> <!-- 是否对SQL格式化 ,显示一行还是多行,便于阅读-->
<property name="format_sql">true</property> <!-- 指定自动生成数据表的策略,一共可以去四个值 -->
<property name="hbm2ddl.auto">update</property> <!-- 指定关系的 .hbm.xml文件 ,包名和在该包下的hbm.xml文件名,是一个目录结构-->
<mapping resource="com/atguigu/hibernate/hello/News.hbm.xml"/> </session-factory>
</hibernate-configuration>
创建一个持久化类:将要建立的数据表中的属性封装在这个类中;
package com.atguigu.hibernate.hello; import java.sql.Date; public class News {
private Integer id;
private String title;
private String author;
private Date date;
public News(String title, String author, Date date) {
super();
this.title = title;
this.author = author;
this.date = date;
} public News() {
super();
// TODO Auto-generated constructor stub
} public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getAuthor() {
return author;
} public void setAuthor(String author) {
this.author = author;
} public Date getDate() {
return date;
} public void setDate(Date date) {
this.date = date;
} public String toString() {
return "News [id=" + id + ", title=" + title + ", author=" + author
+ ", date=" + date + "]";
} }
在持久化类的同一包下建立Hibernate XML Mapping file(hbm.xml)的 一个对象关系映射文件:News.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">
<!-- Generated 2016-9-15 15:51:47 by Hibernate Tools 3.4.0.CR1 --> <!-- 对象关系映射文件 -->
<hibernate-mapping> <class name="com.atguigu.hibernate.hello.News" table="NEWS">
<!-- 属性名,类型 -->
<id name="id" type="java.lang.Integer"> <!-- 列名 -->
<column name="ID" /> <!-- 指定主键的生成方式, native: 使用数据库本地方式 -->
<generator class="native" />
</id> <property name="title" type="java.lang.String">
<column name="TITLE"></column>
</property> <property name="author" type="java.lang.String">
<column name="AUTHOR" />
</property> <property name="date" type="java.sql.Date">
<column name="DATE" />
</property> </class>
</hibernate-mapping>
最会,建立一个类,实现,实现表的建立;
package com.atguigu.hibernate.hello; import java.sql.Date; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder; import junit.framework.TestCase; public class HeibernateTT extends TestCase { public static void main(String[] args) {
//1. 创建一个 SessionFactory 对象,一般在一个项目中建立以,比较消耗资源
SessionFactory sessionFactory=null; //1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和 对象关系映射信息
Configuration configuration=new Configuration().configure(); //2). 创建一个 ServiceRegistry 对象: hibernate 4.x 新添加的对象
//hibernate 的任何配置和服务都需要在该对象中注册后才能有效.
ServiceRegistry serviceRegistry=
new ServiceRegistryBuilder()
.applySettings(configuration
.getProperties()).buildServiceRegistry(); sessionFactory=configuration.buildSessionFactory(serviceRegistry); //2. 创建一个 Session 对象,是用户和数据库之间进行交互操作的单线程对象,
Session session=sessionFactory.openSession(); //3. 开启事务,Transaction事物
Transaction transaction=session.beginTransaction(); //4. 执行保存操作
News news=new News("java", "panpan", new Date(new java.util.Date().getTime()));
//插入数据
session.save(news); //5. 提交事务
transaction.commit(); //6. 关闭 Session
session.close(); //7. 关闭 SessionFactory 对象
sessionFactory.close(); }
}
Hibernate框架的使用。。。的更多相关文章
- Hibernate框架之Criteria查询 和注解(重点☆☆☆☆☆,难点☆☆☆)
写好一篇博客,不是容易的事.原因是:你要给自己以后看的时候,还能看懂,最重要的是当别人看到你的博客文章的时候,也一样很清楚的明白你自己写的东西.其实这也是一种成就感!! 对于每一个知识点,要有必要的解 ...
- Hibernate 系列 01 - 框架技术 (介绍Hibernate框架的发展由来)
引导目录: Hibernate 系列教程 目录 本篇导航: 为什么学习框架技术 框架的概念 主流框架的介绍 1.为什么学习框架技术 如何制作一份看上去具有专业水准的PPT文档呢?一个简单的方法就是使用 ...
- 2.0、Hibernate框架的简单搭建
一.Hibernate:是一个开放源代码的对象关系映射框架,对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句 ...
- 【Hibernate框架】对象的三种持久化状态
一.综述 hibernate中的对象有三种状态,分别是TransientObjects(瞬时对象).PersistentObjects(持久化对象)和DetachedObjects(托管对象也叫做离线 ...
- hibernate框架int和Integer类型区别
hibernate 框架在定义实体时,int类型最好定义为Inttger类型,因为在注入时int是值类型不允许为空.
- SSH(Struts2+Spring+Hibernate)框架搭建流程<注解的方式创建Bean>
此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblo ...
- ECLIPSE/JAVAWEB (二)三大框架之Hibernate框架 持续更新中...
(一)发展历史 在Struts框架中使用jdbc连接来读写数据库,我们最常见的就是打开数据库连接.使用复杂的sql语句进行读写.关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常繁琐的过程. ...
- Hibernate框架简单应用
Hibernate框架简单应用 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...
- Hibernate框架(未完待续······)
作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编 ...
- Hibernate框架之get和load方法的区别
我们在学习Hibernate框架时,经常会进行修改,删除操作,对于这些操作,我们都应该先加载对象,然后在执行或删除的操作,那么这里Hibernate提供了两种方法按照主键加载对象,也就是我要说的get ...
随机推荐
- 移动端设备UA检测
网上找到的都不全,不是漏这个就是漏那个,有的甚至还把桌面的chrome判断为移动浏览器. 于是自己动手整理,这回算是比较全了.以后发现漏掉的立马加上. if(/AppleWebKit.*Mobile/ ...
- 基于Jenkins的环境搭建
基于 Jenkins 快速搭建持续集成环境 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续 ...
- Android课程---首学开发
新建一个Activity2类: package com.hanqi.test; import android.app.Activity; import android.os.Bundle; impor ...
- HTTP Error 500 - Server Error.
Error Details: The FastCGI process exited unexpectedly Error Number: -1073741819 (0xc0000005). Error ...
- maven使用本地jar包
引入本地jar包 方式一:将本地Jar包安装到本地仓库,再按常规方式引用 mvn install:install-file -Dfile=libs\tools.jar -DgroupId=com.su ...
- Python强化训练笔记(四)——字典的排序
假如有学生成绩以字典顺序排列:{'Tom': 87, 'Jack': 90, 'Rose': 100.....} 想要根据学生的成绩来进行排序,可以考虑使用sorted函数.但是sorted函数用在字 ...
- Nginx基础整理
目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Nginx的主要企业功能 Nginx作为web服务器的主要应用场景包括: Nginx的安装 安装环境 快速安装命令集合 各个 ...
- 【转】HTTP 头部解释,HTTP 头部详细分析,最全HTTP头部信息
HTTP 头部解释 ========================================================================================== ...
- jq html 页面点击图片直接上传
<form id="ff" method="post" enctype="multipart/form-data" style=&qu ...
- c# ConfigurationSection
怎么把自己的配置文件配置到app.config中? 方案1:在app.config中添加 <!--应用配置--> <appSettings configSource="Co ...