`
jzkangta
  • 浏览: 160481 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JPA入门(一)

阅读更多
1.src目录下新建一个META-INF文件夹
新建persistence.xml文件
<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="default" transaction-type="RESOURCE_LOCAL">
      <properties>
      	 <!-- 方言 -->
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
         <!-- 数据库表操作 -->
         <property name="hibernate.hbm2ddl.auto" value="update"/>
         <property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver" />
         <property name="hibernate.connection.username" value="root" />
         <property name="hibernate.connection.password" value="root" />
         <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/cet?useUnicode=true" />
		 <property name="hibernate.show_sql" value="true" />
         
      </properties>
   </persistence-unit>
</persistence>

2.导入jar  详见附件

3.实体类
package org.jzkangta.entity;

import java.util.Date;

import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
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.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

@Entity
@Table(name="User") //设置数据库表名
public class User {

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)   //主键生成策略  AUTO是默认值,可以省略
	private int uId;
	
	@Column(length=20,name="userName",nullable=false)
	private String name;
	private String password;
	
	@Temporal(TemporalType.DATE)
	private Date birthday;
	
	@Lob //大文本
	private String info;
	
	@Transient //不会添加到数据库表
	private String xxx;
	
	@Basic(fetch=FetchType.LAZY)  //延迟加载
	private Byte[] file;
	
	public User(){
		
	}

	public Date getBirthday() {
    	return birthday;
    }

	public void setBirthday( Date birthday ) {
    	this.birthday = birthday;
    }
	
	public User(String name,String pwd) {
		this.name = name;
		this.password = pwd;
	}
	public int getuId() {
    	return uId;
    }
	public void setuId( int uId ) {
    	this.uId = uId;
    }
	public String getName() {
    	return name;
    }
	public void setName( String name ) {
    	this.name = name;
    }
	public String getPassword() {
    	return password;
    }
	public void setPassword( String password ) {
    	this.password = password;
    }

	public String getInfo() {
    	return info;
    }

	public void setInfo( String info ) {
    	this.info = info;
    }

	public String getXxx() {
    	return xxx;
    }

	public void setXxx( String xxx ) {
    	this.xxx = xxx;
    }

	public Byte[] getFile() {
    	return file;
    }

	public void setFile( Byte[] file ) {
    	this.file = file;
    }
}



4.测试类
package org.jzkangta.test;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

public class Test {

	/**
	 * @param args
	 */
	public static void main( String[] args ) {
		//执行这里的时候就已经创建表了
		EntityManagerFactory factory = Persistence.createEntityManagerFactory( "default" );//"default"是在persistence.xml里面的配置
		EntityManager entityManager = factory.createEntityManager();
		//entityManager.getTransaction().begin();  查询的时候不需要开事务
		//entityManager.persist( new User("wangjun","123") );   新增
		//User user = entityManager.find( User.class, 1 );  //查找
		//entityManager.getReference( User.class, 1  );  等同于 find  但是延迟加载,得到的是一个代理对象
		//entityManager.merge( user ); 修改
		//entityManager.remove( user );  删除
		//System.out.println(user.getName());
		//entityManager.getTransaction().commit();
		
		//JPQL查询
		Query query = entityManager.createQuery( "select o from User o where o.uId = ?" );  //User 是实体名  o是别名 uId是字段名  ?是占位符
		//Query query = entityManager.createQuery( "select count(o) from User o where o.uId = ?" );  //User 是实体名  o是别名 uId是字段名  ?是占位符
		
		query.setParameter( 0, 1 );
		//query.getSingleResult();  //得到查询结果为一个的结果
		query.getResultList();
		
		//删除
		query = entityManager.createQuery( "delete from User o where o.uId = ?" );
		query.setParameter( 0, 1 );
		query.executeUpdate();//记得开事务
		
		//修改
		query = entityManager.createQuery( "update User o set o.name = ? where o.uId = ?" );
		
		entityManager.close();
		factory.close();
	}

}

分享到:
评论

相关推荐

    JPA从入门到精通

    jpa从入门到放弃,你值得拥有!!!!!

    Spring Data JPA从入门到精通

    'SpringDataJPA从入门到精通'以SpringBoot为技术基础 从入门到精通 由浅入深地介绍SpringDataJPA的使用。有语法 有实践 有原理剖析。'SpringDataJPA从入门到精通'分为12章 内容包括整体认识JPA、JPA基础查询方法、...

    spring data jpa入门实例

    【Spring Data JPA 入门实例】 Spring Data JPA 是 Spring 框架的一个模块,它简化了数据库访问层(DAO)的开发,通过提供自动化的 Repository 实现,使得开发者无需编写大量的 CRUD(创建、读取、更新、删除)代码...

    spring Data Jpa入门

    Spring Framework对JPA的支持本身就很强大,我们不用理会EntityManager的创建,事务处理等等.Spring又进步了,只需要声明一下方法接口,Spring Data JPA可以帮你完成数据访问层的实现代码,开发者把更多的心思放在业务...

    Spring Data JPA入门项目02

    在"Spring Data JPA入门项目02"中,你将学习如何在实际项目中应用这些概念,创建一个用户管理应用,其中包括用户排序和分页功能。通过对`usermanage1_2`这个文件的学习,你可以了解到如何配置Spring Data JPA,创建...

    JPA从入门到精通 推荐

    JPA从入门到精通 推荐

    spring data jpa 入门例子

    Spring Data JPA是Spring框架的一个模块,用于简化Java Persistence API(JPA)的使用,它提供了数据访问的抽象层,让开发者能够以更简洁的方式与数据库进行交互。本入门例子将帮助你理解并掌握Spring Data JPA的...

    Spring Data JPA入门项目01

    在这个"Spring Data JPA入门项目01"中,我们将探讨如何利用Spring Data JPA来实现基本的CRUD(创建、读取、更新和删除)功能。 首先,我们需要在项目中引入Spring Data JPA的相关依赖。这通常在Maven或Gradle的配置...

    Spring Data JPA 入门例子极简代码

    **Spring Data JPA 入门详解** Spring Data JPA 是 Spring 框架的一个模块,它简化了数据库访问,提供了一种声明式的方式来处理数据访问层的 CRUD(创建、读取、更新、删除)操作。它与 Java Persistence API (JPA)...

    hibernate jpa 入门案例依赖jar

    本篇文章将深入探讨Hibernate JPA入门案例所需的依赖,以及如何配置MySQL驱动。 首先,我们需要理解Hibernate和JPA的关系。Hibernate是最初的ORM框架,提供了全面的功能来处理数据库交互。而JPA是Java EE的一部分,...

    事物JPA入门

    **事物(Transaction)JPA 入门** Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。它提供了一种面向对象的方式来处理数据库操作,使得开发人员可以避免直接编写SQL,...

    JSF+JPA入门开发示例

    在"JSF+JPA入门开发示例"中,你可能会学习到以下关键知识点: 1. **JSF生命周期**:JSF组件有六个主要阶段,包括恢复视图、应用请求值、处理验证、更新模型值、调用应用程序和渲染响应。理解每个阶段的功能对于调试...

    JPA快速入门初步(myeclipse)

    在"JPA快速入门初步(myeclipse)"中,我们将学习如何在MyEclipse中设置JPA项目,理解基本的JPA概念,以及如何使用注解来定义实体和映射数据库表。 1. **JPA基础概念**: - **实体(Entity)**: 表示数据库中的表...

Global site tag (gtag.js) - Google Analytics