简介 :Springboot使用Mybatis&Mybatis-plus 两者文件映射配置略有不同,之前我用的是Mybatis,但公司用Mybatis-plus;自己新建了一个Springboot项目,代码运行时一直报错not found not found,明明配置了mybatis相关信息的扫描路径,激袜毁但是就是好宏not found;检查修改了很多地方但都是无用功,最终发现是Plus惹的祸。
1、使用Mybatis
yml文件配置的mapper映射及相关信息格式:
2、使用Mybatis-Plus
yml文件配置的mapper映射及相关明备信息格式:
3、Others
加上 @Slf4j 注解后,仍然不能用log直接支配日志,因为没有安装Lombok插件。
加上 @Data 注解后,仍然不能使用getter/setter,因为没有安装Lombok插件。
在类上加注解@AllArgsConstructor 注解可以代替所有@Autowired 注解,就不用在一个类中引入多个@Autowired。
下载前端代码后需要在控制台运行:npm install,下载前端工程后在控制台npm install 相当于后端的下载jar包,目录级别还不能乱放,按照git工程代码格式,不能新建目录文件,否则资源下不来。
中间步骤自行设置
MySQL驱动版本根据自己安装的MySQL选择
我把AppTest改成了MybatisTest,不该也无妨;
其中Student类暂时只设置四个字段:
mapper接口暂时为空
在resources目录下新建File命名为db.peoperties,配置如下内容:
提示:以上配置适用于MySQL8.X版本,5.X版本按照如下配置:
1、transactionManager:事告伏务管理器;
type 事务管理类型:
JDBC(JdbcTransactionFactory);
MANAGED(ManagedTransactionFactory)
自定义事务管理器:实现TransactionFactory接口.type指定为全类名
2、dataSource:数据源
type :数据源类型
UNPOOLED(UnpooledDataSourceFactory);POOLED(PooledDataSourceFactory);
JNDI(JndiDataSourceFactory)
自定义数据源:实袜悉携现DataSourceFactory接口,type是全类名
<mapper>:注册一个sql映射文件
1、注册映射文件
resource:引用类路径下的sql映射文件
mybatis/StudentMapperpper.xml
url:引用网路路径或者磁盘路径下的sql映射文件
file:///var/mappers/AuthorMapper.xml
2、注册接口
class:引用(注册)接口,
① 有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;
② 没有sql映射文件,所有的sql都是利用注解写在接口上
推荐:
比较重要的,复杂的Dao接口我们来写sql映射文件
不重要,简单的Dao接口为了开发快速可以使用注解;
批量注册
需要在资源路径下(resources)建立和dao一样的文件目录来存放想xml映射文件,如:com.example.StudentMapperpper.xml
StudentMapper
在resources的mybatis目录下新建文件夹mapper,新建xml文件StudentMapper.xml
namespace :名称空间指定为接口的全类名
id :唯陆袜一标识
resultType :返回值类型
#{id} :从传递过来的参数中取出id值
resources目录(MajorMapper.xml暂时不用创建)如下:
MyBatis 的工作原理:读取 MyBatis 配置文件、加载映射文件、构造会话工厂、创建会话对象、Executor 执行器、输入参数映射、输出结果映射。
mybatis原理具体介绍如下:
1、读取 MyBatis 配置文件:
mybatis-config.xml 为 MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。
2、加载映射文件:
映射文件即 SQL 映射文件,该文件消码中配置了 *** 作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。
3、构造会话工厂:
通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory。
4、创建会话对象:
由会话工厂创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法。
5、Executor 执行器:
MyBatis 底层定义了一个 Executor 接口来 *** 作数据库,它将根据 SqlSession 传递的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护。
6、MappedStatement 对象:
在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。
7、输入参数映射:
输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类型。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程。
8、输出结果映射:
输出结果类型可以是 Map、 List 等集谨举合类型,也可以是基本数据类型和 POJO 类型。输出结果映射过程类似于 JDBC 对结果集的解拿晌哪析过程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)