随笔分类 - MyBatis
摘要:总结了常见的解决方式,如下 1、检查xml文件的namespace是否对应接口,要是全路径。 xml文件名不需要和接口名一致,namespace和接口全类名一致即可。 2、xml中的函数id和接口中的函数名是否对得上,参数类型、返回值类型是否对得上 3、去看输出目录中有没有xml映射文件,maven
阅读全文
摘要:MyBatis是一个Java的持久层框架,和Hibernate一样,都是ORM框架。 MyBaits的前身是iBatis,可以将数据库中记录映射为pojo,是开发人员以面向对象编程的思想来操作数据库。 MyBatis消除了几乎所有的JDBC代码,比如注册驱动,获取、关闭数据库连接,创建Stateme
阅读全文
摘要:Mybatis三剑客 在使用mybatis时,以下3个组件也很常用 MyBatis-generator mybatis逆向工程,根据数据表生成实体类、mapper接口、xml映射文件 Mybatis-plugin mapper接口中的方法、xml映射文件中相应的元素、sql语句,快速定位 MyBat
阅读全文
摘要:MyBatis的缓存指的是缓存查询结果,当以后使用相同的sql语句、传入相同的参数进行查询时,可直接从mybatis本地缓存中获取查询结果,而不必查询数据库。 mybatis的缓存包括一级缓存、二级缓存,一级缓存默认是开启的,二级缓存默认是关闭的。 一级缓存: SqlSession级别,在SqlSe
阅读全文
摘要:懒加载的概念 MyBatis中的延迟加载,也称为懒加载,是指进行关联查询时,按需执行子查询。 当程序需要获取|使用关联对象时,mybatis再执行子查询,这样可以减轻数据库的压力,在一定程度上可以降低程序运行消耗、提高查询效率。 懒加载的适用场景: 当前业务只使用主加载对象的其他属性,或者暂时只使用
阅读全文
摘要:2个实体:订单、商品,一个订单可以包含多种商品,同时一种商品可以属于多个订单,即多对多。 商品表goods_tb: 订单表order_tb: no是订单编号,user_id与用户表的id关联。 需要新建一张中间表order_item_tb,引入2个“多”的主键作为外键,把这2个“多”联系起来: pu
阅读全文
摘要:有2个实体:用户、订单,一个用户可以拥有多个订单,同时这多个订单属于一个用户,即一对多。 user_tb: order_tb: 在“多”的一方(order)添加“一”的一方(user)的主键(user_id)作为外键。 使用嵌套结果 (1)给2个实体都编写pojo类,需要在“一”的一方写个List来
阅读全文
摘要:有2个实体:用户、会员卡,一个用户只能办理一张会员卡,即一对一。 user_tb : 需要在一方引入另一方的主键作为外键。 card_tb: 使用扩展类 (1)在pojo包下新建User类: package com.chy.pojo; public class User { private Inte
阅读全文
摘要:在关系型数据库中,多表之间存在三种关联关系: 一对一:一张身份证对应一个人 <=> 一个人也只对应一张身份证 一对多:一个用户可以有多个订单 <=> 这多个订单属于同一个用户 多对多:一个订单可以包含多种商品,一种商品可以属于多个订单。 创建数据库时如何处理这三种关联关系? 一对多:在任意一方引入对
阅读全文
摘要:parameterType、resultType的数据类型要写全限定类名或者别名。 mybatis已经给常用的数据类型起好了别名,参考mybatis.pdf 3.1.1小节: 基本数据类型很少用,一般都是用包装类。总结下来就是:字母全小写。 如果在mybatis全局配置文件中使用包扫描: <type
阅读全文
摘要:动态SQl是MyBatis的强大特性之一,可以完成对SQL语句的动态组装。 比如说传入一个User对象,要根据这个User中的数据查询用户的完整信息: 如果User对象中只有name属性有值,sql语句是:select * from user_tb where name=#{name} 如果User
阅读全文
摘要:MyBatis的执行过程: (1)读取MyBatis配置文件mybatis-config.xml (2)加载映射文件 (3)构建会话工厂SqlSessionFactory (4)创建SqlSession对象 (5)创建Executor接口的实例。 MyBatis底层定义了一个Executor接口来操
阅读全文
摘要:SqlSessionFactory SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,主要作用是创建SqlSession。 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml
阅读全文
摘要:传统的dao层编写 以前编写dao层,先新建一个包com.chy.dao,再写接口StudentDao: public interface StudentDao { public void insertStudent(Student student); public void updateStude
阅读全文
摘要:根元素<configuration>,子元素: <properties> <setttings> <typeAliases> <typeHandlers> <objectFactory> <plugins> <environments> <databaseIdProvider> <mappers>
阅读全文
摘要:普通的增改删查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.
阅读全文
摘要:新建数据库my_db,新建表student_tb id为主键,不自动递增。 不必插入数据。 下载MyBatis https://github.com/mybatis/mybatis-3/releases 解压。 新建Java项目,什么都不用勾选(如果要在IDEA中操作数据库,可勾选SQL Suppo
阅读全文