Mybatis
MyBatis
实现java的MVC思想中 ,数据持久层框架
内部封装了jdbc的功能,省略了jdbc接口操作
替代了dao层,不需要写实现类。
实现动态语句查询。
有一套完善的ormapping的映射机制。
提供了一套二级缓存的机制,使查询效率更快。
做重复查询的时候,它把上回查询的数据从二级缓存中直接拿出来让你用,查询速度更快
问题:会出现脏数据,别人修改之后,还会查询到之前的,修复但是不够完善,有可能有漏洞。
缓存类数据库用于查询
用法
①导入Lib文件夹中所需要的的Jar包
②创建一个config的资源目录,里面放一个log4j的文档,和一个SqlMapConfig的xml文件,里面需要更改驱动名字,url地址,数据库用户名和密码,相当于jdbc工具类里面的创建连接,还需改一个映射类,地址是mapper包下的类
③创建一个mybatiis的普通包,里面创建一个工具类,
内容包括假造Mybatis的主配置文件,创建session的工厂类和一个返回值为ssf.opensession()的get方法
④创建一个mapper的普通包,里面加一个xml的文件,相当于daobean 层,有select,delete,update,insert标签,parameterType是参数类型,resultType是返回值类型,
里面写sql语句,?的值用#{}.
实体与实体之间的关系
多对1 比如有一个班的学生在一个教室里上课
1对多 一个教室对应一个班的学生
一对1(唯一外键关联)丈夫和妻子表,丈夫表里有一个妻子Id,而且是唯一约束
1对1(主键关联)丈夫表妻子表里的主键id是相同的
多对多 教师表,课程表,教室课程表,也就是一个教师能上那些课,里面有教师id和课程id,联合主键,排列组合不能重复。这种设计很复杂。mybatis实现不了
推荐使用双向多对一形式来实现多对多