Hibernate的Annotation版Hello world实例

下面我将为你详细讲解“Hibernate的Annotation版Hello world实例”的完整攻略:

1. 构建项目

首先,我们需要构建一个Maven项目,在项目的pom.xml文件中添加相关依赖:

<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.4.28.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.4.28.Final</version>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.200</version>
    </dependency>
</dependencies>

2. 创建Java实体类

创建一个Java实体类Student,并添加注解@Entity标识它是一个实体类,@Table指定表名,@Id标识主键,@GeneratedValue指定主键生成策略,@Column指定属性类型和列名。

@Entity
@Table(name = "student")
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;

    @Column(name = "name")
    private String name;

    @Column(name = "age")
    private int age;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

3. 配置数据源和Hibernate的注解配置文件

src/main/resources目录下创建一个名为application.properties的文件,配置数据源和Hibernate的注解配置信息:

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create

hibernate.format_sql=true
hibernate.hbm2ddl.auto=create

4. 创建DAO层代码

需要创建一个接口StudentDao,定义CRUD操作的接口方法。

public interface StudentDao {
    void save(Student student);

    List<Student> getAll();
}

并创建一个实现类StudentDaoImpl,使用@Repository注解标识它是一个DAO层的实现类,使用@PersistenceContext注解注入EntityManager对象。

@Repository
public class StudentDaoImpl implements StudentDao {
    @PersistenceContext
    private EntityManager entityManager;

    @Override
    public void save(Student student) {
        entityManager.persist(student);
    }

    @Override
    public List<Student> getAll() {
        TypedQuery<Student> query = entityManager.createQuery("select s from Student s", Student.class);
        return query.getResultList();
    }
}

5. 编写测试用例

创建一个测试类StudentDaoImplTest,测试学生的新增和查询。

@RunWith(SpringRunner.class)
@SpringBootTest
public class StudentDaoImplTest {
    @Autowired
    private StudentDao studentDao;

    @Test
    public void testSave() {
        Student student = new Student();
        student.setName("张三");
        student.setAge(18);
        studentDao.save(student);
        Assert.assertTrue(student.getId() > 0);
    }

    @Test
    public void testGetAll() {
        List<Student> studentList = studentDao.getAll();
        Assert.assertFalse(studentList.isEmpty());
    }
}

6. 运行测试用例

最后运行测试用例,测试结果应该如下:

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.example.demo.dao.StudentDaoImplTest
Hibernate: 

    create table student (
       id integer generated by default as identity (start with 1),
        age integer not null,
        name varchar(255),
        primary key (id)
    )
Hibernate: 
    insert 
    into
        student
        (age, name, id) 
    values
        (?, ?, ?)
Hibernate: 
    select
        student0_.id as id1_0_,
        student0_.age as age2_0_,
        student0_.name as name3_0_ 
    from
        student student0_
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.194 s - in com.example.demo.dao.StudentDaoImplTest
[INFO]

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Hibernate的Annotation版Hello world实例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JSP中表达式的使用详解

    《JSP中表达式的使用详解》攻略 一、JSP表达式的介绍 JSP表达式一般用于将变量、常量、函数等的值输出到页面上。 语法格式: <%= 表达式 %> 其中,等号和百分号之间不要有空格。 二、表达式中可使用的内容 变量和常量 在表达式中可以使用变量或常量的值,如: <%= name %> <%= 1234 %> 表达式运算…

    Java 2023年6月15日
    00
  • Spring MVC 框架搭建配置方法及详解

    Spring MVC 框架搭建配置方法及详解 Spring MVC是一种基于Java的Web框架,它提供了许多便捷的功能和工具,使得开发者可以更加高效地开发Web应用程序。本文将详细讲解如何在Spring MVC中搭建配置框架,并提供两个示例来说明如何实现这一过程。 步骤一:创建Spring MVC项目 在开始使用Spring MVC搭建配置框架之前,我们需…

    Java 2023年5月17日
    00
  • Java Properties简介_动力节点Java学院整理

    Java Properties简介 在Java中,属性(Properties)指的是保存在文件中的键值对数据,它以“键=值”的形式存储。Java提供了一个Properties类,可以方便地读取和写入属性文件。本文将介绍Properties类的基本用法。 Properties类的创建 Properties类的创建有两种方法: 方法一:使用默认构造函数创建一个空…

    Java 2023年6月15日
    00
  • Java中精确的浮点运算操作示例

    Java中的浮点数是基于IEEE 754标准实现的,这种浮点数具有很高的精度,但也会存在精度问题。本篇文章将介绍如何在Java中实现精确的浮点运算操作。 一、使用BigDecimal类 Java中提供了BigDecimal类,这个类可以精确表示浮点数值。使用BigDecimal的时候,需要使用BigDecimal的构造函数或者静态工厂方法来创建BigDeci…

    Java 2023年5月26日
    00
  • Spring MVC中Ajax实现二级联动的简单实例

    Spring MVC中Ajax实现二级联动的简单实例 在 Spring MVC 中,我们可以使用 Ajax 实现二级联动。本文将详细讲解 Spring MVC 中 Ajax 实现二级联动的完整攻略,并提供两个示例说明。 1. 创建 Spring MVC 控制器 我们需要创建一个 Spring MVC 控制器,用于处理 Ajax 请求。下面是一个简单的示例: …

    Java 2023年5月18日
    00
  • Java如何实现将类文件打包为jar包

    下面我将详细讲解Java如何实现将类文件打包为jar包的攻略。 1. 创建Java项目 首先,我们需要创建一个Java项目,可以使用任何一种Java IDE,例如Eclipse、IntelliJ IDEA等等。创建好项目之后,我们需要编写Java类,并将这些类编译成.class文件。 2. 编写MANIFEST.MF文件 在将类文件打包为jar包之前,我们需…

    Java 2023年5月19日
    00
  • Java数据类型转换详解

    Java数据类型转换详解 在Java编程中,我们需要对不同的数据类型进行转换,使其能够满足我们的需求。本文将详细讲解Java数据类型转换的相关知识。 基本数据类型 Java中的数据类型可以分为两类,基本数据类型和引用数据类型。基本数据类型包括整型、浮点型、字符型、布尔型,下面分别介绍。 整型 整型包括byte、short、int和long这四种类型。其中,b…

    Java 2023年5月26日
    00
  • Java如何获取指定目录文件列表

    获取指定目录文件列表是 Java 编程中常见的操作之一,可以通过 Java 的 File 类来实现。下面是获取指定目录文件列表的完整攻略: 第一步:创建 File 对象 首先需要创建一个 File 对象来表示要获取的目录。File 对象可以接受一个目录路径作为参数,例如: File directory = new File("path/to/dir…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部