Spring Data JPA环境搭建

  1. 创建maven工程导入坐标
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.hibernate.version>5.0.7.Final</project.hibernate.version>
    </properties>

    <dependencies>
        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- hibernate对jpa的支持包 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${project.hibernate.version}</version>
        </dependency>

        <!-- c3p0 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>${project.hibernate.version}</version>
        </dependency>

        <!-- log日志 -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

        <!-- Mysql and MariaDB -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
    </dependencies>
  1. 需要配置jpa的核心配置文件
    位置:配置到类路径下的一个叫做 META-INF 的文件夹下
    命名:persistence.xml
    在这里插入图片描述
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
    <!--需要配置persistence-unit节点
        持久化单元:
            name:持久化单元名称
            transaction-type:事务管理的方式
                    JTA:分布式事务管理
                    RESOURCE_LOCAL:本地事务管理
    -->
    <persistence-unit name="myJPA" transaction-type="RESOURCE_LOCAL">
        <!--jpa的实现方式-->
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <!--可选配置:配置jpa实现方式的配置信息-->
        <properties>
            <!--基本属性信息-->
            <!--数据库信息
                用户名,    javax.persistence.jdbc.user
                密码,      javax.persistence.jdbc.password
                驱动,      javax.persistence.jdbc.driver
                数据库地址, javax.persistence.jdbc.url
            -->
            <property name="javax.persistence.jdbc.user" value="root"/>
            <property name="javax.persistence.jdbc.password" value="root"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql:///jpa&amp;useSSL=false&amp;characterEncoding=utf-8"/>

            <!--配置jpa实现方式(Hibernate)的配置信息
                显示sql           :false|true
                自动创建数据库表   :hibernate.hbm2ddl.auto
                        create:程序运行时创建数据库表(如果有表先删除再创建)
                        update:程序运行时创建数据库表(如果有表不会创建表)
                        none:不会创建表

            -->
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.hbm2ddl.auto" value="create"/>
        </properties>

    </persistence-unit>
</persistence>
  1. 编写客户的实体类并配置实体类和表,类中属性和表中字段的映射关系
 * 客户实体类
 *      配置映射关系
 *              1、实体类和表的映射关系
 *                  @Entity:声明实体类
 *                  @Table(name = "数据库表名称):配置实体类和表的映射关系
 *              2、实体类中属性和表中字段的映射关系
 *                  @Id:声明主键的配置
 *                  @GeneratedValue(strategy = ):配置主键的生成策略
 *                          GenerationType.IDENTITY:自增
 *                  @Column(name = "数据库字段名称"):配置属性和字段的映射关系
 */
@Entity
@Table(name = "cst_customer")
public class Customer {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "cust_id")
    private Long custId;//客户主键

    @Column(name = "cust_name")
    private String custName;//客户名称

    @Column(name = "cust_source")
    private String custSource;//客户来源

    @Column(name = "cust_level")
    private String custLevel;//客户级别

    @Column(name = "cust_industry")
    private String custIndustry;//客户所属行业

    @Column(name = "cust_phone")
    private String custPhone;//客户的联系方式

    @Column(name = "cust_address")
    private String custAddress;//客户地址
	
	//Getter 和 Setter方法
}
  1. 单元测试保存客户到数据库中
public class JpaTest {

    /**
     * 测试jpa的保存
     *      案例:保存一个客户到数据库中
     *
     * jpa的操作步骤
     *      1、加载配置文件创建工厂(实体管理器工厂)对象
     *      2、通过实体管理器工厂获取实体管理器
     *      3、获取事务对象开启事务
     *      4、完成增删改操作
     *      5、提交事务(回滚事务)
     *      6、释放资源
     */

    @Test
    public void testSave(){
        //1、加载配置文件创建工厂(实体管理器工厂)对象
        EntityManagerFactory factory = Persistence.createEntityManagerFactory("myJpa");
        //2、通过实体管理器工厂获取实体管理器
        EntityManager em = factory.createEntityManager();
        //3、获取事务对象开启事务
        EntityTransaction tx = em.getTransaction();
        tx.begin();
        //4、完成增删改操作
        Customer customer = new Customer();
        customer.setCustName("传智播客");
        customer.setCustIndustry("教育");
        em.persist(customer);//保存操作
        //5、提交事务(回滚事务)
        tx.commit();
        //6、释放资源
        em.close();
        factory.close();
    }

}

注: 此文章只为记录开发过程中的错误,学习,如发现侵权请私信删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Spring Boot 2.0、Spring Data JPA、Thymeleaf和Shiro开发的后台管理系统可以实现一个功能强大且易于维护的应用程序。 这套技术栈的优势包括: 1. Spring Boot 2.0:它是一个快速构建应用程序的框架,提供自动化配置和减少样板代码的优势,使开发变得更加高效。 2. Spring Data JPA:它是一个基于JPA的持久化框架,通过简化数据库操作和提供对各种数据库的支持,大大减少了开发人员的工作量。 3. Thymeleaf:它是一个服务器端的Java模板引擎,可以直接处理HTML、XML、JavaScript、CSS和文本等内容。它具有易于学习和使用的特点,并且能够与Spring Boot实现良好的集成。 4. Shiro:它是一个功能强大且灵活的Java安全框架,可以提供认证、授权、加密和会话管理等功能。通过集成Shiro,我们可以轻松实现后台管理系统的用户认证和访问控制等安全需求。 基于这套技术栈,我们可以开发一个后台管理系统,实现用户登录、权限管理、菜单管理、角色管理、用户管理等功能。利用Spring Boot的自动化配置和快速启动特性,我们可以快速搭建项目的骨架,并集成Spring Data JPA实现数据访问,利用Thymeleaf开发可复用的页面组件,通过Shiro实现用户认证和授权。 总之,基于Spring Boot 2.0、Spring Data JPA、Thymeleaf和Shiro的后台管理系统,不仅可以极大地提高开发效率,还能够提供丰富的功能和安全性,帮助我们快速构建高质量的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值