MyBatis

MyBatista入门到入土——开发项目的具体步骤

橙三吉。 提交于 2020-08-12 01:46:19
Mybatis从入门到入土——开发项目的具体步骤 Mybatis开发项目的具体步骤 项目中映入mybatis maven配置 < dependency > < groupId > org.mybatis </ groupId > < artifactId > mybatis </ artifactId > < version > ${mybatis.version} </ version > </ dependency > ​ 可以根据最新的mybatis版本来进行开发 创建mybatis配置文件 ​ mybatis的配置文件为xml格式的,可以放在resource目录下,具体内容: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> < configuration > < properties > < property name = " driver " value = " com.mysql.jdbc.Driver " /> < property name = " url " value = " jdbc:mysql:/

MyBatis框架学习的核心内容

我的梦境 提交于 2020-08-12 01:02:56
首先我说明一下mybatis框架中用到的几个最重要的文件,配置文件:创建工程的pom.xml文件,mybatis的主配置文件(xml文件),具体的查询映射文件(xml文件);再就是定义的接口文件和定义的查询或者返回对象的类文件;最后是一个测试类文件。下面我分别进行说明。 1. pom.xml文件 :最前边都是一样的,可以直接拷贝上,如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> 另外,还包括你的工程坐标, 和众多依赖,包括mybatis,mysql,log4j,junit等等,用到什么后边可以往上加。 2. mybatis主配置文件 (这个配置文件主要配置了和数据库有关的信息):我把我的放在下面供参考,其中比较重要的是 数据库的连接信息,处理事务的类型和映射文件的位置 <

自学 Java,看视频教程和代码能看懂,自己写就写不出来,应该怎么办

本小妞迷上赌 提交于 2020-08-12 00:30:14
一、代码量太少了,看得多做得少,导致一做就错。 任何一个 nb 的开发人员必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的 我打个比方你看视频的时候可能觉得写一个输出 helloworld 的程序太简单了,几乎一秒钟就看懂了,因为没什么逻辑,非常简单,但是当你实践的时候你有可能会 出现 1 、找不到文件,原因可能是你在 cmd 里面用 javac 编译的时候 把文件名都写错了。 这种情况你用 dir 命令查看一下当前路径下的文件从名字上就可以看出究竟有没有你的文件。 2 、可能会出现你的类名和文件名不统一 3 、也有可能出现乱码,用 javac –encoding utf-8 test.java 指定编码就可以解决了。 当然就这简单的几行代码还有可能出很多问题,比如关键字写错,分号不是在英文模式下写的等等。 总之在你们看来一个最为简单的问题上自己来操作都有可能会出错的,而这些你看起来简单实操却出问题的事问题的根本在于你练习得太少了。当然前提是你看懂了代码,如果连代码都没看懂,那实操咱们就不用说了。如果要想入门 第一就是懂,第二就是敲代码,学编程切忌只学理论,学习和敲代码应该是占 4,6 分的比例。可能大部分新手朋友都搞反了。 二、没搞懂的问题没有得到及时的解答 在咱们自学的道路上遇到问题肯定是非常正常的

Mybatis:Tag name expected

不打扰是莪最后的温柔 提交于 2020-08-11 21:25:35
mapper文件中写sql语句时提示Tag name expected,找到原因是因为xml不识别<号需要用特定转义符来表示<号。 < select id= " selectHavingOrtherResultNotYetProcessed " resultMap= " BaseResultMap " > select <include refid= " Base_Column_List " /> from mark_result where length(ai_json) < 180 and ai_json not like ' {"gmtModified% ' AND ai_json not like ' {} ' and code is null </ select > 在 XML 中,一些字符拥有特殊的意义。 如果您把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。 这样会产生 XML 错误: 为了避免这个错误,用实体引用来代替 "<" 字符,如下: <message>if salary <1000 then</message> 需要改为<message>if salary < 1000 then</message> 在 XML 中,有 5 个预定义的实体引用: 注意:在 XML 中,只有字符 "<" 和 "&" 确实是非法的

mybatis缓存之一级缓存(一)

两盒软妹~` 提交于 2020-08-11 20:26:00
对于mybatis框架。仿佛工作中一直是在copy着使用。对于mybatis缓存。并没有一个准确的认知。趁着假期。学习下mybatis的缓存。这篇主要学习mybatis的一级缓存。 为什么使用缓存 其实,大家工作久了,就知道很多瓶颈就是在数据库上。 初识mybatis一级缓存 当然我们还是通过代码来认识下mybatis的一级缓存 代码演示 详细代码见github,这里只展示重要的代码片段 tempMapper.xml <select id="getById" resultType="entity.TempEntity"> select * from temp where id = #{id} </select> TempTest public class TempTest { Logger logger = Logger.getLogger(this.getClass()); @Test public void test() throws IOException { InputStream inputStream = Resources.getResourceAsStream("mybatis.xml"); SqlSessionFactory build = new SqlSessionFactoryBuilder().build(inputStream); SqlSession

2020秋招到了,想要跳槽吗?这套面试法宝可为你助力

我的梦境 提交于 2020-08-11 18:23:28
想要跳槽,你得具备以下条件: 具备很强的专业知识,牛逼,有信心快速找到下一家适合你的公司. 然后有一定存款,可以保证当下辞职后,生活方面不愁. 当然学习是很重要的,不努力提升自己,加强自己的专业知识,后面就算是跳槽成功也是很容易被PASS掉,现实是残 酷的,可千万不要因为找到新工作就放松警惕,做咸鱼. 那今天给你们分享这千道面试题,希望在找工作或者是想要跳槽的朋友都可以刷刷,准备充足,随时应战,顺利拿offer !!!! MyBatis 面试题 什么是 Mybatis? Mybaits 的优点: MyBatis 框架的缺点: MyBatis 框架适用场合: MyBatis 与 Hibernate 有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗? Mybatis 是如何进行分页的?分页插件的原理是什么? Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式? 如何执行批量插入? 如何获取自动生成的(主)键值? 在 mapper 中如何传递多个参数? Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql? Xml

mybatis开发,你用 xml 还是注解?我 pick ...

我只是一个虾纸丫 提交于 2020-08-11 18:13:15
最近在看公司项目时发现有的项目mybatis是基于注解开发的,而我个人的习惯是基于xml文件开发。 对于mybatis注解开发的原理理解不够,于是翻阅了部分源码,写下此文。主要介绍了mybatis开发的两种形式、三种写法。还有一点瞎思考,介绍了一处骚代码、还有一个坑。 原创不易,感谢阅读,感谢关注,感谢点赞,感谢转发。 荒腔走板 大家好,我是 why 。老规矩,在技术分享开始之前,先荒腔走板,聊点别的。 上周我写的这篇文章 《我告诉你这书的第 3 版到底值不值得买?》 居然被《深入理解Java虚拟机》的作者周志明先生看到了,还给我赞赏并留言给我说:作者表示感谢,真心的。 说实话,我看到这个赞赏的时候我都震惊了。有一种和大神产生了交集的感觉。 其实上周这篇文章是出版社找到我说送我一本第三版,让我看看,然后写个观后感就行。 恰好,在他们没有找到我之前我也是有这样的打算的。 我不是为了白嫖出版社几本书,而是我早在去年年底打算买第三版后,这篇文章就一直在着手准备了。 在机缘巧合之下,即完成了自己的计划,又获得了出版社的几本书,通过出版社,又勾搭上了本书作者,不仅获得了作者的赞赏还得到一本签名版。 哎,这疯狂而又操蛋的人生呀。 所以你问我写了这么久的文章收获了什么? 说实在的,我没有通过写文章挣到几个钱。但是我收获的是与一群志同道合的原创作者同行的机会、是读者读完文章后对我的文章的指点与赞扬

mybatis之if判断

て烟熏妆下的殇ゞ 提交于 2020-08-11 17:16:14
今天使用mybatis开发公司中台项目踩的一个坑,分享并记录一下 踩坑前因:因项目中比较多状态字段,用了大量的Integer 0和1进行判断 在功能做完后只是粗略的点了下觉得没多大问题(来自程序员强大的自信),便提交了代码,很不巧的是刚好领导在做功能测试,发现了功能缺陷,主角来了: 在做牧户查询时所有的0判断均无效,而1有效。查阅资料得知在if语句做如下判断时intger类型0也视为false <if test = "status != null and status !='' " >and status = #{status} </if > 解决方案有二: 1、 <if test = "status != null " >and status = #{status} </if > 直接判断!=null即可,只有字符串才需要判断!=""。 2、或者这样写 <if test = "status != null and status !='' or status==0 " >and status = #{status} </if > 附上大神详细解析链接: https://www.jianshu.com/p/91ed365c0fdd 来源: oschina 链接: https://my.oschina.net/u/4345075/blog/4449130

Spring+MyBatis+SpringMvc+Mysql+Druid+PageHelper分页实现

自闭症网瘾萝莉.ら 提交于 2020-08-11 14:58:28
我是阿福,公众号「阿福聊编程」作者, 一个在后端技术路上摸盘滚打的程序员 ,在进阶的路上,共勉!文章已收录在 JavaSharing 中,包含Java技术文章,面试指南,资源分享。 思路分析 MyBatis的PageHelper插件(后台) 作用 以完全非侵入的方式在原有查询基础上附加分页效果。从SQL层面来说,在SQL语句后面附加LIMIT子句。从Java代码来说,把原来返回的List类型封装为Page类型。 依赖信息 <!-- MyBatis分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.0.0</version> </dependency> 配置方式 那么如何让插件起作用呢?就需要在SqlSessionFactoryBean中配置MyBatis插件 <!--配置SqlSessionFactoryBean--> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--装配数据源--> <property name="dataSource" ref="dataSource"></property