xml文件:
configuration—配置信息 driver url username password
mapper——-SQL语句
** 两个好处:**<br /> 1.写完程序后还可更改(执行项目时候 修改几乎不会产生)<br /> 2.一个mapper文件 StudentMapper.xml 语句(CURD)在一起(语句在一起便于管理)<br />** 不好的地方:**<br /> 1.文件本身的结构比较复杂<br /> 2.文件中的SQL与DAO方法不在一起------开发者觉得写起来更方便的
注解方式:
为了弥补XML文件的不好方式
1.写在方法上面(SQL+DAO方法 绑定在一起 开发者写起来更加方便)
2.注解通常就一行(比原来的xml形式简单 一对多 一对一 多对多关系也不是很简单)
需要注意
注解本身我们是调用不到的——底层需要通过反射技术来解析
如果想要使用注解方式执行——必须依托于Mapper代理
DAO类是普通的 sqlSession对象属性 + mapper.xml
#DAO类是接口 不需要对象属性 + mapper.xml
#DAO类是接口 + 注解形式
参数的处理:
将散花的参数包装成domain对象或者组合成Map集合
1.domain:
@Insert(“insert into student value (#{sid},#{sname},#{ssex},#{sage})”)
public void insert(Student student);//一个domain对象 一个基本值(int Integer String)
2.Map:
@Insert(“insert into student value (#{sid},#{sname},#{ssex},#{sage})”)
public void insert(Map map);
#如果dao方法的参数不是包装成一个对象:
1.sql中将原来的#{key}—-#{param1} #{param2}
@Insert(“insert into student value (#{sid},#{sname},#{ssex},#{sage})”)
public void insert(Param1,Param2,Param3,Param4)
2.方法的每一个参数前面 添加@Param(“key”) 注解的key与SQL#{key} 对应
@Insert(“insert into student value (#{sid},#{sname},#{ssex},#{sage})”)
public void insert(@Param(“sid”)Integer sid,@Param(“sname”)String sname,@Param(“ssex”)String ssex,@Param(“sage”)Integer sage);
强化:同类下静态方法不能直接this,应该直接get获取类,然后再调用该方法
SqlSession类:
