一、使用注解后就不需要寫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(); } }