2016-08-22 1 views
0

Я совершенно новый здесь. Может кто-нибудь, пожалуйста, помогите мне? Мой синтаксис следующий.Почему мой результат запроса mybatis равен нулю?

ПО:

package com.cabr.po; 

public class InputVAT { 

private String dept; 
private String period; 
private String tax; 
private String type; 
} 

ToString и получить, установить методы здесь опущены.

Псевдонимы в конфигурации:

<typeAliases> 
    <package name="com.cabr.po" /> 
</typeAliases> 

DaoImplement:

@Override 
public InputVAT findInputVATByPeriod(String period) { 
    SqlSession sqlSession = sqlSessionFactory.openSession(); 

    InputVAT inputVAT =  sqlSession.selectOne("com.cabr.findInputVATByPeriod", period); 
    return inputVAT; 
} 

картостроитель:

<mapper namespace="com.cabr"> 
<select id="findInputVATByPeriod" parameterType="string" 
    resultType="InputVAT"> 
    SELECT * FROM input_vat WHERE period = #{period} 
</select> 

тест:

@Test 
public void testFindInputVATByPeriod() { 
    InputVATDao dao = new InputVATDaoImpl(sqlSessionFactory); 
    InputVAT inputVAT = dao.findInputVATByPeriod("201607"); 
    System.out.println(inputVAT); 
} 

база данных:

CREATE TABLE `input_vat` (
`id` varchar(32) NOT NULL, 
`dept` varchar(10) NOT NULL, 
`period` varchar(6) NOT NULL, 
`tax` varchar(10) NOT NULL, 
`type` varchar(128) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

Когда я пытаюсь запустить этот тест, консоль показывает:

2016-08-22 15:54:08,282 [main] [com.cabr.findInputVATByPeriod]-[DEBUG] ==> 
Preparing: SELECT * FROM input_vat WHERE period = ? 

2016-08-22 15:54:08,360 [main] [com.cabr.findInputVATByPeriod]-[DEBUG] ==> 
Parameters: 201607(String) 

2016-08-22 15:54:08,462 [main] [com.cabr.findInputVATByPeriod]-[DEBUG] <== 
Total: 0 

null 

Я желаю я descripted мои проблемы clearly.I удивляются, почему результат нулевой, пока есть на самом деле данных в базе данных.

ответ

0

Ну ... Я нашел некоторые ответы, заметив, что это может работать:

<select id="findInputVATByPeriod" parameterType="string" 
resultMap="MyresultMap"> 
SELECT * FROM input_vat WHERE period = #{period} 
</select> 

<ResultMap id="MyresultMap" type="InputVAT"> 
    <id column="id" property="id"> 
</ResultMap> 

На самом деле я не сохранить данные в моей базе данных correctly.What позор!

+0

И не нужно упоминать '' attr также просто ResultMap достаточно –

+0

thx! Я попробую в следующий раз! – fuko