亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Spring2.X+EJB3.X(一)

系統(tǒng) 1972 0
??? 最近想想,成為Javaeye的會員已經(jīng)有年頭了,但是沒有在上面發(fā)表過一篇文章,感覺慚愧,做了這么多年的程序,一直沒有把自己的一些經(jīng)驗和想法和大家一起分享。
???? 我在一家中小軟件企業(yè)里面負責公司的技術,腦子里面成天想的是如何建立一套符合自己公司業(yè)務的技術框架,雖然公司小,但是項目不小,我們在為一家煤炭企業(yè)做ERP,系統(tǒng)的部署環(huán)境比較復雜,數(shù)據(jù)庫是集群,web中間件也要集群,此時普通的技術方案和輕量級框架就不能滿足了,我就想到了EJB3.0 ,我在網(wǎng)上找到了一篇講述兩者結合的文章,但是寫的不是很清楚,給出的代碼,我進行了加工和調整,才跑起來,不多說了,看看下面的代碼:
代碼1:
    
package com.ejb3.service;

import com.ejb3.domain.Customer;   
import java.util.Collection;   
import javax.ejb.Stateless;   
import javax.jws.WebService;   
import javax.jws.soap.SOAPBinding;   
import javax.persistence.EntityManager;   
import javax.persistence.PersistenceContext;   
import javax.persistence.Query;   
import javax.jws.WebMethod;   
   
@Stateless
@Remote( { CustomerService.class })  
public class CustomerServiceImpl implements CustomerService {   
    //unitName是指你數(shù)據(jù)庫的用戶名,我用的是oracle10g,如果是別的數(shù)據(jù)庫就是數(shù)據(jù)庫名稱
    @PersistenceContext(unitName="ERP")   
    private EntityManager manager;   
  
        public Customer create(Customer info) {   
        this.manager.persist(info);   
        return info;   
    }   
  
    
    public Customer update(Customer info) {   
        return this.manager.merge(info);   
    }   
  
    
    public void remove(Long customerId) {   
        this.manager.remove(this.manager.getReference(Customer.class, customerId));   
    }   
  
    public Collection<Customer> findAll() {   
        Query query = this.manager.createQuery("SELECT c FROM Customer c");   
        return query.getResultList();   
    }   
  
        public Customer[] findAllAsArray() {   
        Collection<Customer> collection = findAll();   
        return (Customer[]) collection.toArray(new Customer[collection.size()]);   
    }   
  
        public Customer findByPrimaryKey(Long customerId) {   
        return (Customer) this.manager.find(Customer.class, customerId);   
    }   

  


代碼2:
    
package com.ejb3.service;

import com.ejb.domain.Customer;   
import java.util.Collection;   

import javax.ejb.Local;
import javax.ejb.Remote;   

public interface CustomerService {   
  
    Customer create(Customer info);   
  
    Customer update(Customer info);   
  
    void remove(Long customerId);   
  
    Collection<Customer> findAll();   
  
    Customer[] findAllAsArray();   
  
    Customer findByPrimaryKey(Long customerId);   
} 

  

??? 此時我的ejb代碼已經(jīng)完成,我是用M2來管理我的工程,進行打包編譯,不需要產(chǎn)生客戶端程序。我用的測試服務器是Jboss4.2.3的版本,下來我們要發(fā)布我們的ejb了,此時先要編寫oracle-ds.xml:
    
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
	<local-tx-datasource>
		<jndi-name>OracleDS</jndi-name>
		<connection-url>jdbc:oracle:thin:@192.168.1.222:1521:oracle</connection-url>
		<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
		<user-name>ERP</user-name>
		<password>ERP</password>
		<SetBigStringTryClob>true</SetBigStringTryClob>
		<exception-sorter-class-name>
			org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
		<metadata>
		<type-mapping>Oracle9i</type-mapping>
		</metadata>
		</local-tx-datasource>
</datasources>

  

然后我們就要編寫JAP相應的持久化文件persistence.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="ERP" transaction-type="JTA">  
    <jta-data-source>java:/OracleDS</jta-data-source>  
    <properties>  
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/> 
    </properties>  
  </persistence-unit>  
</persistence> 

  

??? 此時,相應的persistence.xml文件一定要放在已經(jīng)打好包的ejb里面,在打好的ejb包里,根目錄下有META-INF目錄,放在里面就可以了,今天先寫到這里

Spring2.X+EJB3.X(一)


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费精品国产自产拍在 | 视频精品一区 | 日本高清在线一区二区三区 | 五月伊人 | 男女很黄很色床视频网站免 | 天天干狠狠操 | 亚洲va在线va天堂成人 | 四虎影院久久 | 国产精品九九热 | 一级亚洲 | 国产福利在线播放 | 久久九九| 亚洲欧美国产另类 | 成人免费视频一区二区三区 | 久久精品国产福利 | 日日天干夜夜人人添 | 在线成人aa在线看片 | 日本一区精品 | 亚洲 欧美 日韩在线综合福利 | 99热国产这里只有精品免费 | 国产人做人爱视频精品 | 免费网站看v片在线成人国产系列 | 操操操人人| 日本久久精品视频 | 欧美综合天天夜夜久久 | 久久com| 羞羞视频网站在线观看 | 欧美综合图 | 久99久精品视频免费观看v | 狠狠激情| 四虎四虎1515whh | 日本在线小视频 | 亚洲精品欧美精品一区二区 | 国产精品www | 亚洲欧美国产高清va在线播放 | 九九九九九热 | 亚洲天堂不卡 | 免费的成人a视频在线观看 免费的黄色网 | 四虎永久影院 | 久久精品国产欧美成人 | 日韩综合nv一区二区在线观看 |