1.自定义别名的两种设置
在mybatis中使用parameterType或者resultType必须写全限定名。但我们可以使用系统别名或自定义别名的方式来简化书写
在mybatis配置文件中
<typeAliases>
<!--方式1:声明单个别名 使用时忽略大小写-->
<!-- <typeAlias type="com.wgz.entity.MiddleStudent" alias="middleStudent"></typeAlias>-->
<!--方式2:扫描包声明别名
为包下的所有实体类创建别名,即类名,且不区分大小写
如:student ,StuDent
-->
<package name="com.wgz.entity"/>
</typeAliases>
使用
<select id="findStudentListByName" parameterType="string" resultType="Student">
select * from student_tb where name like '%${value}%'
</select>
- 当sql 语句需要参数 时,可以指定对应参数类型 parameter(也可以不写,无影响),
- 当sql语句是查询时需要指定resultType
- 增删改返回的的时影响到的行数不需要指定
2.系统别名
在mybatis中TypeAliasRegistry已经为我们配置的默认别名
registerAlias("string", String.class);
registerAlias("byte", Byte.class);
registerAlias("long", Long.class);
registerAlias("short", Short.class);
registerAlias("int", Integer.class);
registerAlias("integer", Integer.class);
registerAlias("double", Double.class);
registerAlias("float", Float.class);
registerAlias("boolean", Boolean.class);
registerAlias("byte[]", Byte[].class);
registerAlias("long[]", Long[].class);
registerAlias("short[]", Short[].class);
registerAlias("int[]", Integer[].class);
registerAlias("integer[]", Integer[].class);
registerAlias("double[]", Double[].class);
registerAlias("float[]", Float[].class);
registerAlias("boolean[]", Boolean[].class);
registerAlias("_byte", byte.class);
registerAlias("_long", long.class);
registerAlias("_short", short.class);
registerAlias("_int", int.class);
registerAlias("_integer", int.class);
registerAlias("_double", double.class);
registerAlias("_float", float.class);
registerAlias("_boolean", boolean.class);
registerAlias("_byte[]", byte[].class);
registerAlias("_long[]", long[].class);
registerAlias("_short[]", short[].class);
registerAlias("_int[]", int[].class);
registerAlias("_integer[]", int[].class);
registerAlias("_double[]", double[].class);
registerAlias("_float[]", float[].class);
registerAlias("_boolean[]", boolean[].class);
registerAlias("date", Date.class);
registerAlias("decimal", BigDecimal.class);
registerAlias("bigdecimal", BigDecimal.class);
registerAlias("biginteger", BigInteger.class);
registerAlias("object", Object.class);
registerAlias("date[]", Date[].class);
registerAlias("decimal[]", BigDecimal[].class);
registerAlias("bigdecimal[]", BigDecimal[].class);
registerAlias("biginteger[]", BigInteger[].class);
registerAlias("object[]", Object[].class);
registerAlias("map", Map.class);
registerAlias("hashmap", HashMap.class);
registerAlias("list", List.class);
registerAlias("arraylist", ArrayList.class);
registerAlias("collection", Collection.class);
registerAlias("iterator", Iterator.class);
registerAlias("ResultSet", ResultSet.class);
3.开启驼峰映射
驼峰映射,就是将满足sql下划线的标准写法字段自动转换为满足java命名规则的实体属性,不需要用resultMap自己建立映射关系。
如user数据表字段 : u_id , u_name,u_sex;
会自动转换为User类属性匹配的字段:uId,uName,uSex;
<!--
开启驼峰写法 自动将数据库表字段 s_address 映射为Java属性 sAddress
<setting name="mapUnderscoreToCamelCase" value="true"/>
-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
3.mybatis配置文件内容和顺序,必须为以下顺序,否则会出现错误
<configuration><!--配置-->
<properties/><!--属性-->
<settings/><!--设置-->
<typeAliases/><!--类型别名-->
<typeHandlers/><!--类型处理器-->
<objectFactory/><!--对象工厂-->
<plugins/><!--插件-->
<environments><!--配置环境-->
<environment><!--环境变量-->
<transactionManager/><!--事务管理器-->
<dataSource/><!--数据源-->
</environment>
</environments>
<databaseidProvider/><!--数据库厂商标识-->
<mappers/><!--映射器-->
</configuration>