发表于: 2018-01-17 23:40:24
1 515
今天上午往B站投了视频:
,搭建了mybatis,运行还是比较好的。
后来加入了Spring,运行报错:java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean
applicationCentext.xml爆红。
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="typeAliasesPackage" value="com.how2java.pojo" />
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:com/how2java/mapper/Category.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.how2java.mapper"/>
然后加载了mybatis.jar包。
只剩下
value="classpath:com/how2java/mapper/Category.xml"/>
这个地方爆红了。运行试一下。
Caused by: java.io.FileNotFoundException: class path resource [com/how2java/mapper/Category.xml] cannot be opened because it does not exist。
删除了前面的路径,只剩下Category.xml.好了,不爆红了
但运行依然报错:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;
在网上搜的大多说是jar包版本不兼容的问题,于是试着升级了上面的mybatis-spring版本,改为1.3.0即可
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
运行,继续报错org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;
升级到最高版本的1.3.1依然报同样错误。看来问题应该出在别的地方。
再继续检查,发现pom里没有Spring,这特么就尴尬了
放进去了Spring,依然报同样的错误,于是继续看有没有mybatis
applicationContext.xml配置:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/how2java</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>1234</value>
</property>
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="typeAliasesPackage" value="com.how2java.pojo" />
<property name="dataSource" ref="dataSource"/>
<property name="mapperLocations" value="classpath:Category.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.how2java.mapper"/>
</bean>
注解:
@RunWith(SpringJUnit4ClassRunner.class)//让测试运行于Spring测试环境
@ContextConfiguration("classpath:applicationContext.xml")
public class MybatisTest {
@Autowired
//可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。
无需再通过传统的在bean的xml文件中进行bean的注入配置
private CategoryMapper categoryMapper;@Test、、指定将会抛出的异常类型,如果没有抛出异常或者抛出的一场不属于我们指定的类型,就会算是测试失败了。
public void testAdd() {
Category category = new Category();
category.setName("new Category");
categoryMapper.add(category);
}
@Test
public void testList() {
System.out.println(categoryMapper);
List<Category> cs=categoryMapper.list();
for (Category c : cs) {
System.out.println(c.getName());
明天的计划:完成mybatis
遇到的问题:mybatis+spring运行出问题,根据网上配置,错误一样,但是修改后,依然不能运行
今天的收获:mybatis删,改,查和注解都完成了,
java任务一开始时间:2017.12.05
预计demo时间:2018.01-05
可能有延期风险,原因是:已经延期了,基础比较差,
禅道链接地址:http://task.ptteng.com/zentao/project-task-501.html
评论