1. mybatis-plus generator代码生成器使用教程
添加 模板引擎 依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,用户可以选择自己熟悉的模板引擎,如果都不满足您的要求,可以采用自定义模板引擎。
2. mybatis 中如何映射实体类和表名
首先:最好把实体类里面的变量名称和表里面字段写成一致。
然后:在SqlMapConfig.xml中
<typeAliases>
版<typeAlias alias="game" type="实体类路径权"/>
</typeAliases>
这就是把你的实体类写了个别名
最后:在写查询添加的时候:
<select id="gameDao" resultType="game">返回实体类对象
select * from tb_game
</select>
这样查出的结果就对应上数据了。
3. 阿里一手爆出:Springboot整合MybatisPlus(超详细)完整教程
开发工具:idea2019.2,maven3
建表:
执行GeneratorCodeConfig.java文件,输入表名user:
解决方法:在数据库连接中配置添加allowPublicKeyRetrieval=true
查看生成的文件;
启动springboot的application启动类:会报错,提示找不到mapper文件,我们需要在springboot启动类上添加扫描mapper的注解:
UserController.java中新增接口:
postman测试:
没问题。
上面是mybatisplus测试成功,下面我们继续测试我们自己写的sql是否成功。
在resources目录下新建mapper文件夹,新建UserMapper.xml文件:
UserMapper.java
IUserService:
UseServiceImpl.java:
UserController.java:
测试findAllUser接口:
常用的工具类:
ResultInfo.java
Status.java
一份详尽的yml配置文件(关于数据源的配置比较详尽):
总结:
所有的面试题目都不是一成不变的,特别是像一线大厂,上面的资料只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!
原文作者:易水寒
原文出处:https://www.cnblogs.com/liuyj-top/p/12976396.html
4. JAVA基础入门教程 -
我是学java的,给你推荐几本,《Java核心编程》,《Java编程思想》《Java高手真经》,至于学习视频呢,我认为可以到siki学院看下。老师讲的都很用心。
5. 关于Mybatis的mapper.xml文件中从pojo获取属性值的问题
在实际开发项目中,我们查询条件不可能很单一,查询字段可能包括很多字段,比如:查询条件可以有用户信息,商品信息,订单信息等。
这里我们的基础实体类是用户类,我在这个基础上扩展他,之后包装他作为我们的查询条件。
包装类:用于parameterType
UserMapper接口
mapper配置文件编写sql:
上图中可看到在mapper.xml配置文件中用 userCustom.username 获取父类中的username私有成员变量,实际上是通过 userCustom.getUsername() 方法获得的.
以下文章通过一个简单的例子来看看ognl的用法
另还有一篇文章展示了mybatis中的ognl教程
通过以上的了解,现在把User类中的 getUsername 方法注释掉
再次运行程序,得到以下报错:
接着,我们仍旧保留对 getUsername 方法的注释,但是现在把 username 设置为 public
再次运行测试程序,得到以下正常的结果显示
以上就证明了在mapper.xml中, userCustom.username 实际上是通过调用了 userCustom.getUsername() 方法获得了user中的username属性,而不是userCustom直接访问父类User中的private修饰的username成员变量。
6. springboot+mybaties返回类型为Map,null值不显示问题
在使用mybaties的时候,如果我们的resultType配置的是java.util.Map的时候,如果(select a,b,c from al)返回的结果集中,a的值时null的时候,在对应的Map集合中,没有对应的a的key,但是通常情况下,我们时需要这样的一个key(a),值为null,这样可以保证返回的结果集中数据结构的一致性。
在与springboot集成后,其实很好满足上面的需求,只要在配置文件中,加上一个配置信息即可,如下:
mybatis.configuration.call-setters-on-nulls=true
这样,select返回的结果对应的属性为空时,map的key对应值为null就会显示
如果大家在spring原生框架需要解决这样的问题,请网络,很强大的。哈哈。
7. 求mybatis整套教学高清视频
Mybatis培训视频教程
课程介绍: 课程目标:本Java视频教程基于mybatis-3.1.1录制。内容涵盖Mybatis的快速入版门、权Mybatis基于xml和注解两种方式实现CRUD操作、一对一和一对多的关联表的 (查看全部)
课程标签: mybatis教学视频 mybatis视频教程 JavaWEB Java
课程难度:高级
课时相关:共 10 课时 总时长 268 分钟
http://e.51cto.com/course/course_id-1354-page-1.html
8. mybaties中#和$的区别
#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".
2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的值为order by user_id, 如果传入的值是id,则解析成的sql为order by id.
3. #方式能够很大程度防止sql注入。
4.$方式无法防止Sql注入。</ol>5.$方式一般用于传入数据库对象,例如传入表名.
6.一般能用#的就别用$.
MyBatis排序时使用order by 动态参数时需要注意,用$而不是#
字符串替换默认情况下,使用#{}格式的语法会导致MyBatis创建预处理语句属性并以它为背景设置安全的值(比如?)。这样做很安全,很迅速也是首选做法,有时你只是想直接在SQL语句中插入一个不改变的字符串。比如,像ORDER BY,你可以这样来使用:ORDER BY ${columnName}这里MyBatis不会修改或转义字符串。重要:接受从用户输出的内容并提供给语句中不变的字符串,这样做是不安全的。这会导致潜在的SQL注入攻击,因此你不应该允许用户输入这些字段,或者通常自行转义并检查。
9. Mybaties plus一个service查询多个类型
有三种查询方式。
1、like对象查询(Dept为数据库表,returnindex为返回的前端页面)。
2、mybatis注解查询。
3、mybatisxml查询。