JdbcConnectionFactory 配置明细,该factory提供 java.sql.Connection 对象
该配置仅仅用于amoeba for aladdin 应用
JdbcConnectionFactory 该factory提供 java.sql.Connection 对象 。
1、属性Driver: 也就是jdbc 驱动类,一般数据库都支持jdbc driver。以方便使用java语言作为开发工具的使用者。
如果配置了相应数据库的Driver,则必须将类库放到lib下面,才能被amoeba装载
2、属性url :该jdbc数据库连接的有效连接地址,诸如mysql的 url(jdbc:mysql://127.0.0.1:3306/test)
3、properties:这个属性是jdbc Driver的属性,比如 user、password还有一些driver特定的属性。
4、com.meidusa.amoeba.jdbc.DriverWrapper 如果你的应用程序跟数据库之间需要特殊的编码转换,那么这个用于处理客户端、与数据库编码相当灵活。
这个类有2个属性:
clientEncoding –客户端往TCP包写入字节码的编码
serverEncoding –数据库返回字节码数据的编码
<!– PoolableObjectFactory实现类 –>
<factoryConfig class=”com.meidusa.amoeba.jdbc.JdbcConnectionFactory”>
<!– driver name, pls put mysql jdbc driver into lib folder –>
<property name=”driver”>
<bean class=”com.mysql.jdbc.Driver”/>
</property>
<!–
<property name=”driver”>
<bean class=”com.meidusa.amoeba.jdbc.DriverWrapper”>
<property name=”driver”>
<bean class=”oracle.jdbc.driver.OracleDriver”/>
</property>
<property name=”clientEncoding”>gbk</property>
<property name=”serverEncoding”>ISO_8859_1</property>
</bean>
</property>
–>
<!– jdbc url. –>
<property name=”url”>jdbc:mysql://127.0.0.1:3306/test</property>
<!– url –>
<property name=”properties”>
<bean class=”java.util.Properties”>
<!– 用于登陆mysql的用户名 –>
<property name=”user”>root</property>
<!– for mysql driver –>
<property name=”characterEncoding”>utf8</property>
<!– 用于登陆mysql的密码 –>
<!–
<property name=”password”>password</property>
–>
</bean>
</property>
</factoryConfig>
-EOF-
java 连接 amoeba ,当更新数据的时候有中文存在会出现异常,请问如何解决此问题。按照上面JdbcConnectionFactory 配置,连接不到数据库,请问有没完整的配置说明。最好有一个java连接的demo.
根据你以上配置出现如下异常:
java.lang.ClassCastException: com.meidusa.amoeba.jdbc.PoolableJdbcConnection cannot be cast to com.meidusa.amoeba.mysql.net.MysqlServerConnection
at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:765)
at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:76)
at com.meidusa.amoeba.mysql.net.MysqlClientConnection$2$1.run(MysqlClientConnection.java:140)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
2009-01-03 23:56:49,843 WARN handler.CommandMessageHandler - session was killed!!
java.lang.Exception
at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.endSession(CommandMessageHandler.java:804)
at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:79)
at com.meidusa.amoeba.mysql.net.MysqlClientConnection$2$1.run(MysqlClientConnection.java:140)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
2009-01-03 23:56:49,843 ERROR handler.MySqlCommandDispatcher - messageDispate error
java.lang.ClassCastException: com.meidusa.amoeba.jdbc.PoolableJdbcConnection cannot be cast to com.meidusa.amoeba.mysql.net.MysqlServerConnection
at com.meidusa.amoeba.mysql.handler.CommandMessageHandler.startSession(CommandMessageHandler.java:765)
at com.meidusa.amoeba.mysql.handler.MySqlCommandDispatcher.handleMessage(MySqlCommandDispatcher.java:76)
at com.meidusa.amoeba.mysql.net.MysqlClientConnection$2$1.run(MysqlClientConnection.java:140)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)