idea springboot(第五天)

今天小结springboot集成Mybaties及相关配置

1. 既然集成Mybaties,自然要导入mybaties的相关包

   

 
 
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.1</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.44</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.31</version>
</dependency>

mysql驱动及阿里巴巴连接池

2.配置application.properties文件

    数据库配置信息,并进行连接测试

springData-JPA介绍

Spring-data-jpa的优点

开发中对数据库的操作大多为增删改查,开发者重复大量且枯燥的代码来实现这部分逻辑 
Spring-data-jpa使数据访问层变成只是一层接口的编写方式

Spring-data-jpa 只需要一个继承了JpaRepository的接口就能实现数据的访问

public interface UserRepository extends JpaRepository<User, Long> {

    User findByName(String name);

    @Query("from User u where u.name=:name")
    User findUser(@Param("name") String name);

}

既然是SpringJPA同样添加依赖包和数据库驱动

SpringBoot集成SpringData-JPA依赖

在pom.xml中添加依赖(以MySql数据库为例):

<!-- SpringData-Jpa依赖-->
<dependency
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<!-- mysql驱动:com.mysql.jdbc.Driver -->
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.29</version>
</dependency>

Spring-data-jpa依赖于Hibernate 
spring.jpa.properties.hibernate.hbm2ddl.auto是hibernate的配置属性 
主要作用是:自动创建、更新、验证数据库表结构

参数配置介绍:

create:
    每次加载hibernate时都会删除上一次的生成的表,
    然后根据model类重新生成表,哪怕没有改变,
    这是导致数据库表数据丢失的一个重要原因。

create-drop:
    每次加载hibernate时根据model类生成表,但sessionFactory关闭时,表自动删除。

update:最常用
    首次加载hibernate时根据model类自动建立起表结构(要先建立数据库)
    以后加载hibernate时根据model类自动更新表结构,即使表结构变了,老数据不删除。
    注意:当部署到服务器后,表结构不会立即建立起来,应用首次运行后才会建立表结构。

validate:
    每次加载hibernate时,验证创建数据库表结构,和数据库表比较,不创建新表,会插入新值。

这里简单介绍一下SessionFactory,对其理解来源于另一篇博客,特此感谢博主的总结:

sessionFactory 理解

 Hibernate的核心接口之一   SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。

sessionFactory 作用

用于管理Hibernate会话(session)的对象,所以,最最最简单的理解,你可以把sessionFactory想想成里面有一个DataSource;这个对象创建了,hibernate才真正和数据库连接上了。即SessionFactory维护着所有连接对象已经连接对象的分配和销毁;SessionFactory是线程安全的,并且创建和销毁需要消耗比较大的资源,所以整个应用里面针对一个数据库只需要一个SessionFactory即可;

SessionFactory管理着配置在其中的映射对象的解析数据,动作监听器,NamedQuery等大量信息;

sessionFactory的相关方法返回session对象,而不是平常的new关键字创建session



     

猜你喜欢

转载自blog.csdn.net/perry1230/article/details/80192040