cmp里连接数据库是由容器来实现的,需要在具体的服务器上配置 ------------------------------------------------------
           我们还年轻牛奶会有的奶牛也会有的 
             可天天在 csdn 混这些会有吗 ??

解决方案 »

  1.   

    jboss的
    ---------------有一份别人写的,看看吧---------------------今天配置了好久jb+jboss+mysql  简直要疯了  最后成功的读取数据库 写入数据库的时候粉爽  到头来想想  其实是很简单的事情  只不过走了很多弯路 
    为了让后者少走一点弯路  把我的配置过程总结一下我用的AS是jboss3.2.0rc4,
    数据库用的是mysql-3.23.38。首先用jb8建立配置好jboss  具体配置看
    http://expert.csdn.net/Expert/topic/1291/1291317.xml?temp=.9744074把mysql的驱动程序加到你的jb里面  
    在tools/enterprise setup里面设置为了连接jboss和mysql,需要mysql的jdbc驱动,
    可以从sourceforge.org的mmmysql项目组里下载到最新的Mark Mathew
    发布的驱动。或者到mysql网站上有mysql-connector-java-3.0.6-stable-bin.jar。
    这个驱动程序要放到jboss/lib  或者 default/deploy/lib下面首先要注意的是mysql的url写法   jdbc:mysql://localhost/databaseName&useUnicode=true&characterEncoding=gb2312
    如果后面不写则在jb里面会连接有问题 或者显示的是一大堆?然后开始配置
    第一种:
         mysql-service.xml,这个文件其实就是主要的需配置文件了。
         你可以用jboss随带的,在jboss/docs/examples/jca/里。
         修改步骤:      <config-property name="ConnectionURL" type="java.lang.String">jdbc:mysql://dell:3306/jbossdb</config-property>
              里面的dell就改成你的主机ip或者localhost
           
     
     <attribute name="JndiName">MySqlDS</attribute>
             这条不一定要改。你要看你的cmp里面用到的DataSource的名称是什么  这个和那个是相对的。
            
    <attribute name="SecurityDomainJndiName">MySqlDbRealm</attribute>
             这条如果不注释掉,那就表示你愿意使用JAAS,那么就要更改         
       server/default/conf/login-config.xml
       
       你要做的就是加一条policy 可以在刚才注掉的地方找到这个policy拷贝过来policy的name 和 managedConnectionFactoryName要和mysql-service.xml相对   如果你吧这条注释掉了,你要把跟在2.1.1所指那条后面的username和password的注释去掉,填上对应配置,这就是default login。       修改jboss/server/default/conf/standardjaws.xml
            <datasource>java:/DefaultDS</datasource>
     改成java:/MySqlDS,MySqlDS是jboss部署这个数据源的jndi名称 你要用到的就是这个。
            <type-mapping>Hypersonic SQL</type-mapping>
              改成mySQL,这是后面的mysql相关的<type-mapping-definition>对应的。      把mysql-service.xml复制到jboss/server/default/deploy/里,启动jboss。注意,第二种:      
    还有一种简便的方法 如果你不用到jaas 或者 connection pool 可以就用mysql-ds.xml作为模板 一样可以改为任意的名字 但是一定要放在deploy地下才能被jboss动态部署
         mysql-ds。xml就相对简单了 如下
    <?xml version="1.0" encoding="UTF-8"?><!-- ===================================================================== -->
    <!--                                                                       -->
    <!--  JBoss Server Configuration                                           -->
    <!--                                                                       -->
    <!-- ===================================================================== --><!-- $Id: mysql-ds.xml,v 1.1 2002/07/22 22:57:24 d_jencks Exp $ -->
    <!-- ==================================================================== -->
    <!--  Datasource config for MySQL using 2.0.11 driver                     -->
    <!-- ==================================================================== -->
    <datasources>
      <local-tx-datasource>
        <jndi-name>MySqlDS</jndi-name>
        <connection-url><![CDATA[jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=gb2312]]></connection-url>
        <driver-class>com.mysql.jdbc.Driver</driver-class>
        <user-name>root</user-name>
        <password></password>
      </local-tx-datasource></datasources>这样其实就只要把这个文件复制到deploy下面  jboss启动的时候就可以部署了jb里面datasource的配置  :
       双击你左边你建立的CMP 找到JBoss 3.x Properties设置页面  在datasource 里面填入 MySqlDS 这个和刚才设置的名称相对 datasource-mapping里面填入mySQL 
     在你的EJB Designer里面选择下方的JBossCMP_JDBC设置页面 一样把datasource 里面填入 MySqlDS  datasource-mapping里面填入mySQL