今天配置的一个JPA,好久没有弄了,原来也都是连的mysql,今天突然想连接一下oracle,不过还好一次成功,没有报错。。。
1。首先要一个oracle的jdbc驱动包,mysql的话也是一样的。
ojdbc14-9.2.0.5.jar
2.就是配置persistence.xml 了,其中配置数据库的连接:(注意的是persistence.xml要放在src下建立一个META-INF目录下)
http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistencehttp://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="oracle">
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
<property name="hibernate.connection.username" value="scott"/>
<property name="hibernate.connection.password" value="tiger"/>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:cfd"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
其实其中关于数据库的连接字符串这些的话,在hibernate的下载包中就有,其中的hibernate.propertes文件中都有
3.就是实体类了,也就对应了数据库中的表:
package com.cfd.bean;
imp
imp
imp
@Entity(name="t_student")
public class Student {
@Id
private int id;
private int age;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4.就是建立一个表了,其实当EntityManagerFactory创建的时候就会在数据库中创建一个表的,所以就是:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("oracle");
上一句执行完后,表中就存在了对应的表了
EntityManager em = emf.createEntityManager();