EJB 创建连接到执行SQL过程
1 在项目source folder下,创建persistent.xml文件.
Project Name
--| src
--|persistence.xml
2 编写persistent.xml文件,内容符合如下格式.
<?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="CICI_PERSISTENCE_UNIT" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <class>com.cici.crm.migration.model.crm.CrmCardInstance</class> <class>com.cici.crm.migration.model.crm.CrmApplicationInstance</class> <properties> <property name="eclipselink.jdbc.native-sql" value="true"/> <property name="eclipselink.jdbc.batch-writing" value="JDBC"/> <property name="eclipselink.logging.level" value="OFF"/> <property name="eclipselink.target-database" value="Oracle" /> <property name="eclipselink.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:CICIDB" /> <property name="eclipselink.jdbc.driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="eclipselink.jdbc.user" value="ADMCICI" /> <property name="eclipselink.jdbc.password" value="ADMCICI" /> <property name="eclipselink.ddl-generation" value="none" /> </properties> </persistence-unit> </persistence>
3 创建包含DB创建连接参数的Map
Map<String,String> properties = new HashMap<String,String>(); properties.put ("eclipselink.jdbc.user", Configuration.getInstance ().getValue (Configuration.OTAM_DATABASE_USERNAME)); properties.put
("eclipselink.jdbc.password",Configuration.getInstance().getValue(Configuration.OTAM_DATABASE_PASSWORD));
4 创建EntityManagerFactory
EntityManagerFactory rcaFactory = Persistence.createEntityManagerFactory(CICI_PERSISTENCE_UNIT, properties);
5 创建 EntityManager
EntityManager entityManager = rcaFactory.createEntityManager ();
6 创建 EntityTransaction 并开启连接
entityManager.getTransaction().begin();
7 创建Query并执行sql语句
Query query = entityManager.createNamedQuery(sql);
query.executeUpdate ();
8 提交事务
entityManager.getTransaction ().commit ();
9 关闭连接
entityManger.close();
ciciFactory.close();