MyBatis基于注解形式的开发1

MyBatis
	基于注解形式的开发

	xml文件
		configuration--配置信息  driver  url  username  password
		mapper-----SQL语句   <insert> <delete>

		两个好处
		1.写完程序后还可更改(执行项目时候 修改几乎不会产生)
		2.一个ma	pper文件  StudentMapper.xml  语句(CURD)在一起(语句在一起便于管理)
		不好的地方
		1.文件本身的结构比较复杂
		2.文件中的SQL与DAO方法不在一起------开发者觉得写起来更方便的

	注解方式
		为了弥补XML文件的不好方式
		1.写在方法上面(SQL+DAO方法 绑定在一起 开发者写起来更加方便)
		2.注解通常就一行(比原来的xml形式简单 一对多 一对一 多对多关系也不是很简单)
		需要注意
		注解本身我们是调用不到的----底层需要通过反射技术来解析
		如果想要使用注解方式执行----必须依托于Mapper代理
		
		DAO类是普通的  sqlSession对象属性  +  mapper.xml
		#DAO类是接口    不需要对象属性	   +  mapper.xml
		#DAO类是接口                        +  注解形式  

		
		@Param("")
		@Insert("")
		@Delete("")
		@Update("")
	
		@Select("")

public interface StudentDao {

    //设计一个删除单条记录的方法
    @Delete("delete from student where sid = #{sid}")
    void delete(Integer sid);
    //方法的底层有一个代理  帮我们执行这个方法该做的事情
    //分析方法          方法名字delete    方法参数sid
    //分析mapper.xml   类名字dao.StudentDao---namespace
    //                方法名字delete----------id
    //                mapper的<delete>-------SQL语句
    //                语句上面有参数#{key}-----利用方法传递的sid参数进行匹配
    //          代理对象会根据标签<delete>  调用原来sqlSession对象中的delete方法

    //类方法名和sql之间的对应关系  找到sql  知道sql上面的信息  执行哪个方法
    //如果将原有的xml文件删掉 改成注解的形式
    //1.类 方法名和sql对应关系就简单了
    //2.注解中的信息肯定需要写sql
    //3.执行底层的哪个对应方法-----注解名字类似以前的标签名  为了找寻底层方法用的
    //      Insert Delete Update Select

    @Insert("insert into student value (#{sid},#{sname},#{ssex},#{sage})")
    //public void insert(Student student);//一个domain对象 一个基本值(int Integer String)
    //public void insert(Map map);

    public void insert(@Param("sid")Integer sid,@Param("sname")String sname,@Param("ssex")String ssex,@Param("sage")Integer sage);
    //如果dao方法的参数不是包装成一个对象
    //  1.sql中将原来的#{key}---#{param1}  #{param2}
    //  2.方法的每一个参数前面 添加@Param("key")  注解的key与SQL#{key} 对应

    @Update("update student set sname=#{sname},ssex=#{ssex},sage=#{sage} where sid=#{sid}")
    public void update(Student student);


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值