- Hibernate 是什么?
1、首先要理解 Hibernate 是什么,一句话总结:
Hibernate 是持久层 ORM 映射框架;
2、什么是ROM 模型;
实体 bean 和 table 之间关系映射;
在很早以前,sun 公司针对 各层设计分为 4层,如下;后面webApplet 被 更轻量的 js、html 取代,省去了在客户端运行需要 jre 环境的操作,大大加大了开发效率,成为现在的经典三层web,service,dao架构模式;针对每一层的解决方案如下:
项目结构如下, xxx.hbm.xml 和 hibernate.cfg.xml命名要规范,底层地洞调用该配置文件:
点开hibernate的configuration底层查看:
Hibernate的配置,分为 mapper 和Hibernate核心文件的配置:
(1)mapper配置:
<hibernate-mapping><class name&#61;"com.baidu.bean.Customer" table&#61;"cst_customer"><id name&#61;"cust_id" column&#61;"cust_id"><generator class&#61;"native">generator>id><property name&#61;"cust_name" column&#61;"cust_name">property><property name&#61;"cust_source" column&#61;"cust_source">property><property name&#61;"cust_industry" column&#61;"cust_industry">property><property name&#61;"cust_level" column&#61;"cust_level">property><property name&#61;"cust_phone" column&#61;"cust_phone">property><property name&#61;"cust_mobile" column&#61;"cust_mobile">property>class>
hibernate-mapping>
&#xff08;2&#xff09;核心配置文件配置&#xff1a;
<hibernate-configuration><session-factory><property name&#61;"hibernate.connection.driver_class">com.mysql.cj.jdbc.Driverproperty><property name&#61;"hibernate.connection.url">jdbc:mysql:///test?serverTimezone&#61;UTC&characterEncoding&#61;UTF-8&useSSL&#61;falseproperty><property name&#61;"hibernate.connection.username">rootproperty><property name&#61;"hibernate.connection.password">rootproperty><property name&#61;"hibernate.dialect">org.hibernate.dialect.MySQLDialectproperty><property name&#61;"hibernate.show_sql" >trueproperty><property name&#61;"hibernate.format_sql">trueproperty><mapping resource&#61;"com/baidu/bean/Customer.hbm.xml">mapping>session-factory>
hibernate-configuration>
pom.xml的配置&#xff1a;
<project xmlns&#61;"http://maven.apache.org/POM/4.0.0"xmlns:xsi&#61;"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&#61;"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0modelVersion><groupId>hibernate1030day01groupId><artifactId>hibernate1030day01artifactId><version>1.0-SNAPSHOTversion><dependencies><dependency><groupId>junitgroupId><artifactId>junitartifactId><version>4.12version><scope>testscope>dependency><dependency><groupId>antlrgroupId><artifactId>antlrartifactId><version>2.7.7version>dependency><dependency><groupId>dom4jgroupId><artifactId>dom4jartifactId><version>1.6.1version>dependency><dependency><groupId>org.apache.geronimo.specsgroupId><artifactId>geronimo-jta_1.1_specartifactId><version>1.1.1version>dependency><dependency><groupId>org.hibernate.commongroupId><artifactId>hibernate-commons-annotationsartifactId><version>5.0.1.Finalversion>dependency><dependency><groupId>org.hibernategroupId><artifactId>hibernate-coreartifactId><version>5.0.7.Finalversion>dependency><dependency><groupId>org.hibernate.javax.persistencegroupId><artifactId>hibernate-jpa-2.1-apiartifactId><version>1.0.0.Finalversion>dependency><dependency><groupId>org.jbossgroupId><artifactId>jandexartifactId><version>2.0.0.Finalversion>dependency><dependency><groupId>org.javassistgroupId><artifactId>javassistartifactId><version>3.18.1-GAversion>dependency><dependency><groupId>org.jboss.logginggroupId><artifactId>jboss-loggingartifactId><version>3.3.0.Finalversion>dependency><dependency><groupId>mysqlgroupId><artifactId>mysql-connector-javaartifactId><version>8.0.11version><scope>runtimescope>dependency><dependency><groupId>log4jgroupId><artifactId>log4jartifactId><version>1.2.17version>dependency><dependency><groupId>org.slf4jgroupId><artifactId>slf4j-apiartifactId><version>1.7.25version>dependency><dependency><groupId>org.slf4jgroupId><artifactId>slf4j-log4j12artifactId><version>1.7.25version><scope>testscope>dependency>dependencies><build><resources><resource><directory>src/main/javadirectory><includes><include>**/*.xmlinclude>includes><filtering>truefiltering>resource><resource><directory>src/main/resourcesdirectory><includes><include>**/*.xmlinclude><include>**/*.propertiesinclude>includes>resource>resources>build>
project>
测试类&#xff1a;
public class HibernateTest {&#64;Testpublic void test01(){Configuration configuration&#61;new Configuration().configure();SessionFactory sessionFactory &#61; configuration.buildSessionFactory();Session session &#61; sessionFactory.openSession();Transaction transaction &#61; session.beginTransaction();Customer customer &#61; new Customer();customer.setCust_name("打豆豆");session.save(customer);transaction.commit();session.clear();}
}
和数据库 table 对应的实体类&#xff0c;提供setter 、getter、toString&#xff1a;
public class Customer {private Long cust_id;private String cust_name;private String cust_source;private String cust_industry;private String cust_level;private String cust_phone;private String cust_mobile;}