SSM系统编写过程中一些相关的小错误-记录ing

先介绍一下我的这个小系统用到的一些需要了解的东西:

语言:java

框架:SSM

数据库:mysql

运行服务器:tomcat

前端用到了一点jquery框架中的ajax

这个小系统的基础功能就是一个日常管理功能,具备登录、注册、填写个人信息等、、

当然,最主要的还是这个系统的一个

特殊应用功能--暂且不说,开始陈列我在写这个系统个过程中遇到的一些问题:

1、maven工程里找不到  maven dependencies所依赖的包,  
  解决方案:因为pom.xml配置文件里有个<dependency-management>的标签  去掉就好了 ,这个标签的意思是管理依赖,通过这个标签可以继承所依赖包的version,但是不能直接将所依赖的包添加到子项目中去。

2、@Autowired注解:如果要注解多个接口的话需要多个@Autowired注解:比如下面这样  e5Mapper、e6Mapper才能同时完成自动注解

	@Autowired
	E6Mapper e6Mapper;
	@Autowired
	E5Mapper e5Mapper;

如果只用一个@Autowired同时注解多个接口,比如下面这样,则在你运行程序后,使用到e5Mapper时就会报错:没有注解

	@Autowired
	E6Mapper e6Mapper;
	E5Mapper e5Mapper;

3、mapper.xml文件报错:Result Maps collection already contains value for com.youngdo.mappers.FlightMapp

er.BaseResultMap

错误原因是因为mapper.xml文件中

有重复的sql语句!!这是因为在使用generator自动生成sql语句时,系统误操作(具体不太清楚)造成的,只需要把重复的删掉就好了。

4、在mapper.xml中写sql语句时要注意一点:select,要特别注意。

我们在查找时经常会使用到这种条件查询语句:

<select id="getMsg" parameterType="java.lang.String"  resultMap="BaseResultMap" >
    select * from table_b 
    where 
    a between #{1} and #{0}
    and
    a is not null
  </select>

注意该语句的输入参数是String,这时如果你数据库表结构中a字段的参数类型为String,假设有一条记录a="0710",而你输入的参数#{0}="700",#{1}="750" ,你想当然 700<0710<750,这条语句可以查到该记录?错了。数据库得到你的输入参数时,是这么想的:"700"<"0710"<"750"?这位数都不一样,不比较!当你把输入参数改为#{0}="0700" ,#{1}="0750"时,数据库就能正常工作了。

然而,当输入参数使Integer类型时,就不用纠结数据库中a字段是什么类型了,数据库会将纯数字的字符串转化为Integer类型,与你的sql语句进行匹配。此时你的输入参数为:#{0}=700 ,  #{1}=750 ,数据库时这么判断的:700<710<750 ,ok,返回给你想要的结果



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值