hibernate框架介绍:
ORM概念(非常重要)
O,Object 对象. R,Relation 关系. M,Mapping 映射
ORM:对象关系映射!
ORM,攻克了什么问题?
存储:是否能把对象的数据直接保存到数据库中
获取:是否能直接从数据库拿到一个对象
要想做到上述两点,必需要有映射
总结:Hibernate与 ORM的关系:Hibernate是ORM的实现
怎样搭建一个Hibernate开发环境,开发步骤:
(1)下载源代码:版本号hibernate-distribution-3.6.0.Final
(2)引入jar文件 :Hibernate3.jar核心+required必须引入的(6个)+jsp文件夹+mysql驱动
(3)写对象以及对象的映射
Employee.java 对象
Employee.hbm.xml 对象的映射(一般我们使用hbm.xml结尾,这是为了区分Hibernate映射文件)
(4)src/hibernate.cfg.xml(这个文件的命名必须这样写)
1.Employee.java
package cn.itcast.hello; import java.util.Date; public class Employee { private int id; private String empName; private Date workDate; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getEmpName() { return empName; } public void setEmpName(String empName) { this.empName = empName; } public Date getWorkDate() { return workDate; } public void setWorkDate(Date workDate) { this.workDate = workDate; } }2.Employee.hbm.xml文件
主要包含主键映射和非主键映射
<?3.hibernate.cfg.xml文件xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.itcast.hello"> <class name="Employee" table="employee"> <!-- 主键 映射--> <id name="id"> <generator class="native"></generator> </id> <!-- 非主键 映射 --> <property name="empName" column="empName"></property> <property name="workDate" column="workDate"></property> </class> </hibernate-mapping>
(1)数据库连接的配置.假设不懂能够去Hibernate源代码/project/etc/hibernate.properties找到复制粘贴就可以
(2)其它配置包含方言以及是不是自己主动建表的配置信息
(3)映射文件的引入.<mapping resource="配置文件的文件夹"/>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 1.数据库的配置信息 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///day25</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">169500</property> <!-- 2.其它配置信息。hibernate在执行的时候。会依据不同的方言生成符合当前数据库语法的sql语句 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 显示sql语句信息 --> <property name="hibernate.show_sql">true</property> <property name="hibernate.hbm2ddl.auto">create</property> <!-- 3.导入映射文件 --> <mapping resource="cn/itcast/hello/Employee.hbm.xml"/> </session-factory> </hibernate-configuration>4.測试类AppTest
编写步骤:
(1).获取载入配置文件的管理类对象.(2).载入配置文件.(3).创建session工厂对象.(4).创建session(代表的是一个对话。与数据库连接的会话).(5).开启事务.(6).与数据库的操作.(7).提交事务.(8).关闭资源.
package cn.itcast.hello; import java.util.Date; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.classic.Session; import org.junit.Test; public class AppTest { @Test public void test(){ Employee emp=new Employee(); emp.setEmpName("李卫康"); emp.setWorkDate(new Date()); //1.获取载入配置文件的管理类对象 Configuration config=new Configuration(); //2.载入配置文件 config.configure();//默认载入的是src文件夹下的hiberate.xml文件 //3.创建session工厂对象 SessionFactory factory = config.buildSessionFactory(); //4.创建session(代表的是一个对话。与数据库连接的会话) Session session = factory.openSession(); //5.开启事务 Transaction tx = session.beginTransaction(); //6.与数据库的操作 session.save(emp); //7.提交事务 tx.commit(); //8.关闭资源 session.close(); } }执行结果能够发现数据库中多了一个employee的表,并有一条记录