目录
1.Mybatis映射关系
1.1一对一映射之resultType
1.2resultMap处理映射关系
2.mybatis核心配置文件
1. properties(属性)
2. settings(设置)
3.typeAliases(类型别名)
4.environments(环境配置)
5.mappers(映射器)
1.Mybatis映射关系
1.1一对一映射之resultType
<!--类的全路径名 包名+类名 com/rocky/mapper/UserMapper.java--><select id="queryUserAll" resultType="com.rocky.pojo.User">select * from user;</select>//因为简化类路径名称了可以写user 不区分大小写<select id="queryUserAll" resultType="userr">select * from user;</select><!--2:简化类的全路径名称 typeAliases类型别名 alias别名如果不设置alias属性,那么默认就是类名 且不区分大小写package name属性:配置包的路径。使用类名并且忽略大小写--><typeAliases> <!-- <typeAlias type="com.rocky.pojo.User"></typeAlias>--><package name="com.rocky.pojo"/></typeAliases>
1.2resultMap处理映射关系
<!--resultMap是专门处理数据列和javaBean字段之间的映射关系的id 指的是resultMap的id type当前的javaBean 将来用里面的字段去映射数据表的列<id> 专门用来映射数据表的id和javaBean字段的映射<result property:JavaBean中的字段 column=列>--><resultMap id="queryAll" type="Employee"><id property="a" column="id"></id><result property="b" column="emp_name"></result><result property="c" column="emp_pwd"></result><result property="d" column="dept_id"></result></resultMap><select id="getEmployeeAll" resultMap="queryAll">select id,emp_name, emp_pwd ,dept_id from employee;</select>
2.mybatis核心配置文件
MyBatis 核心配置文件整体结构
注意:在编写配置是要严格按照以下顺序排列,不然会报错
MyBatis的配置文件中主要包括以下配置:
properties(属性)
settings(设置
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
transactionManager(事务管理器):声明事物管理器dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
1. properties(属性)
加载对应的配置文件
<!--1:引入外部的配置文件--><properties resource="jdbc.properties"></properties>
2. settings(设置)
:配置Mybatis的一些设置,如:log4j日志信息等
<settings><!--name属性里面mybatis提供了一个属性可以让我们将数据表中的列和JavaBean中的字段映射映射规则:去掉数据列的下划线之后的首字母大写mapUnderscoreToCamelCase 忽略下划线并且下划线后的首字母大写。value="true" 打开映射关系--><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
3.typeAliases(类型别名)
:扫描对应包下面的实体类,在xml文件中用小写表示就好
第⼀种⽅式:typeAlias
alias是⼤⼩写不敏感的,type属性:指定给哪个类起别名. alias属性:别名
<typeAliases><typeAlias type="com.hu.pojo.Car" alias="Car"/> </typeAliases>
第⼆种⽅式:package如果⼀个包下的类太多,每个类都要起别名,会导致typeAlias标签配置较多,所以mybatis⽤提供 package的配置⽅式,只需要指定包名,该包下的所有类都⾃动起别名,别名就是简类名。并且别名不 区分⼤⼩写。
<!--2:简化类的全路径名称 typeAliases类型别名 alias别名如果不设置alias属性,那么默认就是类名 且不区分大小写package name属性:配置包的路径。使用类名并且忽略大小写--><typeAliases> <!-- <typeAlias type="com.rocky.pojo.User"></typeAlias>--><package name="com.rocky.pojo"/></typeAliases>
4.environments(环境配置)
:配置数据库环境,可以配置多个,最后生效的为default
<!--配置数据库的环境--><environments default="dev"><!--开发人员去使用--><environment id="dev"><!--数据库事务管理的方式 默认使用JDBC--><transactionManager type="JDBC"/><!--dataSource 数据库连接池 POOLED--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><!--username这个属性默认 是去找环境变量中的username--><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments>
5.mappers(映射器)
:扫描对应包下面的mapper.xml文件
SQL映射⽂件的配置⽅式包括四种:
- resource:从类路径中加载
- url:从指定的全限定资源路径中加载
- class:使⽤映射器接⼝实现类的完全限定类名
- package:将包内的映射器接⼝实现全部注册为映射器
resource:这种⽅式是从类路径中加载配置⽂件,所以这种⽅式要求SQL映射⽂件必须放在resources⽬录下或其⼦ ⽬录下。
<mappers><mapper resource="com/hu/mapper/AuthorMapper.xml"/> </mappers>
url:这种⽅式显然使⽤了绝对路径的⽅式,这种配置对SQL映射⽂件存放的位置没有要求,随意。
<mappers><mapper url="file:///var/mappers/AuthorMapper.xml"/> </mappers>
class:如果使⽤这种⽅式必须满⾜以下条件: SQL映射⽂件和mapper接⼝放在同⼀个⽬录下。 SQL映射⽂件的名字也必须和mapper接⼝名⼀致。
<!-- 使⽤映射器接⼝实现类的完全限定类名 --> <mappers><mapper class="org.mybatis.builder.AuthorMapper"/><mapper class="org.mybatis.builder.BlogMapper"/><mapper class="org.mybatis.builder.PostMapper"/> </mappers>
将CarMapper.xml⽂件移动到和mapper接⼝同⼀个⽬录下: 在resources⽬录下新建:com/powernode/mybatis/mapper【这⾥千万要注意:不能这样新建 com.powernode.mybatis.dao】
将CarMapper.xml⽂件移动到mapper⽬录下 修改mybatis-config.xml⽂件
<mappers><mapper class="com.powernode.mybatis.mapper.CarMapper"/> </mappers>
Package:如果class较多,可以使⽤这种package的⽅式,但前提条件和上⼀种⽅式⼀样。
<mappers> <!-- <mapper resource="com/rocky/mapper/UserMapper.xml"/>--><!--如果你想在mapper节点下面使用package1:在src下面必须有接口实现2:mapper配置文件的路径名称必须和src下面的路径名称一致--><package name="com/rocky/mapper"/></mappers>