一、Spring
1、bean注入失败
严重: Allocate exception for servlet [springMVC]
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean found for dependency [com.zhou.dao.ChinaMapper]: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
检查是不是Listener有没有在web.xml中配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
二、Mybatis
1、使用了tk.mybatis
在mapper扫描时也要使用tk.mybatis提供的MapperScannerConfigurer
tk.mybatis.spring.mapper.MapperScannerConfigurer
<!-- 通过扫描某一个包下的所有mapper接口 进行创建代理对象 -->
<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 遵循:mapper.xml文件和mapper.java文件 同名并且在同一个目录 每一个mapper接口的id 就是mapper接口名字的
把首字母小写 -->
<property name="basePackage" value="com.zhou.dao" />
<property name="sqlSessionFactoryBeanName"
value="sqlSessionFactory" />
</bean>
2、generator反向生成工具生成了数据库中所有的表
这种问题的产生一般是用了比较高的mysql数据库java驱动版本如8+,可以使用5.的版本可以解决问题;若一定要使用新的版本可以如下解决:
在生成工具的xml配置中加入如下配置:
<!-- jdbc配置 -->
<jdbcConnection driverClass="${jdbc.driver}"
connectionURL="${jdbc.url}" userId="${jdbc.user}"
password="${jdbc.password}">
//加入此配置,value="true" 可以使反向生成只针对指定数据库,否则是mysql中的所有数据库和表
<property name="nullCatalogMeansCurrent" value="true"></property>
</jdbcConnection>
3、insert之后获取自增主键
<insert id="insertOne" parameterType="com.zhou.entity.Student">
insert into student values(#{id},#{name},#{sex},#{birth},#{department},#{address})
<selectKey resultType="int" keyProperty="id" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
</insert>