spring mvc中控制层怎么写数据库添加数据 j2ee

spring mvc中控制层怎么写数据库添加数据 j2ee,第1张

通过数据源与数据库建立连接之后,我们就要实际访问数据库了,而最基本的方式就是使用JDBC,现在我们就来看一看Spring如何让使用简单的JDBC更加简便。 Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。

由于业务需要连接多个数据源,在进行配置的过程中遇到了一些坑,在此做一下记录和分享。

jdbc.properties文件中多个数据源的基本信息:

在applicationContext.xml文件中对数据源进行配置:

在applicationContext.xml文件中配置mybatisSqlSessionFactoryBean:

在applicationContext.xml文件中配置SqlSessionTemplate:

在applicationContext.xml文件中配置mybatis mapper接口,扫描所有dao:

如果是按照以上的配置的,应该是可以成功的。

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误

具体报错信息:

可以看出有2个会发生该异常的情况:

mappedStatements为{} (跟踪debug发现,我出现这里为空)

containsKey(statementName),没有找到

mappedStatements为空的原因是由于在spring容器启动时,会解析spring配置文件,这时将去加载资源文件,解析并以key,value的形式缓存在mappedStatements中。而在实际情况下,发现打包时*Mapper.xml并没有自动复制到class输出目录的mapper类包下。从而导致mappedStatements为空。

Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上。

按以下步骤一一执行:

1、检查xml文件所在的package名称是否和interface对应的package名称一一对应

2、检查xml文件的namespace是否和xml文件的package名称一一对应

3、检查函数名称能否对应上

4、去掉xml文件中的中文注释

5、随意在xml文件中加一个空格或者空行然后保存

6、路径问题

在使用IDEA开发时,如果打包时*Mapper.xml没有自动复制到class输出目录的mapper类包下,则需要在pom文件中添加mybatis加载配置文件的配置!

如下:

通过在pom文件中添加mybatis加载配置文件,完美解决遇到的问题了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11818893.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存