查询所有
问题:列的名称和Bean的属性名不一样,导致无法封装查询结果。
解决1()不常用:取别名:
select id, brand_name as brandName,
company_name companyName, ordered,
description, status from tb_brand
解决2:使用ResultMap标签手动映射结果
<resultMap id="brandMap" type="com.itheima.pojo.Brand">
<!--封装主键的值,如果列名和brand的属性名一样,可以不用手动映射-->
<!--<id column="id" property="id"/>-->
<!--封装非主键的值,将brand_name自动的值封装给Brand对象的brandName属性-->
<result column="brand_name" property="brandName"/>
<result column="company_name" property="companyName"/>
</resultMap>
<select id="selectAll" resultMap="brandMap">
select * from tb_brand
</select>
解决3:在mybatis-config.xml核心配置文件中开启驼峰命名自动映射【推荐】
<settings>
<!--开启驼峰命名自动映射-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
查询详情
#{}和KaTeX parse error: Expected 'EOF', got '#' at position 8: {}的区别? #̲{}占位符在程序运行的时候会被…{}不会,${}会直接被值替换。
添加品牌
返回自增的主键id值
XML配置:
<!--
useGeneratedKeys="true" : 表示需要获取自增的主键id值,如果值是false表示不需要。默认值是false。
keyProperty="id":将获取到的主键id值封装到参数对象的id属性中
-->
<insert id="add" useGeneratedKeys="true" keyProperty="id">... ...</insert>
注解配置
@Insert("... ...)")
@Options(useGeneratedKeys = true,keyProperty = "id")
void add