搜尋

首頁  >  問答  >  主體

java - spring-mybatis与sybase any where无法执行SQL

大家讲道理大家讲道理2768 天前697

全部回覆(1)我來回復

  • PHPz

    PHPz2017-04-18 10:42:59

    MybatisMapper檔案的映射,如果結果複雜物件需要指定屬性resultMap

    <mapper namespace="com.pis.entity.UserRoleMapper" >
       <resultMap id="BaseResultMap" type="com.pis.entity.UserRole" >
            <id column="id" property="roleId" jdbcType="INTEGER" />
            <result column="rolename" property="roleName" jdbcType="VARCHAR" />
            <result column="note" property="note" jdbcType="VARCHAR" />
      </resultMap>
      <sql id="Base_Column_List" >
        roleid, rolename, note
      </sql>
      <select id="selectByPrimaryKey" resultMap="BaseResultMap"        parameterType="java.lang.Integer" >
        select 
        <include refid="Base_Column_List" />
        from userrole
        where roleid = #{roleid,jdbcType=INTEGER}
      </select>
    </mapper>

    解釋一下其中的幾個屬性值。 標籤內存放的是結果集映射,如果是從<resultMap> 标签内存放的是结果集映射,如果是从javaweb基础学起的话,直接接触jdbc,应该对ResultSet这个比较了解,这里的resultMap指定的就是一个数据库字段column 和 你自己建的 pojo/entity 对象的映射关系。其中标签内的id是用来标识resultMap的,就是代码里的BaseResultMap,可以在下方select标签selectByPrimaryKeyresultMap属性中指定,表示使用这个结果集去接收查询到的结果并映射为UserRole对象。resultMap 标签内的id 是主键对应的映射,result 是其他列的映射。column属性是数据库里字段的名称,propertyUserRole对象中对应的属性名称,jdbcType表示的是数据库中该字段的存储类型。下边的没什么难度,有问题还可以再私信我。另外,能用 mybatis-generatorjavaweb基礎學起的話,直接接觸jdbc

    ,應該對🎜ResultSet🎜這個比較了解,這裡的 resultMap指定的就是一個資料庫欄位column 和你自己建造的🎜pojo/entity🎜 物件的​​對應關係。其中標籤內的id是用來識別resultMap的,就是程式碼裡的BaseResultMap,可以在下方select標籤selectByPrimaryKeyresultMap屬性中指定,表示使用這個結果集去接收查詢到的結果並對應到🎜UserRole🎜物件。 resultMap 標籤內的id 是主鍵對應的映射,result 是其他欄位的映射。 column屬性是資料庫裡欄位的名稱,propertyUserRole物件中對應的屬性名稱,jdbcType表示的是資料庫中該欄位的儲存類型。下邊的沒什麼難度,有問題可以再私訊我。另外,能用 mybatis-generator 產生這些檔案就最好不要在手動寫這些基礎性的程式碼,容易錯誤和遺漏。自行百度🎜mybatis-generator🎜吧🎜

    回覆
    0
  • 取消回覆