mybatis
易学习_
这个作者很懒,什么都没留下…
展开
-
mybatis缓存 一级缓存,二级缓存
什么是缓存 存在于内存中的临时数据 为什么使用缓存 减少数据库交互的次数,提高执行效率 适用于缓存的数据 经常查询的数据 不经常改变的数据 数据的正确与否对最终结果影响不大的 以上反过来就是不适用于缓存的数据 ,例如:商品的库存,银行的汇率 一级缓存 他指的是MyBatis中SqlSession对象的缓存 当我们执行查询之后,查询的结果会同时存入得到SqlSession大为我们提供的一块区域中 该区域是一个Map 当我们再次查询同样的数据,MyBatis会先去SqlSession中查询是否有,原创 2020-09-24 00:50:41 · 95 阅读 · 0 评论 -
mybatis多对多联合查询
多对多 前提 多对多关系怎么设计表 多对多,三张表,关系表,两个外键 学生表,教师表 ,学生教师关系表【两个外键】 多对多映射 - 各自包含对方一个集合引用 - 当我们查询用户是,可以同时得到用户所包含的角色信息 - 当我们查询角色是,可以同时得到角色的所赋予的用户信息 实现 示例: 用户和角色 一个用户有多个角色 user 一个角色可以分配给多个用户 【典型的多对多关系】 role 准备好的SQL语句 查询身份并且显示对应的用户信息 SELECT u.*,r.id AS原创 2020-09-22 20:18:37 · 273 阅读 · 1 评论 -
mybatis多表联合查询,一对多
一对多 关键 账户表的外键引用了用户表的主键,那么说账户表是从表,用户表是主表 一对多的关系映射:主表实体中应该包含从表实体的集合引用 前提: 两张表:用户表user,账户表account 账户表中有外键引用用户表的主键 用户表实体类和账户表实体类的toString一定要重写(不然查询出来的时候看不出来) 实现 在UserDao中定义一个方法 public interface UserDao{ //查询所有用户和 List<User> findAll(); } User实体类中原创 2020-09-21 12:53:52 · 151 阅读 · 0 评论 -
mybatis多表查询,一对一查询
一对一 前提条件 什么时候会用到一对一? 假设有两张表,一张用户表,一张账号表,用户只能有一个账户,而用户信息和账户信息都放到一张表里就很显得数据很冗余。所以就分出来两张表。 假设一款游戏,要做登录验证,用户名和密码就可以单独出来一个表,因为登录的时候只查询的是用户名和密码,所以单独一个表出来是最佳方案,这样查询速度快, 同时用户密码表也要关联上用户信息表。 一对一设计的两种方案 主键共享 (pk+fk) 外键唯一 (fk+unique) 一对一查询 一对一查询有两种方式 1. 创建子类 (不常用原创 2020-09-20 11:52:07 · 1351 阅读 · 0 评论 -
mybatis动态sql,if 标签,where标签,foreach标签
动态SQL mybatis的灵魂是什么?mybatis的灵魂就是动态SQL! if标签 在映射配置文件中这样写 <select id="findUserByCondition" resultType="com.yixuexi.entity.User" parameterType="com.yixuexi.entity.User"> <!-- 使用if标签 where 1=1不能省略 --> select * from user where 1 = 1 <if t原创 2020-09-19 19:40:02 · 513 阅读 · 0 评论 -
mybatis typeAliases 给实体类起别名
typeAliases 在我们开发中,Mapper中的实体类每次都要写上包名,是不是特别的麻烦 针对这一现象,myabtis提供了解决方案,简化开发 typeAliases标签 第一种用法 在主配置文件中 配置【不是映射文件,而是主配置文件】 <typeAliases> <!--type:实体类的具体全限定类名, alias:别名--> <typeAlias type="com.yixuexi.entity.User" alias="User" /> </原创 2020-09-18 08:27:19 · 560 阅读 · 0 评论 -
mybatis resultMap解决属性和字段名字不一致问题
解决实体类属性和列名不一致的两种解决方案 第一种(执行效率快,开发效率低) 类中的属性为id,name,password 数据库中的字段为 user_id, user_name,user_password 为了能让数据库查询到的数据封装到User对象中去 可以采用起别名的方式 在映射文件中应该这么写 <select id="findAll" resultType="com.yixuexi.entity.User"> select user_id as id,user_name as n原创 2020-09-17 18:31:14 · 749 阅读 · 0 评论