package cn.itcast.bean;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
@Entity
@Table(name="t_person")
public class Person {
private Integer id;
private String name;
private Date birthday;
private Gender gender = Gender.MALE;
private String info; //大文本
public Byte[] file;
private String imagepath;
@TableGenerator(
name="Address_Gen",
table="id_gen",
pkColumnName="gen_name",
valueColumnName="gen_val",
pkColumnValue="Addr_Gen",
initialValue=1,
allocationSize=1
)
@Id
@GeneratedValue(strategy=GenerationType.TABLE,generator="Address_Gen")
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=10,nullable=false,name="personName")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Temporal(TemporalType.DATE)
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Enumerated(EnumType.STRING)
@Column(length=6,nullable=false)
public Gender getGender() {
return gender;
}
public void setGender(Gender gender) {
this.gender = gender;
}
@Lob
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Lob
@Basic(fetch=FetchType.LAZY)
public Byte[] getFile() {
return file;
}
public void setFile(Byte[] file) {
this.file = file;
}
@Transient //在数据库中不映射
public String getImagepath() {
return imagepath;
}
public void setImagepath(String imagepath) {
this.imagepath = imagepath;
}
}
package com.bjsxt.test;
import java.util.Date;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import org.junit.BeforeClass;
import org.junit.Test;
import cn.itcast.bean.Person;
public class PersonTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Test
public void save() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = new Person();
person.setName("test");
person.setBirthday(new Date());
em.persist(person);
em.getTransaction().commit();
em.close();
factory.close();
}
@Test
public void getPerson() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
Person person = em.find(Person.class,1);
System.out.println(person.getName());
em.close();
factory.close();
}
@Test
public void getPerson2() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
Person person = em.getReference(Person.class,1);
System.out.println(person.getName());
em.close();
factory.close();
}
@Test
public void updatePerson() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = em.find(Person.class,1);
person.setName("老刁");
em.getTransaction().commit();
em.close();
factory.close();
}
//new
//managed 托管
//游离(脱管)
//删除
@Test
public void updatePerson2() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = em.find(Person.class,1);
em.clear();
person.setName("老张");
em.merge(person);
em.getTransaction().commit();
em.close();
factory.close();
}
@Test
public void deletePerson() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
Person person = em.find(Person.class,1);
em.remove(person);
em.getTransaction().commit();
em.close();
factory.close();
}
@Test
public void query() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
Query query = em.createQuery("select o from Person o where o.id = ?1");
query.setParameter(1, 2);
Person person = (Person)query.getSingleResult();
System.out.println(person.getName());
em.close();
factory.close();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<!-- 定义一个持久化单元 -->
<persistence-unit name="itcast" transaction-type="RESOURCE_LOCAL">
<!-- 相关于数据库的一些属性信息 -->
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true" />
<!-- sqlServer的驱动器 -->
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<!-- 设置sqlServer路径以及数据库名 -->
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost/jpa" />
<!-- 数据库的用户名 -->
<property name="hibernate.connection.username" value="root" />
<!-- 数据库的密码 -->
<property name="hibernate.connection.password" value="root" />
</properties>
</persistence-unit>
</persistence>
- 大小: 35.2 KB
分享到:
相关推荐
java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ...
在分布式ID生成的项目中,"src"目录下可能包含了实现各种ID生成算法的Java代码,而"WebContent"则可能包含展示或测试这些ID生成服务的前端页面。 总的来说,全局唯一ID生成是分布式系统设计中的核心问题之一,涉及...
雪花算法ID生成器 一个适合大量数据的主键生成器 可以尽可能的让数据靠拢; 可以赋予主键更多的区分信息 支持数据库的扩容/分片
2. `generateID()`: 这个方法可能负责实际的Request ID生成逻辑,即组合`session_create_id()`和`uniqid()`的结果。 3. `getID()`: 返回已经生成的Request ID,供其他部分的代码使用。 在`demo.php`中,我们可以...
### Java ID生成器详解 #### 一、引言 在软件开发过程中,特别是在数据库操作时,经常需要为每个新创建的记录分配一个唯一的标识符(ID)。为了满足这一需求,Java 开发者们通常会设计一种高效且可靠的 ID 生成...
JAVA ID生成策略是一种在Hibernate框架中使用的策略,用于生成实体类的主键值。这种策略在Annotation情况下,主要有三种方式生成主键值。 第一种方式是使用数据库的自动增长字段生成。这种方式使用@GeneratedValue...
为了解决这个问题,可以考虑使用更复杂的分布式ID生成方案,如Twitter的Snowflake算法或Google的UUID。这些算法在保证全局唯一性的同时,还能提供更高的并发处理能力。 综上所述,"java自动生成id策略"涉及到对...
在Java的持久化框架Hibernate中,ID生成策略是至关重要的一个环节。它是用来唯一标识数据库中每一...通过学习这些示例,你可以更好地理解如何在Hibernate中配置和使用不同的ID生成策略,并在实际项目中做出明智的选择。
序列可以在不使用表的情况下单独创建,也可以与表的触发器结合,以自动为新插入的行生成唯一ID。这在多用户环境下尤其有用,确保即使在高并发环境下也能正确地自增ID,避免了ID冲突。 创建序列的基本语法如下: ``...
标题中的“根据硬件ID生成注册码”是指在软件授权过程中常用的一种方法,它涉及到软件版权保护和反盗版技术。硬件ID(Hardware Identifier)通常指的是计算机的唯一标识,如主板的序列号、网卡MAC地址或者硬盘ID等,...
ID生成器
【go-id-builder ID生成器】是一个专为Go语言设计的高效ID生成系统,它能够确保生成的ID具有唯一性并且顺序连续,这对于需要大量分配唯一标识符的分布式系统尤其重要。在分库分表的场景下,每个数据实体都需要一个...
本文将深入探讨自定义ID生成器的工作原理、实现方法以及它在百度贴吧中的应用。 首先,让我们了解什么是自定义ID。自定义ID是指用户可以按照自己的喜好选择或创建的唯一标识符,区别于系统自动分配的随机数字或字母...
分布式ID生成策略是现代互联网应用中的重要组成部分,尤其是在大数据时代,每个数据实体通常都需要一个唯一标识符(ID)来区分其身份。Snowflake算法是由Twitter开源的一种高效且可扩展的分布式ID生成方案,广泛应用...
public int 示例表Id { get; set; } public string 列1 { get; set; } public int 列2 { get; set; } // 其他列... } ``` 在生成代码的过程中,可以考虑添加一些可配置的选项,比如是否生成属性的`get`/`set`...
### 分布式ID生成方法详解 #### 一、引言 在分布式系统中,全局唯一标识符(Global Unique Identifier, GUID)的生成是一项基础而重要的技术。这些标识符被广泛应用于消息传递、订单处理和帖子识别等场景。本文将...
雪花算法是一种分布式ID生成策略,由Twitter开源,其设计目标是在分布式系统中生成具有全局唯一性、有序性和高并发性的ID。在MySQL中实现雪花算法,主要是通过自定义函数来模拟这个过程。 首先,我们需要创建一个名...
idgo是一个利用MySQL批量生成ID的ID生成器, 主要有以下特点:每次通过事务批量取ID,性能较高,且不会对MySQL造成压力.当ID生成器服务崩溃后,可以继续生成有效ID,避免了ID回绕的风险.业界已经有利于MySQL生成ID的方案,...
`Native`策略会根据当前使用的数据库类型选择最合适的ID生成策略。例如,在Oracle中可能会使用`Sequence`,而在MySQL和SQL Server中则使用`Identity`。这种方式使得应用程序无需关心底层数据库的具体实现细节,提高...