Mybatis主要包括核心配置文件(xml文件)、映射文件(xml文件)、实体类、mapper接口。
· 核心配置文件:一般写为命名为mybatis-config.xml,主要的配置信息也是在这里面写的,包括配置数据库,映射文件。书写配置需要按照顺序。
·实体类:至少需要实现无参构造方法、有参构造方法,Get、Set、toString方法。
public class User {
private Integer id;
private String username;
private String password;
private Integer age;
private String gender;
private String email;
public User() {
}
public User(Integer id, String username, String password, Integer age, String gender, String email) {
...
}
public Integer getId() {
...
}
...
...
public Integer getAge() {
...
}
...
...
@Override
public String toString() {
...
}
}
· 映射文件: mapper接口和映射文件要保证两个一致:
1、mapper接口的全类名和映射文件的namespace一致:
<mapper namespace="com.mybatis.mapper.UserMapper">
2、mapper接口中的方法的方法名要和映射文件中的sql的id保持一致
<insert id="insertUser">
insert into t_user values(null,'admin','123456',23,'男','12345@qq.com')
</insert>
·mapper接口:定义了需要使用的方法
public interface UserMapper {
int insertUser();
}
总体使用流程:
首先获取SqlSession对象,这里因为多次使用同样的代码,可以写一个获取方法:
public class SqlSessionUtil {
public static SqlSession getSqlSession(){
SqlSession sqlSession = null;
try {
//获取核心配置文件的输入流
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//获取SqlSessionFactory
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//获取SqlSession对象
sqlSession = sqlSessionFactory.openSession(true);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSession;
}
}
接下来获取UserMapper的代理实现类对象,然后调用方法,最后需要关闭SqlSession。
public class MyBatisTest {
//这里是完整的
@Test
public void testInsert() throws IOException {
//获取核心配置文件的输入流
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//获取SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//获取sql的会话对象SqlSession(不会自动提交事务),是MyBatis提供的操作数据库的对象
//SqlSession sqlSession = sqlSessionFactory.openSession();
//获取sql的会话对象SqlSession(会自动提交事务),是MyBatis提供的操作数据库的对象
SqlSession sqlSession = sqlSessionFactory.openSession(true);
//获取UserMapper的代理实现类对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//调用mapper接口中的方法,实现添加用户信息的功能
int result = mapper.insertUser();
//提供sql以及的唯一标识找到sql并执行,唯一标识是namespace.sqlId
/*int result = sqlSession.insert("com.atguigu.mybatis.mapper.UserMapper.insertUser");*/
System.out.println("结果:"+result);
//提交事务
//sqlSession.commit();
//关闭SqlSession
sqlSession.close();
}
//这里是调用方法简单的
@Test
public void testInsert(){
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser();
sqlSession.close();
}
}