0
私はここで全く新しいです。誰か助けてもらえますか?私の構文は以下の通りです。Mybatisクエリの結果がnullの理由
PO:
package com.cabr.po;
public class InputVAT {
private String dept;
private String period;
private String tax;
private String type;
}
のtoStringおよびget、setメソッドは、ここommitedされています。
<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
私は私が実際に存在しながら、結果がnullである理由私の問題は不思議clearly.I descriptedていたいですデータベース内のデータ。恥をcorrectly.What実際に
<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>
私は自分のデータベース内のデータを保存していない:
また、 '' attrにも言及する必要はなく、ResultMapで十分です –
thx!私は次回に試してみよう! – fuko