Mybatis Spring Mvc Ошибка: неверная связанная операция (не найдена)JAVA

Программисты JAVA общаются здесь
Anonymous
Mybatis Spring Mvc Ошибка: неверная связанная операция (не найдена)

Сообщение Anonymous »

Вот трассировка стека, когда я пытаюсь выполнить простой запрос, используя mybatis: < /p>

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.my.package.persistence.BrandMapper.getBrand
org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:189)
org.apache.ibatis.binding.MapperMethod.(MapperMethod.java:43)
org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:58)
org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:51)
com.sun.proxy.$Proxy25.getBrand(Unknown Source)
com.my.package.service.BrandService.getBrand(BrandService.java:18)
com.my.package.service.BrandService$$FastClassBySpringCGLIB$$1140c60a.invoke()
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:649)
com.my.package.service.BrandService$$EnhancerBySpringCGLIB$$ea6f89cd.getBrand()
com.my.package.controller.HomeController.getBrands(HomeController.java:28)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
< /code>

Я использую синтаксис javaconfig вместо конфигурации XML. Вот мой PersistenceConfig: < /p>

@Configuration
@EnableTransactionManagement
@MapperScan("com.my.package.persistence")
public class PersistenceConfig {

@Bean
public DataSource dataSource() {

DriverManagerDataSource dataSource = new DriverManagerDataSource();

try {
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql//localhost:3306/db");
dataSource.setUsername("dbuser");
dataSource.setPassword("dbpassword");
} catch (Exception e) {
System.out.print(e);
}
return dataSource;
}

@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}

@Bean
public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
sessionFactory.setTypeAliasesPackage("com.my.package.domain");
return sessionFactory;
}
}
< /code>

Вот мой контроллер: < /p>

@Controller
public class HomeController {

private static Logger logger = LoggerFactory.getLogger(HomeController.class);

@Autowired
private BrandService brandService;

@RequestMapping(value = "/", method = RequestMethod.GET)
public String index() {
return "index";
}

@RequestMapping(value = "/brands", method = RequestMethod.GET)
public String getBrands(Model model) {
model.addAttribute("brands",brandService.getBrand(1));
return "brands";
}

}
< /code>

Вот мой интерфейс Mapper Mapper: < /p>

public interface BrandMapper {

Brand getBrand(int id);

Brand getBrandByName(String name);

List
getBrandList();

void addBrand(Brand brand);

void updateBrand(Brand brand);

void deleteBrand(int id);

}
< /code>

Вот мой брендмаппер xml: < /p>







SELECT id, name
FROM brand
WHERE id = #{id};



SELECT id, name
FROM brand
WHERE name = #{name};



SELECT id, name
FROM brand;



INSERT INTO brand (id, name)
VALUE (#{id}, #{name})



UPDATE brand
SET
name = #{name}
where id = #{id}



DELETE FROM brand
WHERE id = #{id}



< /code>

Я провел некоторые исследования, но ни одно из решений не сработало для меня. Мои файлы XML Mapper находятся под ресурсами в пакете с именем "com.my.package.persistence" < /p>

У кого -нибудь есть идея, что здесь не так? < /p>

заранее спасибо < /p>

Подробнее здесь: https://stackoverflow.com/questions/300 ... -not-found

Вернуться в «JAVA»