而mysql的对象为再xml中的配置为:
-<mappernamespace="ordermapper"><!--根据id查询得到一个order对象,使用这个查询是查询不到我们想要的结果的,这主要是因为实体类的属性名和数据库的字段名对应不上的原因,因此无法查询出对应的记录--><selectresultType="com.test.bean.order"parameterType="int"id="getorderbyid">select*fromorderswhereorder_id=#{id}</select><!--第一种方法根据id查询得到一个order对象,使用这个查询是可以正常查询到我们想要的结果的,这是因为我们将查询的字段名都起一个和实体类属性名相同的别名,这样实体类的属性名和查询结果中的字段名就可以一一对应上--><selectresultType="com.test.bean.order"parameterType="int"id="getorderbyid2">selectorder_idid,order_nono,order_pricepricefromorderswhereorder_id=#{id}</select><selectparameterType="int"id="getorderbymap"resultMap="orderResultMap">select*fromorderswhereorder_id=#{id}</select>-<resultMapid="orderResultMap"type="com.test.bean.order"><!--用id属性来映射主键字段--><idcolumn="order_id"property="id"/><!--用result属性来映射非主键字段--><resultcolumn="order_no"property="no"/><resultcolumn="order_price"property="price"/></resultMap><!--查询得到男性或女性的数量,如果传入的是0就女性否则是男性--><selectid="getUserCount"statementType="CALLABLE"parameterMap="getUserCountMap">CALLmybits.ges_user_count(?,?)</select><!--parameterMap.put("sexid",0);parameterMap.put("usercount",-1);-->-<parameterMapid="getUserCountMap"type="java.util.Map"><parameterproperty="sexid"jdbcType="INTEGER"mode="IN"/><parameterproperty="usercount"jdbcType="INTEGER"mode="OUT"/></parameterMap></mapper>
test实例(先封装一下)
importjava.io.InputStream;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;publicclassreturnsqlsession{publicstaticSqlSessionFactorygetSqlSessionFactory(){Stringresource="conf.xml";InputStreamin=returnsqlsession.class.getClassLoader().getResourceAsStream(resource);SqlSessionFactoryfactory=newSqlSessionFactoryBuilder().build(in);returnfactory;}publicstaticSqlSessiongetSqlSession(){//返回sqlsessionreturngetSqlSessionFactory().openSession();}/***获取SqlSession*@paramisAutoCommit*true表示创建的SqlSession对象在执行完SQL之后会自动提交事务*false表示创建的SqlSession对象在执行完SQL之后不会自动提交事务,这时就需要我们手动调用sqlSession.commit()提交事务*@returnSqlSession*/publicstaticSqlSessiongetSqlSession(booleanisAutoCommit){returngetSqlSessionFactory().openSession(isAutoCommit);}}importjava.io.IOException;importjava.util.HashMap;importjava.util.Map;importorg.apache.ibatis.session.SqlSession;importcom.test.bean.order;publicclasstest1{publicstaticvoidtestselect1()throwsIOException{SqlSessionsqlsession=returnsqlsession.getsqlsession(true);//Stringstatement="ordermapper.getorderbyid1";//Stringstatement="ordermapper.getorderbyid2";Stringstatement="ordermapper.getorderbymap";orderorder=sqlsession.selectOne(statement,2);sqlsession.close();System.out.println(order);}publicstaticvoidmain(String[]args)throwsIOException{//TODOAuto-generatedmethodstubtestselect1();}}
两种基本的解决方式,如果用到的较少,可以选择第一种,如果用到较多较复杂,可以选择第二种。