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); } }
  • 相关阅读:
    广播系统android安全:flag FLAG_RECEIVER_REGISTERED_ONLY的意义
    产品类大话设计模式——简单工厂模式
    打印数组算法:堆栈与深度优先搜索(迷宫问题)
    函数声明第四章利用函数实现指定的功能
    构造函数调用C++ 类和动态内存分配
    命令密码MySQL忘记密码恢复密码的实现方法
    线程资源PHP源码分析之线程安全模型
    编译类【COCOS2DXLUA 脚本开发之十四】解决自定义CPP类通过TOLUA++ BINDING LUACOCOS2D后编译到ANDROID运行黑屏(没有调用自定义CPP类)的问题!
    语句数据库ubuntu下mysql的常用命令
    eclipse中配置tomcat
  • 原文地址:https://www.cnblogs.com/zyl187110/p/11442104.html
Copyright © 2011-2022 走看看