在上一篇博客MyBatis入門01的基礎:
1、定義sql映射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">
<mapper namespace="com.atguigu.day03_mybaits.test2.userMapper">
<!--
CRUD操作
-->
<insert id="addUser" parameterType="User">
insert into users(name, age) values(#{name}, #{age})
</insert>
<delete id="deleteUser" parameterType="int">
delete from users where id=#{id}
</delete>
<update id="updateUser" parameterType="User">
update users set name=#{name},age=#{age} where id=#{id}
</update>
<select id="getUser" parameterType="int" resultType="User">
select * from users where id=#{id}
</select>
<select id="getAllUsers" resultType="User">
select * from users
</select>
</mapper>
2). 在config.xml中註冊這個映射文件:
<mapper resource=" com/atguigu/ibatis/bean/userMapper.xml"/>
3編寫MybatisUtil工具類:
package com.atguigu.day03_mybaits.util;
import java.io.InputStream;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import com.atguigu.day03_mybaits.test1.Test;
public class MybatisUtils {
public static SqlSessionFactory getFactory() {
String resource = "conf.xml";
InputStream is = Test.class.getClassLoader().getResourceAsStream(
resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
return factory;
}
}
4、編寫MyBatis測試類:
package com.atguigu.day03_mybaits.test2;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import com.atguigu.day03_mybaits.bean.User;
import com.atguigu.day03_mybaits.test3.UserMapper;
import com.atguigu.day03_mybaits.util.MybatisUtils;
/*
* 測試: CRUD操作的XML的實現
*/
public class Test2 {
@Test
public void testAdd() {
SqlSessionFactory factory = MybatisUtils.getFactory();
//默認是手動提交的
SqlSession session = factory.openSession();
String statement = "com.atguigu.day03_mybaits.test2.userMapper.addUser";
int insert = session.insert(statement , new User(-1, "KK", 23));
//提交
session.commit();
session.close();
System.out.println(insert);
}
@Test
public void testUpate() {
SqlSessionFactory factory = MybatisUtils.getFactory();
//默認是手動提交的
SqlSession session = factory.openSession(true);
String statement = "com.atguigu.day03_mybaits.test2.userMapper.updateUser";
int update = session.update(statement, new User(4, "KK444", 25));
session.close();
System.out.println(update);
}
@Test
public void testDelete() {
SqlSessionFactory factory = MybatisUtils.getFactory();
//默認是手動提交的
SqlSession session = factory.openSession(true);
String statement = "com.atguigu.day03_mybaits.test2.userMapper.deleteUser";
int delete = session.delete(statement, 4);
session.close();
System.out.println(delete);
}
@Test
public void testGetUser() {
SqlSessionFactory factory = MybatisUtils.getFactory();
//默認是手動提交的
SqlSession session = factory.openSession(true);
String statement = "com.atguigu.day03_mybaits.test2.userMapper.getUser";
User user = session.selectOne(statement, 1);
session.close();
System.out.println(user);
}
@Test
public void testGetAll() {
SqlSessionFactory factory = MybatisUtils.getFactory();
//默認是手動提交的
SqlSession session = factory.openSession(true);
String statement = "com.atguigu.day03_mybaits.test2.userMapper.getAllUsers";
List<User> list = session.selectList(statement);
session.close();
System.out.println(list);
}
@Test
public void testAdd2() {
SqlSessionFactory factory = MybatisUtils.getFactory();
//默認是手動提交的
SqlSession session = factory.openSession(true);
UserMapper mapper = session.getMapper(UserMapper.class);
int add = mapper.add(new User(-1, "SS", 45));
System.out.println(add);
session.close();
}
}