现在的位置: 首页 > 综合 > 正文

OjtDB for opm

2013年10月16日 ⁄ 综合 ⁄ 共 1908字 ⁄ 字号 评论关闭

一、

1、数据库的创建

createDB.java

import java.util.*;
import javax.persistence.*;

public class createDB {
    public static void main(String[] args) {
 
        // Open a database connection
        // (create a new database if it doesn't exist yet):
        EntityManagerFactory emf =
            Persistence.createEntityManagerFactory("$objectdb/db/points.odb");
        EntityManager em = emf.createEntityManager();
 
        // Store 1000 Point objects in the database:
        em.getTransaction().begin();
        for (int i = 0; i < 1000; i++) {
            Point p = new Point(i, i);
            em.persist(p);
        }
        em.getTransaction().commit();
 
        // Close the database connection:
        em.close();
        emf.close();
    }
}

Point.java

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Point implements Serializable {
	private static final long serialVersionUID = 1L;

	// Persistent Fields:
	@Id
	@GeneratedValue
	Long id;
//	private Boolean capital;
//	private Long population;
//	private String name;

	private int x;
	private int y;
	// Constructors:
	public Point(int x,int y) {
		this.x = x;
		this.y = y;
	}
}

如果数据库应用在web应用中,$objectdb指objectdb.jar所在目录的上层文件夹,即WEB-INF

 

二、for tomcat &opm

1、

PointListener.java

package test;

import javax.persistence.*;
import javax.servlet.*;

public class PointListener implements ServletContextListener{
	 // Prepare the EntityManagerFactory & Enhance:
    public void contextInitialized(ServletContextEvent e) {
         //entityClass package name
        com.objectdb.Enhancer.enhance("test.*");//com.objectdb.o.UserException:Package test1 is not found by the enhancer
        EntityManagerFactory emf =
            Persistence.createEntityManagerFactory("$objectdb/db/points.odb");
        e.getServletContext().setAttribute("emf", emf);
    }
 
    // Release the EntityManagerFactory:
    public void contextDestroyed(ServletContextEvent e) {
        EntityManagerFactory emf =
            (EntityManagerFactory)e.getServletContext().getAttribute("emf");
        emf.close();
    }
}

2、web.xml

  <listener>
    <listener-class>test.PointListener</listener-class>
  </listener>

 

四、错误

1、Persistence unit '$objectdb/lib/sqljdbc4.jar' is not found (by sun.misc.Launcher$AppClassLoader)

数据库名如果非*.odb,则应加上objectdb:$objectdb

抱歉!评论已关闭.