Mybatis面向接口编程的两个一致
*映射文件的namespa要和mapper接口的全类名保持一致
*映射文件中sql语句中的id要和mapper接口中的方法名一致
MyBatis的入门操作
mybatis需要导入相关依赖(jar包)
这里使用maven导入相关依赖
<dependencies>
//mysql驱动
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
//mybatis的jar包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.5</version>
</dependency>
//单元测试
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>
一、创建mybatis的核心配置文件
<?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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="驱动"/>
<property name="url" value="数据库地址"/>
<property name="username" value="用户名"/>
<property name="password" value="密码"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="映射文件路径"/>
</mappers>
</configuration>
二、创建一个实例类,写出set和get方法,有参构造和无参构造。
三、创建一个mapper接口
public interface UserMapper {
//写一个方法
int insertUser();
}
四、创建映射文件,映射文件的名字尽量与mapper接口名保持一致。
<?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">
<mapper namespace="mapper接口的全路径一致">
<!--写sql语句-->
<!-- id和mapper接口里写的方法名一致 -->
<insert id="insertUser">
insert into user value (null,"tom")
</insert>
</mapper>
五、创建一个测试类
//使用了junit单元测试
/**
* sqlSession默认是不自动提交事务,需要手动提交,
* 如果需要自动提交则需要将sessionFactory.openSession设置为true。
* sessionFactory.openSession(true)
*/
@Test
public void UserTest() throws IOException {
//加载核心配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
//获取SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sqlSessionFactory = new SqlSessionFactoryBuilder();
//获取SqlSessionFactory
SqlSessionFactory sessionFactory = sqlSessionFactory.build(inputStream);
//获取sqlSession
SqlSession sqlSession = sessionFactory.openSession();
//获取mapper接口
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//调用方法,返回受影响的行数
int result = mapper.insertUser();
//提交事务
sqlSession.commit();
System.out.println("插入成功");
System.out.println("受影响的行数为"+result+"行");
}