Hibernate——以面向对象的思维操作关系数据库(一)
来源:互联网 发布:js窗口大小改变事件 编辑:程序博客网 时间:2024/05/16 17:03
Hibernate是一个轻量级的ORM开源框架。Hibernate解脱了面对繁琐的JDBC的开发者,使得变成更加面向对象化,将之前的连接语句,增删改查等语句进行了很好的封装,使得业务逻辑等的编写更加的容易;使移植数据库也变得十分的容易,即根据不同的数据库配置configuration.cfg.xml就可以轻松改变数据库;下面以一个代码段稍作解释:
一 :每个相对应的实体都会有相对应的映射文件,映射文件的作用主要是维护实体间的关系。
实体类User:
package com.bjpowernode.hibernate;import java.util.Date;public class User {private String id;private String name;private String password;private Date createTime;private Date expireTime;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Date getExpireTime() {return expireTime;}public void setExpireTime(Date expireTime) {this.expireTime = expireTime;}}
映射文件:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.bjpowernode.hibernate.User"><id name="id"><generator class="uuid"/></id><property name="name"/><property name="password"/><property name="createTime"/><property name="expireTime"/></class></hibernate-mapping>
将映射文件生成dll文件:
package com.bjpowernode.hibernate;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;/** * 将hbm生成ddl * @author Administrator * */public class ExportDB {public static void main(String[] args) {//默认读取hibernate.cfg.xml文件Configuration cfg = new Configuration().configure();SchemaExport export = new SchemaExport(cfg);export.create(true, true);}}
二 :在configuration.cfg.xml中配置基本信息,并将映射文件信息配置到configuration.cfg.xml中
configuration.cfg.xml配置文件:
<!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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">bjpowernode</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.show_sql">true</property><mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/></session-factory></hibernate-configuration>
三:建立客户端类Client,添加用户数据到数据库
package com.bjpowernode.hibernate;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class Client {public static void main(String[] args) {//读取hibernate.cfg.xml文件Configuration cfg = new Configuration().configure();//建立SessionFactorySessionFactory factory = cfg.buildSessionFactory();//取得sessionSession session = null;try {session = factory.openSession();//开启事务session.beginTransaction();User user = new User();user.setName("张三");user.setPassword("123");user.setCreateTime(new Date());user.setExpireTime(new Date());//保存User对象session.save(user);//提交事务session.getTransaction().commit();}catch(Exception e) {e.printStackTrace();//回滚事务session.getTransaction().rollback();}finally {if (session != null) {if (session.isOpen()) {//关闭sessionsession.close();}}}}}
总结:上面只是一个小例子,但是从小例子中我们依稀可以感受到那种封装给我们带来的便捷了。
0 0
- Hibernate——以面向对象的思维操作关系数据库(一)
- Hibernate 5 (面向对象的数据库操作)
- 以一个门卫的思维方式来看——面向对象
- 黑马程序员——Java面向对象(一)—面向对象的概述、类与对象的关系、封装
- Hibernate逍遥游记——(一)访问关系数据库
- 面向对象的思维
- 面向对象的思维
- 面向对象的关系数据库设计
- 面向对象的关系数据库设计
- 面向对象的关系数据库设计
- 面向对象的关系数据库设计
- 面向对象的关系数据库设计
- JdbcTemplate以对象的方式操作数据库
- Hibernate对象关系映射(一)
- 面向对象(一)—关于面向对象的那些事
- hibernate对象关系映射( 一对一,一对多,多对一,多对多的单向,双向映射 ——)
- JDBC:数据库自定义类型与Java类的映射—将对象存储在关系数据库中(一)
- 面向对象的思维方法
- 自定义控件学习第一课
- UVA 1204 Fun Game(状压dp)
- 解读林锐-高质量C,C++编程指南
- 计算几何--两圆的位置关系(求交点个数及交点坐标)
- iOS CGContextRef画图小结
- Hibernate——以面向对象的思维操作关系数据库(一)
- OC里的继承和重写
- oracle中获取系统时间
- 【头脑风暴】要创建一家会被科技巨头收购的公司,你需要怎么做?
- Makefile
- php和html混编的三种方式
- 客户端通过TCP通信分页从服务器获取数据
- Intent系列之一:用intent打开网页、电话号码或其他内容
- for_each替代迭代器使用