- Myvatis是一个ORM框架,帮助我们进行自定义sql对数据库进行增删改查
- ORM:Object Relationship Mapping
- 对象关系映射,也就是java对象和关系型数据库中表中的记录做映射的一个框架
- 映射:将java对象转化为关系型数据库表中记录,把数据库记录转化为java对象的一个框架
使用Mybatis的动态代理需要满足几个条件
- Mapper.xml配置文件和Mapper接口文件是同名的
- Mapper.xml配置文件和Mapper接口变异之后在同一级的目录之下(建议)
- Mapper.xml配置文件的namespace必须是接口的全限定名称
- Mapper.xml配置文件中标签的id必须和方法名对应
- 方法的返回值类型和标签中的resultType类型要对应(select)
对于之后的开发,如果
1.通过代理工厂,用字节码文件找到了接口的全限定类名+抽象方法名=sql 的坐标, 找到对应的参数类型(最终是建立了一个代理工厂类,类里有成员变量的类对象,以及sqlsession,通过反射获得实现类对象执行的方法,在这之前,要先判断以下)
2.如何确定调用的是select还是dele或者insert
在Mybatis找到SQL语句的坐标之后,会找到这个sql以及对应的标签,根据标签来调用方法
3.如何确定调用selectOne还是selectList
其实这时候Mybatis会去判断方法的返回值是单一值还是集合,如果是单值,就调用selectOne
我记得底层还是调用的selectList只不过返回的是list[0];
4.配制1.maven导入
2.配制文件导入
3.全局配制导入
4.2setting这是Mybatis中极其重要的设置,会改变其运行的行为;可以配制缓存,懒加载等
4.3TypeHandler把jdbc.type和java.type映射起来
4.4environment环境配制
4.5 事务管理器
- JNDI指定目标数据库连接池
5.1简单参数
传入一个值#{任意值}
5.2多参数
因为mybatis不知道传入的参数对应的字段是什么
注解绑定的值,与sql中的值相互绑定;
5.3通过对象传值,不加注解
也就是底层会自己去反射对象的值,然后赋值;(所以这里要注意别名)
注意如果这里使用注解,那么id自增不能为空了,就要注明取值是传入的对象.的属性
#{account.id}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)