hibernate jar包_110Spring整合Hibernate,Hibernate-JAP

9fcaf4b303db593f59ad8f6aee831a37.png

训练大纲(第107天)

大家如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。确保老师课堂上做的操作,反复练习直到熟练。

第213次(Hibernate)

学习主题:Hibernate

学习目标:

1 掌握Spring整合Hibernate

2 掌握Hibernate的CURD

3 掌握HQL语句

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

1. Spring Data课程中的技术介绍

(1) 什么是Hibernate?

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将pojo与数据库表建立映射关系,是一个全自动的ORM框架,Hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库

(2) 什么是JPA?

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

(3) 什么是Hibernate JPA?

Hibernate在3.2以后根据JPA规范提供了一套操作持久层的JPA

(4) 什么是Spring Data?

SpringData是一个用于简化数据库访问,支持云服务的开源框架

Spring Data: Spring 的一个子项目。用于简化数据库访问,支持NoSQL和关系数据库存储。其主要目标是使数据库的访问变得方便快捷。

(5) 什么是Spring Data JPA?

Spring Data JPA 是 spring data 项目下的一个模块。提供了一套基于 JPA

标准操作数据库的简化方案。底层默认的是依赖 Hibernate JPA 来实现的。

(6) 什么是Spring Data Redis

Spring-data-redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。

2. Spring整合Hibernate

(1) 如何在Spring的配置文件中配置DataSource?

<!--配置读取properties文件的工具类-->
<context:property-placeholder location="classpath:jdbc.properties"/>

<!--配置c3p0数据库连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
 <property name="jdbcUrl" value="${jdbc.url}"></property>
 <property name="driverClass" value="${jdbc.driver.class}"></property>
 <property name="user" value="${jdbc.username}"></property>
 <property name="password" value="${jdbc.password}"></property>
</bean>

(2) 如何在Spring的配置文件中配置SessionFactory?

<!--配置Hibernate的sessionFactory-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
 <property name="dataSource" ref="dataSource"></property>
 <!--hibernatePropeties属性:配置与hibernate相关的内容,如显示sql语句,开启正向工程-->
 <property name="hibernateProperties">
 <props>
 <prop key="hibernate.show_sql">true</prop>
 <prop key="hibernate.hbm2ddl.auto">update</prop>
 </props>
 </property>

 <!--扫描实体所在的包-->
 <property name="packagesToScan">
 <list>
 <value>com.bjsxt.pojo</value>
 </list>
 </property>
</bean>

(3) 如何在Spring的配置文件中配置Hibernate的事物管理器?

<!--配置Hibernate的事务管理-->
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
 <property name="sessionFactory" ref="sessionFactory"></property>
</bean>

3. Hibernate添加、修改、删除操作

(1) @Entity注解的作用是什么?

对实体注解,声明这是实体类

(2) @Table注解的作用是什么?

声明映射到数据库的数据表

(3) @Id注解的作用是什么?

声明此属性为主键

(4) @GeneratedValue注解的作用是什么?

指定主键的生成策略

(5) @Column注解的作用是什么?

声明属性和数据库的映射关系

4. Hibernate-HQL查询

(1) 什么是HQL语言?

hql 是hibernate查询语言

(2) HQL语言的语法是什么?

就是将原来的 sql 语句中的表与字段名称换成对象与属性的名称就可以了

(3) getCurrentSession与openSession的区别?

getCurrentSession:当前 session 必须要有事务边界,且只能处理唯一 的一个事务。当事务提交或者回滚后 session 自动失效openSession:每次都会打开一个新的 session.加入每次使用多次。则获 得的是不同 session 对象。使用完毕后我们需要手动的调用 colse 方法关闭 session

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

第214次(Hibernate)

学习主题:Hibernate

学习目标:

1 掌握在Hibernate中编写原生SQL语句

2 掌握在Hibernate中编写QBC

3 掌握Hibernate-JAP

对应视频:

http://www.itbaizhan.cn/course/id/85.html

对应文档:

对应作业

5. Hibernate-SQL查询

(1) 使用SQL查询方式,根据用户姓名查询用户。

@Override
public List<Users> selectUserBySQLUsername(String username) {
    Session session = this.hibernateTemplate.getSessionFactory().getCurrentSession();
    SQLQuery sqlQuery = session.createSQLQuery("select * from t_users where username=?").addEntity(Users.class);
    Query query = sqlQuery.setString(0, username);
 return query.list();
}

6. Hibernate-QBC查询

(1) 什么是QBC查询?

@Override
public List<Users> selectUsesByUsername(String username) {
 //getCurrentSession:当前 session 必须要有事务边界,且只能处理唯一 的一个事务。当事务提交或者回滚后 session 自动失效
 // openSession:每次都会打开一个新的 session.加入每次使用多次。则获 得的是不同 session 对象。使用完毕后我们需要手动的调用 colse 方法关闭 session
 Session session = this.hibernateTemplate.getSessionFactory().getCurrentSession();
    Query query = session.createQuery("from Users where username= :abc");//类对应表,属性对应字段
 Query queryTemp = query.setString("abc", username);
 return queryTemp.list();
}

7. hibernate-jpa环境搭建

(1) 什么是JPA?

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

(2) 什么是Hibernate JPA?

Hibernate在3.2以后根据JPA规范提供了一套操作持久层的JPA

(3) Spring在整合Hibernate JPA时需要添加什么jar包?

f3053a85ac7bf223ae952378641872c2.png

(4) 如何配置EntityManagerFactory?

<!-- Spring整合JPA  配置EntityManagerFactory-->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
 <property name="dataSource" ref="dataSource"/>
 <property name="jpaVendorAdapter">
 <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
 <!-- hibernate相关的属性的注入 -->
         <!-- 配置数据库类型 -->
 <property name="database" value="MYSQL"/>
 <!-- 正向工程 自动创建表 -->
 <property name="generateDdl" value="true"/>
 <!-- 显示执行的SQL -->
 <property name="showSql" value="true"/>
 </bean>
 </property>
 <!-- 扫描实体的包 -->
 <property name="packagesToScan">
 <list>
 <value>com.bjsxt.pojo</value>
 </list>
 </property>
</bean>

8. hibernate-jpa中的CRUD操作

(1) @PersistenceContext注解的作用是什么?

注入的是实体管理器,执行持久化操作的

9. hiberante-jpa中的HQL语句

(1) 在Hibernate JAP中通过使用HQL方式,根据用户名查询用户信息。

return entityManager.createQuery(" from Users where username = :abc").setParameter("abc", username).getResultList();

10. hibernate-jpa中的SQL语句

(1) 在Hibernate JAP中通过使用SQL方式,根据用户名查询用户信息。

 return this.entityManager.createNativeQuery("select  * from t_users where username=?",Users.class).setParameter(1,username).getResultList();

11. hibernate-jpa中的Criteria操作

(1) 在Hibernate JAP中通过使用Criteria方式,根据用户名查询用户信息。
//CriteriaBuilder对象:创建一个CriteriaQuery,创建查询条件
CriteriaBuilder builder = this.entityManager.getCriteriaBuilder();
//CriteriaQuery对象:执行查询的对象  select * from t_users
CriteriaQuery<Users> query = builder.createQuery(Users.class);
//获取要查询的实体类的对象
Root<Users> root = query.from(Users.class);
//封装查询条件
Predicate username1 = builder.equal(root.get("username"), username);
query.where(username1);

//执行查询
TypedQuery<Users> query1 = this.entityManager.createQuery(query);
return query1.getResultList();

12. Spring整合SpringDataJpa

(1) 什么是Spring Data JPA?

Spring Data JPA 是 spring data 项目下的一个模块。提供了一套基于 JPA

标准操作数据库的简化方案。底层默认的是依赖 Hibernate JPA 来实现的。

(2) Spring Data JPA技术有哪些特点?

我们只需要定义接口并集成 Spring Data JPA 中所提供的接

口就可以了。不需要编写接口实现类。

分享/讲解/扩展思考

点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值