博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate 通过 Hibernate 访问数据库
阅读量:4049 次
发布时间:2019-05-25

本文共 2674 字,大约阅读时间需要 8 分钟。

– Start

下面我们来看一下如何通过 Hibernate 访问数据库。通过与 JDBC 对比我们发现,通过 Hibernate 访问数据库可以使我们以面向对象的方式访问数据库,Hibernate 是如何做到的呢?中心思想就是把表和对象映射起来,我们只需要面向对象进行操作,Hibernate 会转成 SQL 对数据库进行操作,这就是所谓的 ORM (Object/Relational Mapping),那如何把表和对象映射起来呢?有两种方法,一种是通过 xml,如下面的例子演示的那样,另一种方法是通过注解,我们下回分解。

package shangbo.hibernate.demo002;/* * 通过 Hibernate 访问数据库 */public class App {	public static void main(String[] args) throws Exception {		DataService dataService = new DataService();		dataService.saveCustomer(new Customer(2, "test"));	}}
package shangbo.hibernate.demo002;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.boot.Metadata;import org.hibernate.boot.MetadataSources;import org.hibernate.boot.registry.StandardServiceRegistry;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;public class DataService {	public void saveCustomer(Customer customer) {		// 第一步:构造 ServiceRegistry		StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure(ClassLoader.getSystemResource("shangbo/hibernate/demo002/hibernate.cfg.xml")).build();		// 第二步:构造 Metadata		Metadata metadata = new MetadataSources(registry).buildMetadata();				// 第三步:构造 SessionFactory		SessionFactory sessionFactory = metadata.buildSessionFactory();;				// 操作数据库		Session session = sessionFactory.openSession();		session.beginTransaction();		session.save(customer);		session.getTransaction().commit();		session.close();				// 关闭 SessionFactory		sessionFactory.close();	}}
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@localhost:1521:xe
hr
456789
1
org.hibernate.dialect.Oracle12cDialect
org.hibernate.cache.internal.NoCacheProvider
true
create
package shangbo.hibernate.demo002;public class Customer {	private Integer customerId;	private String customerName;	public Customer() {	}	public Customer(Integer customerId, String customerName) {		this.customerId = customerId;		this.customerName = customerName;	}	public Integer getCustomerId() {		return customerId;	}	public void setCustomerId(Integer customerId) {		this.customerId = customerId;	}	public String getCustomerName() {		return customerName;	}	public void setCustomerName(String customerName) {		this.customerName = customerName;	}}

– 更多参见:

– 声 明:转载请注明出处
– Last Updated on 2019-06-08
– Written by ShangBo on 2019-06-08
– End

你可能感兴趣的文章
nacos 本地覆盖远程 本地优先
查看>>
java 查询内存泄漏
查看>>
httpclient4.5 绕过ssl证书校验 -看别人文章解决不了的,看下我这个
查看>>
基于webpack的vue语法糖实现思路
查看>>
jenkins流水线脚本 从sonar代码扫描,到maven构建,到docker打包,到k8s发布
查看>>
微服务项目占用内存过多机器扛不住怎么办?服务allinone设计
查看>>
项目快速开发经验
查看>>
LambdaQueryWrapper动态加过滤条件 动态Lambda(首发)
查看>>
javascript 大数值进行按位运算
查看>>
jacob 设置 插入word 的图片大小
查看>>
html2image html转换为图片 生成快照 java
查看>>
GPRS+wifi 云巡更系统开放sdk api 可以和OA CRM 对接巡更系统
查看>>
浏览器页面之间推送消息 A窗口给B窗口推送消息 用于cef多个browser之间通信
查看>>
冒泡排序的2种写法
查看>>
java 使用html写UI 做winform win桌面客户端程序(一)
查看>>
jxbrowser 教程 1 使用jxbrowser 创建简单的浏览器 使用html5+java写cs客户端
查看>>
jxbrowser 监听所有网络请求 jxbrowser 系列教程2
查看>>
jxbrowser 实现java 和 js互相调用(破解版请联系作者)
查看>>
jxbrowser java代码直接调用js代码 (破解版请联系作者)免license
查看>>
jxbrowser 实现自定义右键菜单 jxbrowser破解版请联系作者
查看>>