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

MyBatis使用注解方式实现CRUD操作的更多相关文章

  1. Mybatis基于代理Dao实现CRUD操作 及 Mybatis的参数深入

    Mybatis基于代理Dao实现CRUD操作 使用要求: 1.持久层接口和持久层接口的映射配置必须在相同的包下 2.持久层映射配置中mapper标签的namespace属性取值必须是持久层接口的全限定 ...

  2. MyBatis通过注解方式批量添加、修改、删除

    唯能极于情,故能极于剑 注: 本文转载于:CodeCow · 程序牛 的个人博客:http://www.codecow.cn/ 一.数据库实体DO public class User implemen ...

  3. SpringBoot入门教程(四)MyBatis generator 注解方式和xml方式

    MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...

  4. Springboot整合Mybatis实现级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  5. Spring Boot整合Mybatis完成级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  6. mybatis之注解方式实现

    * 使用mybatis举例,使用注解方式实现* 不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可.* 1.导入 ...

  7. 使用MyBatis对数据库中表实现CRUD操作(二)

    一.使用MyBatis对表实现CRUD操作 1.定义sql映射 userMapper.xml <?xml version="1.0" encoding="UTF-8 ...

  8. Mybatis学习(二) - CRUD操作(增删改查操作)

    直接上例子: 1.项目结构: 2.具体代码及配置 User.java package com.mybatis.bean; public class User { private int id; pri ...

  9. SpringBoot系列-整合Mybatis(注解方式)

    目录 一.常用注解说明 二.实战 三.测试 四.注意事项 上一篇文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介绍下Spring ...

随机推荐

  1. 在centos上安装nodejs

    之前在百度云上买了个服务器,选择的centos 64位系统. 买完之后一顿折腾,今天就来讲讲怎么安装node和npm,刚开始在Google上找了好多方法,都是费时.费力,最后还是没有安装成功,下面将介 ...

  2. .Net Core应用RabbitMQ,及简单封装

    首先,还是万分感谢大家能够抽空来阅读我的文章,万分感谢.今天我带来的是.Net Core中应用RabbitMQ,和简单封装.因为昨天的文章里说了今天要写,所以今天一定要写出来.小编翻阅了很多资料,想要 ...

  3. HttpClient 之 4.x.x版本以上的发送Https请求

    https请求比http更安全 是在http的基础上加了SSL数据加密协议. http的连接很简单,是无状态的:HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比htt ...

  4. PHP字符串操作函数练习20191025

    <?php$arr=["tom","peter","mary"];$str=implode("+",$arr);/ ...

  5. flex 的经典用法

    Document   11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241 25 ...

  6. 从前端角度出发有哪些注意事项有利于SEO?

    1.提高页面加载速度. 能用css解决的不用背景图片,背景图片也尽量压缩大小,可以几个icons放在一个图片上,使用background-position找到需要的图片位置.可以减少HTTP请求数,提 ...

  7. 某个应用的CPU使用率居然达到100%,我该怎么做?(三)

    某个应用的CPU使用率居然达到100%,我该怎么做?(三) 1. 引 你们好,可爱的小伙伴们^_^! 咱们最常用什么指标来描述系统的CPU性能呢?我想你的答案,可能不是平均负载,也不是CPU上下文切换 ...

  8. go语言从例子开始之Example17.指针

    Go 支持 指针,允许在程序中通过引用传递值或者数据结构 Example: package main import "fmt" func zeroval(ival int){ iv ...

  9. html+jquery+php实现文件上传全过程

    本例子采用html+jquery+php实现上传功能 html部分 <!DOCTYPE html> <html> <head> <meta charset=& ...

  10. Python中的try-finally

    >>> try: ... raise KeyboardInterrupt ... finally: ... print('Goodbye, world!') ... Goodbye, ...