MyBatis案例三:实现数据增删改操作
- 在DeptMapper接口中添加方法:
public int insert(Dept dept);
public int update(Dept dept);
public int delete(int deptno);
- 在DeptMapper.xml文件中添加
<insert id="insert" >
insert into dept
values(#{deptno},#{dname},#{loc})
</insert>
<update id="update">
update dept
set dname = #{dname},loc=#{loc}
where deptno = #{deptno}
</update>
<delete id="delete">
delete from dept where deptno = #{no}
</delete>
3.测试类(注意要调用session.commit()方法)
@Test
public void testInsert() throws IOException{
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession();
DeptMapper deptMapper = session.getMapper(DeptMapper.class);
Dept dept = new Dept(31,"hr","bj");
int n = deptMapper.insert(dept);
session.commit();
System.out.println(n);
}
@Test
public void testUpdate() throws IOException{
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession();
DeptMapper deptMapper = session.getMapper(DeptMapper.class);
Dept dept = new Dept(31,"hr2","dl");
int n = deptMapper.update(dept);
session.commit();
System.out.println(n);
}
@Test
public void testDelete() throws IOException{
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
SqlSession session = factory.openSession();
DeptMapper deptMapper = session.getMapper(DeptMapper.class);
int n = deptMapper.delete(31);
session.commit();
System.out.println(n);
}
4.改进单元测试,提取出setUp()、after()方法
public class DeptMapperTest {
private DeptMapper deptMapper;
private SqlSession session;
@Before
public void setUp() throws IOException{
InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
session = factory.openSession();
deptMapper = session.getMapper(DeptMapper.class);
}
@After
public void after(){
session.close();
}
@Test
public void testGetAll() throws IOException {
deptMapper = session.getMapper(DeptMapper.class);
List<Dept> list = deptMapper.getAll();
System.out.println(list);
}
@Test
public void testGetById() throws IOException{
Dept dept = deptMapper.getById(31);
System.out.println(dept);
}
@Test
public void testInsert() throws IOException{
Dept dept = new Dept(31,"hr","bj");
int n = deptMapper.insert(dept);
session.commit();
System.out.println(n);
}
@Test
public void testUpdate() throws IOException{
Dept dept = new Dept(31,"hr2","dl");
int n = deptMapper.update(dept);
session.commit();
System.out.println(n);
}
@Test
public void testDelete() throws IOException{
DeptMapper deptMapper = session.getMapper(DeptMapper.class);
int n = deptMapper.delete(31);
session.commit();
System.out.println(n);
}
}
5.添加log4j依赖
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
6.在src/main/java下添加log4j属性文件:log4j.properties,重新执行以上单元测试,看控制台输出内容
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n