项目完工

今天项目完工。
做了个j2ee项目的移植,虽然没有写什么核心代码,不过也在项目移植的过程中学到不少东西。如怎样从oracle数据库迁移到mysql,怎样从weblogic迁移到jboss。虽然网上有很到的移植办法。但是很多都不好用。还有很多是错误的。例如jboss与mysql连接那一个地方,如果是使用一个数据源的话不如这样改:
将jboss-4.0.0/docs/examples/jca中的mysql-ds.xml复制到jboss-4.0.0/server/default/deploy
然后将下面的代码copy过去
<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: mysql-ds.xml,v 1.3 2004/09/15 14:37:40 loubyansky Exp $ -->
<!--  Datasource config for MySQL using 3.0.9 available from:
http://www.mysql.com/downloads/api-jdbc-stable.html
-->

<datasources>
  <local-tx-datasource>
    <jndi-name>MySqlDS</jndi-name>
    <connection-url>jdbc:mysql://localhost:3306/user?useUnicode=true&amp;characterEncoding=GBK</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>root</user-name>
    <password>123</password>

      <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
      <metadata>
         <type-mapping>mySQL</type-mapping>
      </metadata>
  </local-tx-datasource>

</datasources>
在jboss-4.0.0/server/default/conf改动login-config.xml
添加下面的语句:
 
   <application-policy name = "MySqlDbRealm">
     <authentication>
         <login-module code =
                 "org.jboss.resource.security.ConfiguredIdentityLoginModule"
                  flag = "required">
           <module-option name ="principal"></module-option>
           <module-option name ="userName">root</module-option>
           <module-option name ="password">123</module-option>
           <module-option name ="managedConnectionFactoryName">
                jboss.jca:service=LocalTxCM,name=MySqlDS
           </module-option>
         </login-module>
       </authentication>
    </application-policy>

在程序中写
    try
    {
      Context context = new InitialContext();
      ds = (DataSource)context.lookup("java:/MySqlDS");
      conn = ds.getConnection();
      conn.close();
    }
    catch(Exception e)//NamingException e)
    {
      ds =null;
      conn = null;
    }
而且(EJB)每一个执行sql的函数中都要这样写
try
{
conn = ds.getConnection();
.............
      conn.close();
}
因为jboss会自动关闭数据库的连接
所以调用一次EJB中的数据库操作就要打开一次数据库。虽然这样很费时间,但很节约资源。
否则就会有close a connection  的jboss提示和sql语句执行异常。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值