zoukankan      html  css  js  c++  java
  • MyBatis单表增删改查--接口实现

      我是用xml实现了单表的增删改查之后才改用接口的,所以我这里就不把那些配置拷贝过来了,其实东西都一样。

    1:接口

      这个更有意思了。把具体的操作写在了注解里面。

    package com.zhao.mapper;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;
    
    import com.zhao.entity.Student;
    public interface StudentMapper {
        @Select(value="select * from student")
        public List<Student> queryStudent();
        @Select(value="select * from student where stu_id=#{stu_id}")
        public Student selectStudentById(int stu_id);
        @Delete(value="delete from student where stu_id=#{stu_id}")
        public void deleteStudentById(int stu_id);
        @Insert(value="insert into student(stu_name,stu_gender) values(#{stu_name},#{stu_gender})")
        public void insertStudent(Student student);
        @Update(value="update student set stu_name=#{stu_name},stu_gender=#{stu_gender} where stu_id=#{stu_id}")
        public void updateStudentById(Student student);
    }

    2:测试代码

      依旧是增删改查,接口实现是session获取接口对象,然后调用接口相应的方法。至于底层的东西 mybatis就帮我们解决了,我们不需要在这里用具体的实现类,具体的实现类也不好用。这样多方法,只写法方法签名,然后把数据表的操作写注解了,直接用就可以了。

    package com.zhao.mapper;
    
    import static org.junit.Assert.*;
    
    import java.io.InputStream;
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Before;
    import org.junit.Test;
    
    import com.zhao.entity.Student;
    import com.zhao.entity.StudentTest;
    
    public class StudentMapperTest {
        private SqlSessionFactory factory;
    
        @Before
        public void before() {
            try {
                /*
                 * 1: Reader reader
                 * =Resources.getResourceAsReader("Configuration.xml"); factory =
                 * new SqlSessionFactoryBuilder().build(reader);
                 */
                // 2:
                InputStream inputStream = StudentTest.class.getClassLoader().getResourceAsStream("Configuration.xml");
                factory = new SqlSessionFactoryBuilder().build(inputStream);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        @Test
        public void testQueryStudent() {
            SqlSession session = factory.openSession();
            try {
                StudentMapper mapper = session.getMapper(StudentMapper.class);
                List<Student> students = mapper.queryStudent();
                for (Student student : students) {
                    System.out.println(student);
                }
                session.commit();
            } finally {
                session.close();
            }
        }
    
        @Test
        public void testSelectStudentById() {
            SqlSession session = factory.openSession();
            try {
                StudentMapper mapper = session.getMapper(StudentMapper.class);
                Student student = mapper.selectStudentById(2);
                System.out.println(student);
                session.commit();
            } finally {
                session.close();
            }
        }
    
        @Test
        public void testDeleteStudentById() {
            SqlSession session = factory.openSession();
            try {
                StudentMapper mapper = session.getMapper(StudentMapper.class);
                mapper.deleteStudentById(2);
                session.commit();
            } finally {
                session.close();
            }
        }
    
        @Test
        public void testInsertStudent() {
            SqlSession session = factory.openSession();
            try {
                StudentMapper mapper = session.getMapper(StudentMapper.class);
                Student student = new Student("zaza", "男");
                mapper.insertStudent(student);
                session.commit();
            } finally {
                session.close();
            }
        }
    
        @Test
        public void testUpdateStudentById() {
            SqlSession session = factory.openSession(true);
            try {
                StudentMapper mapper = session.getMapper(StudentMapper.class);
                Student student = new Student(7,"zaza", "m");
                mapper.updateStudentById(student);
                session.commit();
            } finally {
                session.close();
            }
        }
    }
  • 相关阅读:
    Docker Private Registry
    Dockerfile
    docker存储卷
    392. 判断子序列
    1576. 替换所有的问号
    270. 最接近的二叉搜索树值
    292. Nim 游戏
    680. 验证回文字符串 Ⅱ
    876. 链表的中间结点
    543. 二叉树的直径
  • 原文地址:https://www.cnblogs.com/zhao307/p/5402072.html
Copyright © 2011-2022 走看看