本文共 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