第二百二十八节 JPA教程 - JPA日期列定义示例

news/2024/9/18 19:55:16 标签: oracle, 数据库, mybatis, java, jpa, 开发语言, jdk

JPA教程 - JPA日历映射到日期示例

以下部分显示如何将java.util.Calendar映射到数据库日期类型。

@Temporal(TemporalType.DATE)
private java.util.Calendar dob;

例子

下面的代码来自Person.java

package cn.w3cschool.common;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
public class Person {
    @Id
    private long id;
     
    private String name;
    
  @Temporal(TemporalType.DATE)
  private java.util.Calendar dob;
    
  public Person() {}

  public Person(String name) {
     this.name = name;
  }


  public java.util.Calendar getDob() {
    return dob;
  }

  public void setDob(java.util.Calendar dob) {
    this.dob = dob;
  }

  public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

  public String toString() {
    return "\n\nID:" + id + "\nName:" + name + "\n\n"+"Dob"+dob;
  }
}

下面的代码来自PersonDaoImpl.java

package cn.w3cschool.common;


import java.util.Calendar;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.springframework.transaction.annotation.Transactional;

@Transactional
public class PersonDaoImpl {
  public void test(){
    Person p1 = new Person("Tom");
    p1.setId(1L);
    p1.setDob(Calendar.getInstance());
    
    Person p2 = new Person("Jack");
    p2.setId(2L);
    
    save(p1);
    save(p2);

    listAll();
    
  }
  private void listAll(){
    List<Person> persons = getAll();
    for (Person person : persons) {
      System.out.println(person);
    }

  }
    @PersistenceContext
    private EntityManager em;
    
    
    public Long save(Person person) {
        em.persist(person);
        return person.getId();
    }
    
    public List<Person>getAll() {
        return em.createQuery("SELECT p FROM Person p", Person.class).getResultList();
    }
    
}

以下代码来自App.java

package cn.w3cschool.common;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {

  public static void main(String[] args) {
    ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
        "applicationContext.xml");
    PersonDaoImpl dao = (PersonDaoImpl) context.getBean("personDao");

    dao.test();

    context.close();
    
    Helper.checkData();
  }
}

以下是数据库表转储。

Table Name: PERSON
 Row:
    Column Name: ID,
    Column Type: BIGINT:
    Column Value: 1

    Column Name: DOB,
    Column Type: DATE:
    Column Value: 2014-12-29

    Column Name: NAME,
    Column Type: VARCHAR:
    Column Value: Tom

 Row:
    Column Name: ID,
    Column Type: BIGINT:
    Column Value: 2

    Column Name: DOB,
    Column Type: DATE:
    Column Value: null

    Column Name: NAME,
    Column Type: VARCHAR:
    Column Value: Jack


 


http://www.niftyadmin.cn/n/5658416.html

相关文章

【项目】高并发内存池

目录 项目介绍 内存池介绍 高并发内存池整体框架设计 threadcache threadcache整体设计 ThreadCache哈希桶映射与对齐规则 threadcacheTLS无锁访问 centralcache centralcache整体设计 centralcache结构设计 centralcache核心实现 pagecache pagecache整体设计 p…

UnLua调用C++函数

一、UnLua调用C全局静态函数 1、新建C类MyLuaUtils&#xff0c;继承BlueprintFunctionLibrary,实现全局静态函数GetInt。 MyLuaUtils.h UCLASS() class LUASHOOTING_API UMyLuaUtils : public UBlueprintFunctionLibrary {GENERATED_BODY()UFUNCTION(BlueprintCallable)static…

Python 数学建模——ARMA 时间序列分析

文章目录 前言使用前提平稳性检验白噪声检验 用法代码实例第一步——平稳性分析方法一方法二方法三 第二步——白噪声分析第三步——确定参数第四步——模型构建与检验检验模型效果预测未来数据 前言 常见的时间序列分析方法有很多&#xff0c;之前介绍了一个稍微新颖的 Prophe…

汽车租赁系统1.0版本

汽车租赁系统1.0版本比较简陋&#xff0c;以后还会有2.0、3.0……就像《我爱发明》里面的一代机器二代机器&#xff0c;三代机器一样&#xff0c;是一个迭代更新的过程&#xff08;最近比较忙&#xff0c;可能会很久&#xff09;&#xff0c;这个1.0版本很简陋&#xff0c;也请…

浅谈WebApi

一、基本介绍 Web API&#xff08;Web应用程序编程接口&#xff09;是一种用于构建应用程序的接口&#xff0c;它允许软件应用程序通过HTTP请求与Web服务器进行交互。Web API通常用于构建客户端-服务器应用程序&#xff0c;其中客户端可以是Web浏览器、移动应用程序、桌面应用程…

C++:STL之vector

1.vector的使用 1.1vector的定义 使用vector需要包含头文件 #include<vector> vector的构造 &#xff08;constructor&#xff09;构造函数声明接口说明vector() (重点)无参构造vector(size_type n,const value_type& val value_type())用n个val初始化并构造vecto…

现金检测系统源码分享

现金检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Parallels Desktop 20 版本功能汇总,附最新PD虚拟机下载链接

Parallels Desktop 20 for Mac 已正式发布&#xff01;作为目前 Mac 上极为好用强大的「虚拟机」软件&#xff0c;它完美支持最新的 macOS Sequoia 15 系统和 Windows 11 24H2&#xff0c;这次还引入了许多诸如 AI 等令人期待的全新功能和改进。为普通用户、开发者、设计师都带…