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