中文文档 https://mybatis.org/mybatis-3/zh/index.html
1.引入Maven依赖
<!-- Mybatis核心 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- junit测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
2.编写核心配置文件mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--MyBatis核心配置文件中,标签的顺序:
properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,
plugins?,environments?,databaseIdProvider?,mappers?-->
<!--引入properties文件,可以将数据源信息维护到配置文件中,配置文件中的数据不要有空格-->
<properties resource="jdbc.properties" />
<settings>
<!--自动将下划线转为驼峰-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!--设置类型别名-->
<typeAliases>
<!--typeAlias:设置某个类型的别名
type:设置需要设置别名的类型
alias:设置某个类型的别名,若不设置该属性,那么该类型拥有默认的别名,即类名且不区分大小写-->
<!--<typeAlias type="com.atguigu.mybatis.pojo.User"></typeAlias>-->
<!--以包为单位,将包下所有的类型设置默认的类型别名,即类名且不区分大小写-->
<package name="com.liliu.mybatis.pojo"/>
</typeAliases>
<!--环境,配置链接数据库的环境,可以设置多个environment-->
<environments default="development"><!--默认使用哪个环境-->
<environment id="development">
<!--设置事务管理方式,JDBC/MANAGED
JDBC:表示当前环境中,执行SQL时,使用的是JDBC中原生的事务管理方式,事务的提交或回滚需要手动处理,例如sqlSession.commit();
MANAGED:被管理,例如Spring-->
<transactionManager type="JDBC"/>
<!--数据源,POOLED/UNPOOLED/JNDI
POOLED:表示使用数据库连接池缓存数据库连接
UNPOOLED:表示不使用数据库连接池
JNDI:表示使用上下文中的数据源-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/><!--设置连接数据库的驱动-->
<property name="url" value="${jdbc.url}"/><!--设置连接数据库的连接地址-->
<property name="username" value="${jdbc.username}"/><!--设置连接数据库的用户名-->
<property name="password" value="${jdbc.password}"/><!--设置连接数据库的密码-->
</dataSource>
</environment>
<environment id="prod">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--映射mybatis的映射文件-->
<mappers>
<!--单个文件写法-->
<!--<mapper resource="com/liliu/mybatis/mapper/SysUserMapper.xml"/>-->
<!--包方式的写法 要求:
1、mapper接口所在的包要和映射文件所在的包一致 2、mapper接口要和映射文件的名字一致-->
<package name="com.liliu.mybatis.mapper"/>
</mappers>
</configuration>
3.样例
@Test
public void test() throws IOException {
//读取核心配置文件信息
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
//创建sqlsessionfactory
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
//true为开启自动提交事务
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//sqlSession通过代理模式创建SysUserMapper接口类的实现类:SysUserMapper接口->SysUserMapper.xml->SysUserMapper实现类
//SysUserMapper sysUserMapper = sqlSession.getMapper(SysUserMapper.class);
//sysUserMapper.insertUser();
//提供sql以及的唯一标识找到sql并执行,唯一标识是namespace.sqlId
int result = sqlSession.delete("com.liliu.mybatis.mapper.SysUserMapper.delUser");
//如果sqlSession没有开启自动提交,需要手动提交事务
//sqlSession.commit();
sqlSession.close();
}