Chinaunix首页 | 论坛 | 博客
  • 博客访问: 534951
  • 博文数量: 260
  • 博客积分: 10435
  • 博客等级: 上将
  • 技术积分: 1939
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 14:50
文章分类

全部博文(260)

文章存档

2011年(22)

2010年(209)

2009年(29)

我的朋友

分类: Java

2010-12-19 18:53:12


先来介绍两个基本概念:

1. 数据源和连接池.

在 DataSoure 中可以事先建立多个数据源对象,把这些数据库连接保存在连接池( Context poo) 中.这样我们在访问数据库时,不用自己再手动创建数据库连接,直接在连接池中捞一个数据库连接对象即可.如果这时连接池中没有可用的连接时,客户程序就将等待.

这样的好处:1)避免客户程序每次访问数据库都创建数据库连接,提高程序相应时间.
            2)避免数据库连接这样的稀缺资源因无法回收被常时间占有.

 2. 数据源和 JNDI 资源

    DataSource 对象是由 JBoss 提供的,不能在程序中用创建实例的方式获得 DataSource 对象.而需要采用 JNDI ( java naming and directory interface )技术,来获得 DataSource 对象的引用.其实 JNDI 简单来讲就是一种将对象和名称绑定的技术. Javax.naming 包中提供 Context 接口,该接口提供将对象和名字绑定.


下面就来具体备置一下数据源: (以 Mysql 为例.数据库名称: test  用户名 :root 密码为空)

  • JBoss 目录\ docs\examples\jca 下提供了各种数据库的备置文件格式.该目录下找到 mysql-ds.xml 文件.
  • mysql-ds.xml 拷贝到 JBoss 目录\ server\default\deploy
  • 打开 mysql-ds.xml 文件.修改如下

1 < local-tx-datasource >
2      < jndi-name > TestDS
3      < connection-url > jdbc:mysql://localhost:3306/test?useUnicode=true & characterEncoding=UTF-8
4      < driver-class > com.mysql.jdbc.Driver
5      < user-name > root
6      < password >
7   
  • 保存.
  • 在java程序中得到数据源.代码如下:

1 public  Connection getConnection() throws  Exception {
2     Context cnt  =   new  InitialContext();
3         DataSource ds  =  (DataSource)cnt.lookup( " java:/TestDS " );
4      return  ds.getConnection();
5 }


 
Jboss 有一个默认的数据源DefaultDS,他使用Jboss 内置的HSQLDB 数据库。实际应用中你可能使用不同的数据库,如MySqlMsSqlServerOracle 等。各种数据库的数据源配置模版你可以在[Jboss 安装目录]\docs\examples\jca 目录中找到,默认名称为:数据库名+ -ds.xml 。不管你使用那种数据库都需要把他的驱动类Jar 包放置在[Jboss 安装目录]\server\default\lib 目录下,放置后需要启动Jboss 服务器。
本实例使用的数据库是mysql-5.0.22 Ms Sql Server2000 ,使用驱动Jar 包如下:
Mysql mysql-connector-java-3.1.13-bin.jar Ms Sql Server2000 msbase.jar, mssqlserver.jar, msutil.jar
下面介绍Mysql Ms Sql Server2000 的数据源配置,数据源配置文件的取名格式必须为xxx–ds.xml ,:mysql-ds.xml mssqlserver-ds.xmloracle-ds.xml
数据源文件配置好后需要放置在[jboss 安装目录]/server/config-name/deploy 目录下,本教程采用的配置名为:default,所以路径为[jboss 安装目录]/server/default/deploy 目录
 MySql 数据源的配置
下面定义一个名为DefaultMySqlDS Mysql 数据源,连接数据库为zhaosoft,数据库登录用户名为root,密码为admin,数据库驱动类为org.gjt.mm.mysql.Driver。大家只需修改数据库名及登录用户名密码就可以直接使用。
mysql-ds.xml
zhaosoft
jdbc:mysql://localhost:3306/foshanshop?useUnicode=true&characterEncoding=GBK
org.gjt.mm.mysql.Driver
root
admin
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
mySQL
Ms Sql Server2000 数据源的配置
下面定义一个名为MSSQLDS Ms Sql Server 数据源,连接数据库为foshanshop,数据库登录用户名为sa,密码为sa,数据库驱动类为com.microsoft.jdbc.sqlserver.SQLServerDriver。大家只需修改数据库名及登录用户名、密码就可以直接使用。
mssqlserver-ds.xml
zhaosoft
jdbc:microsoft:sqlserver:// localhost:1433;DatabaseName=foshanshop
com.microsoft.jdbc.sqlserver.SQLServerDriver
sa
sa
MS SQLSERVER2000
 Oralce9i 数据源的配置
下面定义一个名为OracleDS Oracle9i 数据源,连接数据库为FS,数据库登录用户名为root,密码为admin,数据库驱动类为oracle.jdbc.driver.OracleDriver。大家只需修改数据库名及登录用户名密码就可以直接使用。
oracle-ds.xml
zhaosoft
jdbc:oracle:thin:@nd:1521:FS
oracle.jdbc.driver.OracleDriver
root
admin
true
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
Oracle9i
数据源发布后,你可以在 找到他,如下图:
你可以点击name=DefaultMySqlDS,service=ManagedConnectionPool 进入连接池属性修改界面。其中MaxSize 属性指定了最大连接数,InUseConnectionCount 代表目前正在使用的连接数,一旦InUseConnectionCount大于MaxSize,数据库连接将会报错,这种情况一般都是因为手工操作jdbc,在使用完后没有立刻释放掉连接引起的。
阅读(594) | 评论(0) | 转发(0) |
0

上一篇:java nio

下一篇:java osgi

给主人留下些什么吧!~~