zoukankan      html  css  js  c++  java
  • MyBatis-----2.通过映射接口实现CRUD

    定义sql映射接口

    1.创建映射接口UsersDao

     2.在接口文件中加入抽象方法,注意,这里的方法名称要和需要映射的xml文件中对应标签的ID相同

    public interface UsersDao {
        /**
         * 查询
         * @return
         */
        public Users getUser(int id);
        /**
         * 添加
         * @param user
         */
        public void addUser(Users user);
        /**
         *更新
         * @param user
         */
        public void updateUser(Users user);
        /**
         * 删除
         * @param id
         */
        public void deleteUser(int id);
        /**
         * 查询所有
         * @return
         */
        public List<Users> selectAll();
        /**
         * 
         * @param min
         * @param max
         * @return
         */
        public List<Users> selectByAge(@Param("min") int min,@Param("max") int max);
    }

    3.添加UserMapper.xml文件内容

    <mapper namespace="com.zhiyou.zyl.dao.UsersDao">     
    <!-- 这里的namespace必须为映射接口的路径-->  
        <select id="getUser" parameterType="int" resultType="com.zhiyou.zyl.bean.Users">
            select * from users where id=#{id}
        </select>
        
        <insert id="addUser" parameterType="com.zhiyou.zyl.bean.Users">
            insert into users(name,age) values(#{name},#{age})
        </insert>
        
        <update id="updateUser" parameterType="com.zhiyou.zyl.bean.Users">
            update users set name=#{name},age=#{age} where id=#{id}
        </update>
        
        <delete id="deleteUser" parameterType="int">
            delete from users where id=#{id}
        </delete>
        
        <select id="selectAll" resultType="com.zhiyou.zyl.bean.Users">
            select * from users
        </select>
        
        <select id="selectByAge" resultType="com.zhiyou.zyl.bean.Users">
            <![CDATA[select * from users where age>=#{min} and age<=#{max}]]>
        </select>
    </mapper>

    4.添加测试类,通过session的getMapper方法得到UsersDao的实例对象,在通过对象调用方法

    class UsersTest {
    
        static SqlSession session =null;
        static UsersDao ud;
        @BeforeAll
        static void setUpBeforeClass() throws Exception {
            String resource = "conf.xml";
            //加载 mybatis 的配置文件(它也加载关联的映射文件)
            Reader reader = Resources.getResourceAsReader(resource);
            //构建 sqlSession 的工厂
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
            //创建能执行映射文件中 sql 的 sqlSession
            session = sessionFactory.openSession();  
         //得到UsersDao实例 ud
    =session.getMapper(UsersDao.class); } @AfterAll static void tearDownAfterClass() throws Exception { //提交 session.commit(); } @Test void testSelectById() { Users user=ud.getUser(1); //直接调用UsersDao的方法 System.out.println(user); } @Test void testAddUser() { ud.addUser(new Users("张三",18)); } @Test void testUpdateUser() { ud.updateUser(new Users(1,"123",14)); } @Test void testDeleteUser() { ud.deleteUser(4); } @Test void testSelectAll() { List<Users> row=ud.selectAll(); System.out.println(row); } @Test void testSelectByAge() { List<Users> row=ud.selectByAge(0, 100); System.out.println(row); } }
  • 相关阅读:
    webpack + vue 向本地后端发送http请求跨域问题
    用FileReader对象从本地读取文件
    oninput与onchange比较
    height: 100% 无效问题
    关于html布局
    圣诞节给自己的犒劳
    django学习之——模版
    django学习之——我的 Hello World
    django学习之——创建项目
    python and pycharm and django 环境配置
  • 原文地址:https://www.cnblogs.com/zyl187110/p/11442104.html
Copyright © 2011-2022 走看看