mybatis1_MyBatis框架概述:
1. mybatis核心配置文件:
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--properties配置属性的元素,用于将内部的配置外在化,即通过外部配置来替换内部定义的属性; -->
<!--<properties resource="db.properties"></properties> -->
<!-- settings元素主要用于改变MyBatis运行时的行为,例如开启延迟加载等
mapUnderscoreToCamelCase:是否开启自动驼峰命名规则,默认值是false;
cacheEnabled:开启缓存,默认值是false;
lazyLoadingEnabled: 延迟加载,默认值是false;
-->
<settings>
<!-- 控制台打印SQL语句 -->
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<!--typeAliases元素给Java对象配置一个简短的名字即 配置别名 ;
package子元素:name属性用于指定被定义别名的包,该包中所有的类都被指定别名
typeAlias子元素:
type属性:被定义别名的类的完全限定名,也就是包名+类名
alias属性:自定义别名的值
如果没有指定alias,MyBatis默认会将类名首字母改为小写作为别名
别名不区分大小写,使用时注意重复-->
<typeAliases>
<typeAlias type="com.mybatis.entity.Student" alias="student"/>
</typeAliases>
<!--environments用于对环境进行配置,实际上也是数据源的配置,可以配置多个数据源,即多种数据库 -->
<environments default="development">
<!--environment可以定义多个,id属性用于定义环境的ID值,包含事务管理和数据源的配置信息 -->
<environment id="development">
<!-- transactionManager元素配置事务管理,type属性用于指定事务管理的方式,包括JDBC、MANAGED
JDBC:直接使用JDBC的提交和回滚设置
MANAGED:让容器管理事务,比如spring容器-->
<transactionManager type="JDBC"></transactionManager>
<!--dataSource元素配置数据源,type属性指定使用哪种数据源,包括UNPOOLED、POOLED、JNDI
UNPOOLED:每次请求时都需打开和关闭连接
POOLED:利用数据库连接池,第三方组件
JNDI:应用服务器内置
-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--mappers元素用于指定映射文件的位置 -->
<mappers>
<!-- 通过类路径指定 -->
<mapper resource="com/mybatis/mapper/StudentMapper.xml"/>
<!-- 通过本地路径指定 -->
<!-- <mapper url="D:/..."/> -->
<!-- 通过接口指定 ,注意:接口与映射文件的名称要保持一致,并且在同一目录-->
<!-- <mapper class="接口的完全限定名"/> -->
<!-- 通过包名指定,可以理解为批量引入 -->
<!-- <package name="包名"/> -->
</mappers>
</configuration>
2. mybatis核心xml配置文件:
StudentMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace属性是为了指定唯一命名空间,通常设置成"包名+映射文件名"的形式 -->
<mapper namespace="com.mybatis.mapper.StudentMapper">
<!-- select元素用于映射查询语句,也可以理解为读取数据库中的数据
id:唯一标识符,经常与namespace组合起来使用,如果不唯一,MyBatis会报异常;
parameterType: 传入SQL语句的参数类型(完全限定名或者别名);
resultType:SQL语句执行后返回的类型(完全限定名或者别名);
resultMap: 对resultMap元素进行引用;注意:返回类型时使用resultMap或resultType
timeout: 设置超时参数,单位是秒,如果超时将报异常
-->
<!-- insert元素用于映射插入语句,执行完SQL语句会返回一个表示插入记录数的整数,特有属性如下:
keyProperty:它只针对插入和修改操作,将添加和修改执行SQL语句的返回值赋值给Java对象的某一个属性(主键对应的属性);
keyColumn:它只针对插入和修改操作,设置表的主键位于第几列,当第一列不是主键时需要配置;
useGeneratedKeys:它只针对插入和修改操作,MyBatis使用JDBC的getGeneratedKeys()获取主键,默认是false;
-->
<!-- update元素用于映射修改语句,基本属性与select元素一样,执行完SQL语句会返回一个表示插入记录数的整数,特有属性与insert元素一致 -->
<!-- delete元素用于映射删除语句,基本属性与select元素一样,执行完SQL语句会返回一个表示插入记录数的整数 -->