发表于: 2018-01-17 23:40:24

1 514


今天上午往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



返回列表 返回列表
评论

    分享到