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 ...
随机推荐
- MarkMan – 马克鳗,让设计更有爱!
scavin(Google+) on 2010.11.16. MarkMan – 马克鳗 是一款方便高效的标注工具,极大节省设计师在设计稿上添加和修改标注的时间,让设计更有爱.Adobe AIR 平台 ...
- Oracle登录操作系统验证和密码文件验证
1.确认数据库版本 2.查看当前配置文件 ORALCE数据库不同的登录验证方式是和SQLNET.ORA配置文件有关系的,在配置文件中有一个参数sqlnet.authentication_service ...
- jquery ui autocomplete 实现点击文本框,出现所有查询信息效果,与bootstrap结合使用修改样式
直接看代码 <!doctype html> <html lang="en"> <head> <meta charset="utf ...
- CSS,bootstrap表格控制当td内容过长时用省略号表示,以及在不使用bootstrap时过长也用省略号表示
首先需要在table中设置table-layout:fixed; <table style="table-layout:fixed"></table> 然后 ...
- ant学习
如果在构建文件当中depends后面有多个依赖,而且这多个依赖还相互依赖,那么只会执行被依赖的任务,不会重复执行任务 ant学习
- response的Writer输出数据的问题
package cn.itcast.response; import java.io.IOException; import java.io.OutputStream; import java.io. ...
- Java封装
面向对象的三大特征:封装.继承.多态.封装在书面上来说,他无非就是set和get方法罢了.为什么要用到封装,比如买主机如果没有机箱只有内存条.CPU.主板等等那些零件买回到家,你还得一个个的去装那些零 ...
- 【SIGGRAPH】用【有说服力的照片真实】技术实现最终幻想15的视觉特效
原文:西川善司 http://www.4gamer.net/games/075/G007535/20160726064/ 最终幻想15的演讲会场.相当大,听众非常多. 在本次计算机图形和 ...
- 打包成zip
protected void btnExportZip_Click(object sender,EventArgs e) { string archiveName=String.Format(&quo ...
- request
social.Favorites.AddFavorite=function(angel) { a = $.extend(true, { type: "POST", url: &qu ...