JBoss-4.2.3GA配备MySQL数据库连接池
JBoss-4.2.3GA配置MySQL数据库连接池
1.将mysql的JDBC驱动放到的JBOSS_HOME\server\default\lib 下
2.把JBOSS_HOME\docs\examples\jca\mysql-ds.xml 复制到JBOSS_HOME\server\default\deploy目录下,修改mysql-ds.xml文件
<jndi-name>MySqlDS</jndi-name> <use-java-context>false</use-java-context> <connection-url>jdbc:mysql://localhost:3306/synnex</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>8525330</password>
3.修改JBOSS_HOME\server\default\conf\standardjbosscmp-jdbc.xml
<defaults> <datasource>java:/MySqlDS</datasource> ...... </defaults>
4.修改JBOSS_HOME\server\default\conf\login-config.xml,在<policy>中添加如下代码
<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">8525330 </module-option> <module-option name="managedConnectionFactoryName"> jboss.jca:service=LocalTxCM,name=MySqlDS </module-option> </login-module> </authentication> </application-policy>
5.测试代码
import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class Client { public static void main(String[] args) { Hashtable props = new Hashtable(); props.put(Context.INITIAL_CONTEXT_FACTORY,"org.jboss.naming.NamingContextFactory"); props.put(Context.PROVIDER_URL, "localhost:1099"); props.put("java.naming.rmi.security.manager", "yes"); props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming"); try { Context ctx1 = new javax.naming.InitialContext(props); DataSource ds = (DataSource) ctx1.lookup("java:/MySqlDS");//这个地方也可以是"MySqlDS" Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("select * from test "); while (rs.next()) { System.out.println(rs.getString(1));// 取出一个字段 } rs.close(); stmt.close(); conn.close(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e1) { e1.printStackTrace(); } catch (Exception e1) { e1.printStackTrace(); } } }
1 楼
hareamao
2010-07-23
补充说明一下,第4段是专门为jaas的datasource做配置的,如果不用,可以省略。
2 楼
Blackbaby
2010-08-03
hareamao 写道
补充说明一下,第4段是专门为jaas的datasource做配置的,如果不用,可以省略。