无法从应用程序使用 hsqldb 连接,但单元测试工作
Posted
技术标签:
【中文标题】无法从应用程序使用 hsqldb 连接,但单元测试工作【英文标题】:Cannot use hsqldb connection from app, but unit test work 【发布时间】:2013-12-04 15:41:27 【问题描述】:我有一个旨在写入数据库的应用程序。我正在使用 hsqldb 进行开发。
我有一个可以使用insertToDB()
方法写入数据库的单元测试:
@Test
public void writeTest() throws SQLException
LocationImpl li = new LocationImpl();
li.setName("TestName");
li.setState("PA");
li.setLattitude(100);
li.setLongitude(200);
LocationDAOImpl.insertIntoDB(li);
ResultSet rs = LocationDAOImpl.getAllLocations();
int i = 0;
while (rs.next())
i++;
if (i==591) assertEquals("TestName", rs.getString(7));
当我在这里调用它时,我收到以下错误。
java.sql.SQLException: No suitable driver found for jdbc:hsqldb:file:C:/Users/my/hsqldb/dir
:
控制器代码:
@RequestMapping(value = "/addLocation", method = RequestMethod.POST)
public ModelAndView addLocation(@ModelAttribute("LocationImpl")LocationImpl locationImpl,
ModelMap model) throws SQLException
logger.info("Form submission method called");
model.addAttribute("name", locationImpl.getName());
LocationDAOImpl.insertIntoDB(locationImpl);
return new ModelAndView("result", "command", locationImpl);
关于为什么连接从 jUnit 工作,而不是从 webapp 工作的任何想法?谢谢
【问题讨论】:
【参考方案1】:因为 HSQLDB JDBC 驱动程序位于测试类路径中,而不是运行时类路径中。
【讨论】:
以上是关于无法从应用程序使用 hsqldb 连接,但单元测试工作的主要内容,如果未能解决你的问题,请参考以下文章
如何在用于运行 Java 单元测试的内存数据库中模拟 Oracle (+) 外连接表示法?