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

                                                                   

                      

                      

           

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹏哥哥啊Aaaa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值