resultMap : id:resultMap的唯一标识 type:映射实体类的数据类型 property:实体类里的属性名 column:库表的字段名 <!--id:当前sql的唯一标识 parameterType:输入参数的数据类型 resultType:返回值的数据类型 #{}:用来接受参数的,如果是传递一个参数#{id}内容任意,如果是多个参数就有一定的规则,采用的是预编译的形式 select * from person p where p.id = ? ,安全性很高 -->
<!-- sql语句返回值类型使用resultMap --> <select id="selectPersonById" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select * from person p where p.person_id = #{id} </select> <!-- resultMap:适合使用返回值是自定义实体类的情况 resultType:适合使用返回值的数据类型是非自定义的,即jdk的提供的类型 --> <select id="selectPersonCount" resultType="java.lang.Integer"> select count(*) from person </select>
<select id="selectPersonByIdWithMap" parameterType="java.lang.Integer" resultType="java.util.Map"> select * from person p where p.person_id= #{id} </select>
<select id="selectRole" parameterType="java.lang.Long" resultType="Role" > select * from Role where id =#{id} </select> selectRole的SQL输入参数可以随便给名称,只要是输入参数与压入进去的值类型相同就行了,可以写成: select * from Role where id = #{sfffs} mybatis最终会执行:select * from role where id =resultSet.getLong("role_id"); 其中传入参数的语句可能是: <association property="role" column="role_id" javaType="Role" select="selectRole"/>