1. SqlSession会话对象工具类
package com.atguigu.mybatis.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class SqlSessionUtil {
public static SqlSession getSession() {
SqlSession sqlSession=null;
try {
//获取核心配置文件的输入流
InputStream is = Resources.getResourceAsStream("mybatis-cofig.xml");
//获取SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//获取SqlSeesion对象
sqlSession= sqlSessionFactory.openSession(true);
} catch (IOException e) {
throw new RuntimeException(e);
}
return sqlSession;
}
}
2.实体类
3. 数据修改和删除
1)接口
public interface UserMapper {
//修改
void updateUser();
//删除
void deleteUser();
}
2)映射文件
<?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接口全类名保持一致-->
<mapper namespace="com.atguigu.mybatis.mapper.UserMapper">
<!-- void updateUser();-->
<update id="updateUser">
update t_user set username='root' ,password='1234' where id=2
</update>
<!-- void deleteUser();-->
<delete id="deleteUser">
delete from t_user where id=2
</delete>
</mapper>
3)测试类
//修改
@Test
public void testUpdate(){
SqlSession session = SqlSessionUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.updateUser();
session.close();
}
//删除
@Test
public void testDelete(){
SqlSession session = SqlSessionUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.deleteUser();
session.close();
}
4. 查询功能
1)接口
//查询
User getUserById();
//查询所有的用户信息
List<User> getAllUser();
2)映射文件
查询功能:需要把当前查询出来的数据转换为一个java类型设置出来
resultType结果类型:设置当前查询出来的数据转换为java类型(字段名和属性名一致)
resultMap自定义映射:字段名和属性名不一致,需要用到自定义映射,或者一对多,多对一
两种属性不能同时设置。
<?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接口全类名保持一致-->
<mapper namespace="com.atguigu.mybatis.mapper.UserMapper">
<!-- User getUserById();-->
<select id="getUserById" resultType="com.atguigu.mybatis.pojo.User">
select * from t_user where id=1
</select>
<!-- 是先转换实体类类型对象之后,在放到集合里面的,所以结果类型也是User实体类对象-->
<!-- List<User> getAllUser();-->
<select id="getAllUser" resultType="com.atguigu.mybatis.pojo.User">
select * from t_user
</select>
</mapper>
3)测试类
//查询一条记录
@Test
public void testGetUserById(){
SqlSession session = SqlSessionUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
User userById = mapper.getUserById();
System.out.println(userById);
}
//查询所有记录
@Test
public void testGetAllUser(){
SqlSession session = SqlSessionUtil.getSession();
UserMapper mapper = session.getMapper(UserMapper.class);
List<User> allUser = mapper.getAllUser();
for (User user:allUser){
System.out.println(user);
}