ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Cai" <peter4...@hotmail.com>
Subject How to get instanceof dao implementation by java code instead of using <dao interface= implementation= > map
Date Fri, 04 Mar 2005 03:27:47 GMT
Hi,

When I used static map in dao.xml with following code, there is no problem!
dao.xml:
<dao interface="org.tri.sadam.persistence.iface.SchemaDao"
implementation="org.tri.sadam.persistence.dao.sqlserver.SQLServerSchemaDao"/
>
Java code:
  SchemaDao home = (SchemaDao)manager.getDao(SchemaDao.class);
  List list = home.getSchemaList();

However, my real case is the implementation class (e.g.
SQLServerSchemaDao,or MySQLSchemaDao) should be determined dynamically in
the java code instead of putting in static xml mapping file. But when I used
the following code:

//  SchemaDao home = (SchemaDao)manager.getDao(SchemaDao.class);
  SchemaDao home = new SQLServerSchemaDao(manager);
  List list = home.getSchemaList();

iBATIS throw the following exception. It look like DaoImpMap cannot get a
DaoImp from this  dao context. How to improve my program fix this problem?
Thanks!


java.lang.NullPointerException
at
com.ibatis.dao.engine.impl.StandardDaoManager.getTransaction(StandardDaoMana
ger.java:108)
at
com.ibatis.dao.client.template.SqlMapDaoTemplate.getSqlMapExecutor(SqlMapDao
Template.java:60)
at
com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForList(SqlMapDaoTempl
ate.java:203)
at
org.tri.sadam.persistence.dao.sqlserver.SQLServerSchemaDao.getSchemaList(SQL
ServerSchemaDao.java:22)
at org.tri.sadam.test.SchemaTest.main(SchemaTest.java:37)

Mime
View raw message