create table t_user( id int primary key auto_increment, user_name varchar(50), birthday date, infor longtext, gender varchar(10) ); 【Java类:】 package bean; import java.util.Date; import java.util.List; import javax.persistence.Basic; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.Lob; import javax.persistence.Query; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; import util.JPAManagerFactory; /** * 用户类 * @author 青山 * @date 2014年10月18日 * @file name: UserBean.java * * 注意: * 一般在属性或者是get方法的前面没有配置column注解,有可能是应为 * 属性名和字段名是相同的,省略了。 * */ @Entity @Table(name="t_user") public class UserBean { @Id //@GeneratedValue //不能使用默认,必须要指定值,要不然就自己指定主键 否则:org.hibernate.PersistentObjectException: detached entity passed to persist: bean.UserBean //@GeneratedValue(strategy=GenerationType.AUTO) private int id ; @Column(name="user_name") private String name; /* * 1985-8-23 --> Date 日期 * 12:30 --> Time 时间 * 1985-8-23 12:30 --> Timestamp 时间戳 */ //这里的生日是一个日期类型,素以需要使用时间方面的注解:Temporal @Temporal(TemporalType.DATE) @Column(nullable=false)//不允许为空 private Date birthday; /** * 性别的枚举类型:Gender.java * EnumType.ORDINAL:保存枚举的索引值 * EnumType.STRING:保存枚举的字符串 * 作为枚举值,在这里只有两种情况,male和female,没有空,所有需要有注解说明不能为空 */ //这里Gender是一个枚举类型 @Enumerated(EnumType.STRING) @Column(nullable=false) private Gender gender; //一般来说字符串在数据库中最常只有255个字节,但是如果长度太大,就没有办法存储 //解决办法:使用大文本数据的注解 @Lob @Column(name="infor") //basic注解一般和大数据的字段配合使用 @Basic(fetch=FetchType.LAZY) //设置抓取策略为延迟加载,如果不访问get方法,就不会加载该属性的值 private String introduce; //如果不希望属性成为持久化字段的话,就需要使用注解Transient(该注解表示字段不和表字段映射) @Transient private String imgPath; //保存二进制数据 这个也是大数据,也是用Lob注解 一般需要延迟加载 @Lob @Basic(fetch=FetchType.LAZY) @Transient //这里这个字段只是练习,所以不需要持久化到数据库 private byte[] file; 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 Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String toString(){ return this.id+" "+this.name+" "+this.birthday; } public String getIntroduce() { return introduce; } public void setIntroduce(String introduce) { this.introduce = introduce; } public String getImgPath() { return imgPath; } public void setImgPath(String imgPath) { this.imgPath = imgPath; } public byte[] getFile() { return file; } public void setFile(byte[] file) { this.file = file; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } public static void main(String[] args) { EntityManager manager = JPAManagerFactory.getMFInstance().getManager(); EntityTransaction t = manager.getTransaction(); t.begin(); // UserBean user = new UserBean(); // user.setId(2); // user.setBirthday(new Date()); // user.setGender(Gender.FEMAIL); // user.setName("天意"); // String info = "聚焦经典案例!主委会在设置深圳站议程的时候更加突出了经典案例的演讲比例,不论是服务号还是企业号的开发、功能设计、高级应用案例。例如,我们邀请了获微信官网推荐、被原微信产品总监曾鸣(现产品部助理总经理)称为,腾讯眼中微信公众平台上七个经典案例的南航微信服务号、招商银行信用卡服务号,他们的开发商或信息技术团队负责人都将带来精彩演讲。" //+"作为招商银行信用卡微信服务号的开发商,深圳云软还做过中国电信、广东联通、民生银行、华泰证券等行业领先案例,是国内首屈一指的能承建千万级用户的微信第三方开发商。深圳云软联合创始人/技术副总裁黄榕振将带来《以招行为例 微信公众帐号企业应用开发高级篇》 的主题演讲。" //+"演讲议题不仅将围绕企业应用微信公众帐号的几个阶段、细谈CRM绑定、分离式CRM、交互设计的核心、系统安全性的几个问题、功能设计与用户痛点、某银行功能使用频度分析、多客服高级应用、分层次的软件架构设计、高性能和高可用设计、多公众号分权分域管理、分组群发高级应用几个主题展来深入演讲。黄榕振的演讲中还将融入微信平台的最新接口功能和应用。" //+"而作为南航微信服务号实际操盘手的郑炜旸(南方航空资深架构师/微信项目产品经理 ),不仅将带来南航在微信平台上开发服务号过程的三个阶段,重点内容涵盖了南航微信服务号的平台规划、功能点设计、用户痛点、安全问题、高级应用等内容。另外,作为首批微信企业号的尝鲜者,在企业号的开发和使用上,南航也有自己的独到之处。" //+"说到企业号,除了郑炜旸演讲中讲涉及企业号的开发与运营之外,来自于长安汽车股份有限公司管理创新与IT中心总工程师、原南航信息中心CTO 龙庚将带来《长安汽车微信企业号是如何炼成》的专场主题演讲。" //+"本着对所有参会者负责的原则,主委会要求演讲嘉宾观点明确,从实践出发,拒绝泛谈大概念/大趋势、空洞理论。"; // System.out.println(info.length());//760+ // user.setIntroduce(info); // manager.persist(user); // /** // * 当对象处于托管状态的时候调用set方法就能够同步到数据库 // * 这里,我们开启了事务,然后通过find方法获取对象,这个对象就处于托管的状态 // * // * manager.clear();//将manager管理的所有托管状态的对象变为游离状态 // * 在游离状态的对象调用set方法,改变属性的值,是不能同步到数据库的,只有托管状态的对象能同步到数据库 // * // * manager.merge(user); //该方法是将游离状态的实体对象同步到数据库(类似于从游离状态转换为托管状态,这样就可以直接更新到数据库) // */ // UserBean user = manager.find(UserBean.class, 2); // user.setName("龙天狼"); Query query = manager.createQuery("select user from UserBean user where user.id=?11");//采用位置参数的设置方法 query.setParameter(11, 1); List<UserBean> list = query.getResultList(); for(UserBean user : list){ System.out.println(user.toString()); } // UserBean user = (UserBean)query.getSingleResult(); // System.out.println(user.getName()); t.commit(); manager.close(); } }
相关推荐
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate-jpa-2.1-api-1.0.0.final.jar.zip,内含hibernate-jpa-2.1-api-1.0.0.final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar官方下载,请放心使用
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate jpa 源代码
java.lang.NoClassDefFoundError: javax/persistence/spi/ProviderUtil 或javax/persistence/entitylistener问题
hibernate-jpa-2.0-api-1.0.1.Final-sources
java运行依赖jar包
hibernate-jpa-2.1-api-1.0.0.final-sources.jar.zip的源代码
上次简单介绍了JPA的基本部署和操作过程,算是认识JPA了,下面我们继续学习JPA吧,我们从JPA的注解标记@Table和@Column开始逐渐介绍。
JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射JPA学习笔记-EJB-04JPA关联映射总结 JPA JPA关联映射
springboot-jpa-activiti-bootstrap-master。springboot是2 activity是6
jpa-e-hibernate-1a-edicao
从网上load下来的jpa开发API,这样离线也能查阅文档。不过,可能有错误的地方,自己可以修改html文件进行纠正!
SpringDataJpa开发--继承JpaRepository实现简单条件查询示例代码
hibernate-jpa-2.1-api-1.0.2