hibernate基础(二):hibernate组成部分+执行流程

hibernate = 映射文件 + 配置文件 + 持久化类

1.映射文件:*.hbm.xml(将数据库表与java类建立连接)

           数据库表与java类的映射

           数据库类型与java类属性类型的映射

           数据库字段与java类属性名的映射

           一对多、多对多如何转化为面向对象的关系

2.配置文件:hibernate.cfg.xml

           描述数据库的链接信息

3.持久化类:一个java类

4.一个简单的小例子

           (1).Person的javabean,定义属性,设置set,get方法。

                      注:Person类implements Serializable

           (2).Person.hbm.xml

                      <hibernate-mapping>

                                 <class name="domain.Person" table="person">

                                            <id name="pid" column="pid" length="5" type="java.lang.Long">

                                                       <generator class="increment"></generator>

                                            </id>

                                 </class>

                      </hibernate-mapping>

           (3).hibernate.cfg.xml

                      <hibernate-configuration>

                                 <session-factory>

                                            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

                                            <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>

                                            <property name="connection.username">root</property>

                                            <property name="connection.password">root</property>

                                            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

                                            <property name="show_sql">true</property>

                                            <property name="format_sql">true</property>

                                            <property name="hbm2ddl.auto">update</property>

                                            <mapping resource="domain/Person.hbm.xml">

                                 </session-factory>

                      </hibernate-configuration>

                      注:hbm2ddl.auto属性值有4种:

                                 validate:只检查结构

                                 update:检查结构,创建或更新表

                                 create:每次启动hibernate时都创建表

                                 create-drop:启动hibernate时创建表,关闭时删除表

           (4).PersonDao.java

                      public void savePerson(){

                                 Configuration configuration = new Configuration();

                                 configuration.configure();

                                 SessionFactory sessionFactory = configuration.buildSessionFactory();

                                 Session session = sessionFactory.openSession();

                                 Transaction transaction = session.beginTransaction();

                                 Person person = new Person();

                                 person.setPName("aa");

                                 session.save(person);

                                 transaction.commit();

                                 session.close();

                      }

           

5.该例子的执行流程

           (1).Configuration configuration = new Configuration();           ---创建配置文件对象

           (2).configuration.configure();           ---加载配置文件(注:这种写法,配置文件名一定是hibernate.cfg.xml,且在src下)

                configuration.configure(url);        ---url代表hibernate配置文件的路径

           (3).配置文件hibernate.cfg.xml中,包含:

                      数据库连接信息+方言+hbm2ddl.auto+映射文件

           (4).configuration.buildSessionFactory():

                      ^1.产生sessionFactory

                      ^2.将配置文件中信息都放入sessionFactory

                      ^3.sessionFactory是一个重量级的类

                      ^4.sessionFactory是线程安全的

                      ^5.sessionFactory是单例

           (5).Session session = sessionFactory.openSession();

                      ^1.创建一个连接,打开数据库通道

                      ^2.事务都是由session产生的

           (6).打开事务

           (7).增删改查

           (8).关闭事务

           (9).关闭session

                                                                   

                      

                      

           

猜你喜欢

转载自blog.csdn.net/qq_40594696/article/details/87180902