创建JPA的java project

  现在最近研究公司项目的数据权限这块,用到了@addtional Criteria这个标注但是好像行不通,所以怀疑是em.setProperty("","")这块的问题,所以转向研究java project项目创建JPA,把遇到的问题作如下记录:

1.选好数据库,配置persist.xml文件  我用到的是sqlServer2005 
   <?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
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">
<persistence-unit name="todos" transaction-type="RESOURCE_LOCAL">
<!-- <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> -->
<class>de.vogella.jpa.simple.model.Todo</class>
<properties>
<property name="javax.persistence.jdbc.driver"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:sqlserver://localhost:1433;DatabaseName=DPPM;" />
<property name="javax.persistence.jdbc.user" value="sa" />
<property name="javax.persistence.jdbc.password" value="sa" />


<!-- EclipseLink should create the database schema automatically -->
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode"
value="database" />
</properties>


</persistence-unit>
</persistence>
2.导入相应的jar包(之前就是因为少导入了三个包所以一直报错,提示provider错误,还有下面列出的jar包暂时不知道哪个没用)
  sqlserver2005jdbc.jar,eclipselink-jpa-modelgen_2.3.2.v20111125-r10461.jar,javax.persistence_1.0.0.jar,javax.persistence_2.0.3.v201010191057.jar,
javax.persistence_2.0.0.jar,eclipselink.jar
3.创建实体:
 package de.vogella.jpa.simple.model;




import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;


@Entity
@Table(schema="pur",name="Todo")
public class Todo implements Serializable{
/**
* default serial version ID
*/
private static final long serialVersionUID = 0;
/*-------------------类成员定义--------------------*/
/** 
* 主键
*/
@Id
@Column(name = "id")
private Integer id;
/**
* 提单号
*/
@Column(name = "summary")
private String summary;
/**
* 件数
*/
@Column(name = "description")
private String description;


public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
4.写Main函数,特别注意的是红字部分  select t from Todo t 这里不能用数据库的表明
  package de.vogella.jpa.simple.main;


import java.util.List;


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


import de.vogella.jpa.simple.model.Todo;


public class Main {
private static final String PERSISTENCE_UNIT_NAME = "todos";
private static EntityManagerFactory factory;


public static void main(String[] args) {
factory =Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
// Read the existing entries and write to console
Query q = em.createQuery("select t from Todo t");
List<Todo> todoList = q.getResultList();
for (Todo todo : todoList) {
System.out.println(todo);
}
System.out.println("Size: " + todoList.size());


// Create new todo
em.getTransaction().begin();
Todo todo = new Todo();
todo.setId(1);
todo.setSummary("This is a test");
todo.setDescription("This is a test");
em.persist(todo);
em.getTransaction().commit();


em.close();
}
}

另附一张项目的目录结构图:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值