zoukankan      html  css  js  c++  java
  • MyBatis使用注解方式实现CRUD操作

    一、使用注解后就不需要写SysGroupDaoMapper.xml

    只需要在Dao的抽象方法前加上相应的注解就可以。

    package cn.mg39.ssm01.dao;
    
    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 cn.mg39.ssm01.entity.SysPower;
    
    public interface SysPowerDao {
        /**
         * 在方法前加上相应的注解,在注解里面写sql语句
         * @param sysPowerDao
         * @return
         */
        
        @Insert("insert into sys_power(name,remark,descri,action_url,sys_group_id) values(#{name},#{remark},#{descri},#{actionUrl},#{sysGroupId.id})")
        public int insert(SysPowerDao sysPowerDao);
        
        @Delete("delete from sys_power where id = #{id}")
        public int delete(SysPowerDao sysPowerDao);
        
        @Update("update sys_power set name = #{name} ,remark = #{remark},descri=#{descri},action_url=#{actionUrl},sys_group_id=#{sysGroup.id} where id = #{id}")
        public int update(SysPowerDao sysPowerDao);
        
        @Select("select * from sys_power")
        public List<SysPower> selectAll();
        
        @Select("select * from sys_power where id = #{id}")
        public SysPower selectById(SysPowerDao sysPowerDao);
    }

     二、在配置文件中写

        <mappers>
    
            <!--resource是映射文件的路径 -->
            <!-- <mapper resource="cn/mg39/ssm01/dao/SysGroupDaoMapper.xml" />
            <mapper resource="cn/mg39/ssm01/dao/SysPowerDaoMapper.xml" /> -->
            
            <!--类和包使用点  -->
            <mapper class="cn.mg39.ssm01.dao.SysGroupDao"/>
           
        </mappers>

     三、测试方法中一样不需要修改

    package cn.mg39.ssm01.test;
    
    import java.io.IOException;
    import java.io.Reader;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import cn.mg39.ssm01.entity.SysGroup;
    
    /**
     * mybatis的增加测试
     *
     */
    public class InsertSysGroup {
        public static void main(String[] args) throws IOException {
            //1、读取配置文件
            Reader reader = Resources.getResourceAsReader("myBatis-config.xml");
            
            //2、创建sqlSessionFactoryBuilder(工人)
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            
            //3、创建SqlSessionFactory(建厂,将配置文件加入工厂)
            SqlSessionFactory factory = builder.build(reader);
            
            //4、打开SqlSession(通过工厂加工需要的数据)
            SqlSession session = factory.openSession();
            
            //5、操作数据(实例化对象)
            SysGroup sysGroup = new SysGroup();
            //id是自增长,不需要插入
            //插入外键的操作
            //sysGroup.set外键名(new 外键表(数据));
            sysGroup.setName("测试数据的注解方式");
            sysGroup.setRemark("测试数据的注解方式");
            
            //最后存session
            int rows = session.insert("cn.mg39.ssm01.dao.SysGroupDao.insert", sysGroup);
            System.out.println(rows > 0 ? "插入成功":"插入失败");
            
            //6、提交事务(查询全部不需要提交事务)
            session.commit();
            
            //7、关闭sqlSession
            session.close();
        }
    }
  • 相关阅读:
    小项目中建立列表页时间需要注意的
    【腾讯Bugly干货分享】总结一个技术总监的教训和经验
    【腾讯优测干货分享】如何降低App的待机内存(四)——进阶:内存原理
    【腾讯Bugly干货分享】微信终端跨平台组件 Mars 系列
    【腾讯Bugly干货分享】微信终端跨平台组件 mars 系列(二)
    【腾讯Bugly干货分享】程序员们也该知道的事——“期权和股票”
    【腾讯Bugly干货分享】彻底弄懂 Http 缓存机制
    【腾讯优测干货分享】如何降低App的待机内存(三)——探索内存增长的原因
    【腾讯优测干货分享】如何降低App的待机内存(二)——规范测试流程及常见问题
    【腾讯Bugly干货分享】聊聊苹果的Bug
  • 原文地址:https://www.cnblogs.com/zhangzimuzjq/p/12074200.html
Copyright © 2011-2022 走看看