easydbo是通过配置文件来配置相关数据源等,只有为easydbo提供正确的配置信息。easydbo才能正常工作,easydbo的配置信息写在easyjf-dbo.xml文件中,其发布到web应用程序中的时候处于web-infclasses目录下面。只有存放位置正确、内容正确的easyjf-dbo.xml配置信息,才能体验easydbo简易、实用的对象关系映射系统(orm)功能。
一、easyjf-dbo.xml文件的内容
首先我们看一下easydbo_0.4.1版本中的一个完整的配置文件,下面是easydbo_0.4.1源码中的easyjf-dbo.xml文件的全部内容,我们的测试数据库为本机(即127.0.0.1或localhost)的数据库,数据库名为easyjf,密码为easyjf,用户名为root。
easyjf-dbo.xml文件的全部内容:
<?xml version="1.0" encoding="utf-8"?>
<easyjf-dbo>
<datasource name="bbs" type="org.apache.commons.dbcp.basicdatasource">
<!--ms sqlserver -->
<property name="easydbo.connection.driver_class">com.microsoft.jdbc.sqlserver.sqlserverdriver</property>
<property name="easydbo.connection.password">easyjf</property>
<property name="easydbo.connection.url">jdbc:microsoft:sqlserver://localhost:1433;databasename=easyjf;selectmethod=cursor</property>
<property name="easydbo.connection.username">root</property>
<property name="easydbo.dialect">com.easyjf.dbo.sql.mssqlserverquery</property>
<!-- mysql-->
<!--
<property name="easydbo.connection.driver_class">org.gjt.mm.mysql.driver</property>
<property name="easydbo.connection.password">easyjf</property>
<property name="easydbo.connection.url">jdbc:mysql://127.0.0.1:3306/easyjf</property>
<property name="easydbo.connection.username">root</property>
<property name="easydbo.dialect">com.easyjf.dbo.sql.mysqlquery</property>
-->
<!--通过jdbc-odbc网桥连接-->
<!--sun.jdbc.odbc.jdbcodbcdriver-->
<!-- jdbc:odbc:driver=={microsoft access driver (*.mdb)};dbq=access/dbaccess.mdb-->
<!--jdbc:odbc:drivername-->
<property name="easydbo.optimize">true</property>
<property name="esyydbo.show_sql">true</property>
</datasource>
<tables>
<class name="com.easyjf.dbo.example.testmessage" table="message" schema="dbo" catalog="test">
<id name="cid" type="string">
<column name="cid" length="16" not-null="true" />
<generator class="com.easyjf.dbo.randomidgenerator" />
</id>
<property name="title" type="string">
<column name="title" length="50" not-null="true" />
</property>
<property name="content1" type="string">
<column name="content" />
</property>
<property name="status" type="integer">
<column name="status" length="" />
</property>
<property name="inputuser" type="string">
<column name="inputuser" length="23" />
</property>
<property name="inputtime" type="date">
<column name="inputtime" length="8" />
</property>
</class>
</tables>
<cache name="easydbo" storepolicy="lru" maxelements="1000" expiredinterval="1000" type="com.easyjf.cache.easycache" />
</easyjf-dbo>
二、easydbo中数据源的配置说明
接下来,我们重点看看有关数据源datasource的说明。
数据源是easydbo执行数据库操作的时候,必须使用到的jdbc数据源。
<datasource name="bbs" type="org.apache.commons.dbcp.basicdatasource">
easydbo考虑到项目中有时候需要连接几个不同的数据库的情况,因此一个数据库定义为一个datasource,每一个datasource有一个名字name,同时有一个表示数据源类型的type,默认的情况下都是使用的第一个datasource作为缺省数据源。而使用apache的数据库连接池dbcp.basicdatasource作为默认连接池。
这一行在我们当前提供的所有示例中都可以不用修改。
下面来看datasource中的各property节点的配置说明:
<property name="easydbo.connection.driver_class">表示jdbc数据库驱动类,com.microsoft.jdbc.sqlserver.sqlserverdriver或者net.sourceforge.jtds.jdbc.driver,而my sql的驱动为:org.gjt.mm.mysql.driver。
<property name="easydbo.connection.url">表示数据源的具体的访问地址,每一种驱动对应的写法不同,请参照相应的预支说明。如ms sql的jdbc:microsoft:sqlserver://localhost:1433;databasename=easyjf;selectmethod=cursor,或者用jtds作驱动的时候jdbc:jtds:sqlserver://127.0.0.1:1433;databasename=easyjf;selectmethod=cursor,my sql对应的url写法为:jdbc:mysql://127.0.0.1:3306/easyjf
<property name="easydbo.connection.username">节点表示数据库的访问用户名
<property name="easydbo.connection.password">节点表示数据库访问密码
上面四个属性都是jdbc连接数据库共同所需的,由各个驱动程序共同规范的。
<property name="easydbo.dialect">节点表示easydbo的数据库方言,这个是easydbo专用的。当前提供的三种方言,可以支持4种数据库类型。其中com.easyjf.dbo.sql.mssqlserverquery为ms sql及access皆可使用;而com.easyjf.dbo.sql.mysqlquery适合my sql使用;com.easyjf.dbo.sql.oraclequery适合oracle数据库使用。
<property name="easydbo.optimize">节点表示是否需要进行数据优化,这个可以随便设置。
<property name="esyydbo.show_sql">节点表示是否需要在日志中输出具体的sql语句,若为true则会输出sql语句,若为false则不输出。输出sql语句对于调试、观察程序的运行比较有用。正式发布的程序的时候为了提高效率,可以设置成为false。
使用jndi方式获取数据源
很多时候,我们的数据源是存放在容器中的,如weblogic,这时一般是通过jndi的方式获得数据源,而数据源管理则交给具体的容器负责。若要通过使用jndi方式获取数据源,则上面的<property name="easydbo.connection.driver_class">,<property name="easydbo.connection.url">两个属性不需要设置,而是通过<property name="easydbo.connection.jndifactory">,<property name="easydbo.connection.jndi">两个属性来设置。
三、easyjf-dbo.xml文件中的其它设置
在easyjf-dbo.xml文件中,除了配置数据源以外,还可以配置具体的对象关系表映射,其中<tables><class>这一部分就是供大家直接通过配置文件的方式配置对象关系映射的,由于我们当前示例都是直接使用实现iobject接口方式写的po,因此只有example中的testmessage.java演示了通过配置文件方式实现对象关系映射,这一部分的内容我们将会在以后重点讲述。
四、关于cache的配置
在easyjf-dbo.xml文件中,有<cache>这个节点,以后可通过他来配置数据库的缓存。当前的缓存是通过easyjf-cache.xml文件来配置的。
easyjf-cache.xml文件的全部内容如下:
<?xml version="1.0" encoding="utf-8"?>
<easyjf-cache>
<!-- storepolicy主要有lru、lfu、fifo三种-->
<cache name="easydbo" storepolicy="lru" maxelements="1000" expiredinterval="1000" type="com.easyjf.cache.easycache"/>
</easyjf-cache>
若要使用cache功能,则在与easyjf-dbo.xml文件所在的目录中建一个easyjf-cache.xml文件,内容如上即可。
关于cache,我们会在以后作详细的介绍。
闽公网安备 35060202000074号