Mybatis
文章平均质量分 51
Mybatis
机车柑仔店
努力+坚持+方法+自律+总结+反省 = 年轻的艺术家
| 这一生我们终将都会失去,不妨大胆一点,爱一个人,翻一座山,追一个梦
展开
-
使用注解开发(CRUD 注解增删改查)
我们可以在工具类创建的时候实现自动提交事务!方法存在多个参数,所有的参数前面必须加上@Param(“”)注解(注意:所有的基本类型和String类型都要加上@Param,如果是User和Map等等之类的对象不需要加@Param)注意事项:1.设置自动提交事务:编写接口,增加注解:public interface UserMapper { @Select("select * from mybatis.user") List<User> getUsers(原创 2021-05-28 23:07:21 · 215 阅读 · 0 评论 -
动态SQL(if,choose,trim....sql片段)
什么是动态SQL:动态sql就是指根据不同的条件生成不同的SQL语句动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL 元素可能会感觉似曾相识。在 MyBatis 之前的版本中,需要花时间了解大量的元素。借助功能强大原创 2021-05-27 01:34:51 · 201 阅读 · 0 评论 -
多对一处理
多对一:多个学生,对应一个老师对于学生这边而言,关联…多个学生,关联一个老师【多对一】对于老师而言,集合,一个老师,有很多学生【一对多】SQL:create table teacher( `id` int(10) not null, `name` varchar(30) default null, primary key(`id`))engine=innodb default charset=utf8;insert into teacher(`id`,`name`)values原创 2021-05-25 23:15:58 · 114 阅读 · 1 评论 -
解决问题org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
我出现这个问题的原因:1.resource下的com.kuang.dao没有展开(很坑的点,下图的com.kuang.dao是展开的,是正确的),没有展开就重新创建一个新的包直到展开2.target/classes/com/kuang/dao下没有对应的Mapper映射文件,如图所示:解决办法:手动复制对应的xml文件到该目录下,如下图所示:添加完对应的xml文件后,问题解决,运行成功!!其他原因:接口的名字和对应的xml文件的名字一样必须一样namespace里的接口名必须相同原创 2021-05-25 09:18:38 · 139 阅读 · 0 评论 -
Lombok(插件)
个人总结:lombok插件用于实体类中,lombok可以帮你在实体类中生成getter和setter方法以及toString方法,有参构造和无参构造函数,equals和hashcode方法…只需在实体类上加相应方法的注解即可!,让你不再需要自己在实体类中去生成这些方法Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never w原创 2021-05-24 20:26:11 · 198 阅读 · 0 评论 -
Mybatis详细的执行流程
转载 2021-05-23 17:09:59 · 111 阅读 · 0 评论 -
使用注解开发
除了Mybatis之外,在公司基本上都是使用注解去开发!!1.面向接口编程-大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程-根本原因:解耦(最重要的原因),可拓展,提高复用,分层开发中,上层不用管具体的实现,大家都遵守共同的标准,使得开发变得容易,规范性更好-在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;-而各个对象之间的协作关系则成为系统设计的关键。原创 2021-05-23 16:52:01 · 113 阅读 · 1 评论 -
RowBounds分页(了解为主,不建议开发中使用)
1.不再使用sql实现分页(RowBounds分页)1.接口//分页2 List<User> getUserByRowBounds();2.mapper.xml<!--分页2--> <select id="getUserByRowBounds" resultMap="UserMap"> select * from mybatis.user </select3.测试@Test public void ge原创 2021-05-23 15:45:30 · 568 阅读 · 2 评论 -
Limit分页
思考:为什么要分页?减少数据的处理量使用Limit分页语法:select * from user limit startIndex,pageSize;select * from user limit 3; #[0,n] 这里的n=3使用Mybatis实现分页 ,核心就是sql,步骤:1.接口//分页 List<User> getUserByLimit(Map<String,Integer> map);2.Mapper.xml<!--//分页--原创 2021-05-23 15:11:17 · 199 阅读 · 0 评论 -
日志
1.日志工厂如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手!曾经:Sout,debug来实现现在:日志工厂来实现!name就是logImpl全部的value如下:SLF4JLOG4J 【掌握】LOG4J2JDK_LOGGINGCOMMONS_LOGGINGSTDOUT_LOGGING 【掌握】NO_LOGGING在Mybatis中具体使用哪个日志来实现,在设置中设定!STDOUT_LOGGING :标准日志输出在Mybatis核心配置文件中,配置我们的原创 2021-05-20 20:17:59 · 83 阅读 · 0 评论 -
解决属性名和字段名不一致的问题 resultMap(重点)
1.问题数据库中的字段:新建一个项目,拷贝之前的,测试实体类字段不一致的情况!public class User { private int id; private String name; private String password;}测试出现问题:// select * from mybatis.user where id = #{id}//类型处理器// select id,name,pwd from mybatis.user where id =原创 2021-05-20 19:38:37 · 301 阅读 · 1 评论 -
生命周期和作用域
生命周期,和作用域,是至关重要的,因为错误的使用会导致非常严重的并发问题。mybatis-config.xml配置文件就是为了生成SqlSessionFactoryBuilderSqlSessionFactoryBuilder:一旦创建了 SqlSessionFactory,就不再需要SqlSessionFactoryBuilder了。局部变量SqlSessionFactory:说白了就是可以想象为:数据库连接池SqlSessionFactory一旦被创建就应该在应用的运行期间一直存在原创 2021-05-20 19:22:27 · 114 阅读 · 0 评论 -
Mybatis配置之映射器(mappers)
其他配置typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)mybatis-generator-coremybatis -plus通用mapperMapperRegistry:注册绑定我们的mapper文件;方式一:【推荐使用】<!--每一个Mapper.xml文件都需要在mybatis核心配置文件中注册--> <mappers> <mapper resource="c原创 2021-05-20 19:18:46 · 444 阅读 · 0 评论 -
配置解析(配置之别名优化,设置)
1.别名类型别名是为java类型设置一个短的名字存在的意义仅在于用来减少类完全限定名的冗余<!--可以给实体类起别名--> <typeAliases> <typeAlias type="com.kuang.pojo.User" alias="User"/> </typeAliases>也可以指定一个包名,Mybatis会在包名下面搜索需要的java Bean,比如:扫描实体类的包,它的默认别名就为这个类的类名,首原创 2021-05-14 21:44:01 · 211 阅读 · 0 评论 -
配置解析(配置之属性优化)
配置解析(配置之属性优化)1.核心配置文件mybatis-config,xml(不一定叫这个名字,只是官方叫这个名字)MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环原创 2021-05-14 21:03:46 · 138 阅读 · 0 评论 -
解决Maven配置问题-Could not find resource mybatis.config.xml
解决Maven配置问题-Could not find resource mybatis.config.xml<!-- 在build中配置resources , 来防止我们资源导出失败的问题--> <build> <resources> <resource> <directory>src/main/resources</directory>原创 2021-05-14 20:14:11 · 444 阅读 · 0 评论 -
CRUD---Mybatis实现增删改查
CRUD1.namespacenamespace中的包名要和Dao/mapper接口的包名一致!2.select选择,查询语句;id:就是对应的namespace中的方法名;resultType:Sql语句执行的返回值!parameterType:参数类型!步骤:1.编写接口 //根据ID查询用户 User getUserById(int id);2.编写对应的mapper中的sql语句 <select id="getUserById" parameterType原创 2021-05-13 19:38:19 · 94 阅读 · 0 评论 -
第一个Mybatis程序
思路: 搭建环境–>导入Mybatis–>编写代码–>测试!1.搭建环境搭建数据库create database mybatis;use mybatis;create table user( `id` int(20) not null primary key, `name` varchar(30) default null, `pwd` varchar(30) default null)engine=innodb default charset=utf8;inse原创 2021-05-12 11:40:43 · 118 阅读 · 0 评论 -
解决Mybatis报错问题:org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is
解决Mybatis报错问题:org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.解决方案分为两种情况:1.在mybatis核心配置文件中(mybatis-config.xml)配置mappers<!--每一个Mapper.xml文件都需要在mybatis核心配置文件中注册--> <mappers&原创 2021-05-12 11:32:11 · 1248 阅读 · 0 评论 -
Mybatis简介和介绍
Mybatis所需环境:jdk1.8mysql 5.7maven 3.6.1IDEA回顾:JDBCMysqljava基础MavenjunitSSM框架:配置文件的。 最好的方式:看官方文档;1.简介1.1.什么是Mybatis?MyBatis 是一款优秀的持久层框架.它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML原创 2021-05-10 21:15:24 · 142 阅读 · 0 评论