[Mybatis]逆向工程中Select语句查询不出‘TEXT’字段

这个标题有点奇怪。不过我要说的就是,在Mybatis逆向工程自动生成的Mapper中,对TEXT字段的定义和其他的字段不一样。 Comments表设计: 可以看到,content字段为TEXT。 然而,直接调用selectByExample()方法,查询不到content字段的内容: 而究其原因,是因为在自动生成的CommentsMapper.xml中,对TEXT字段的定义是不一样的。 <resultMap id="BaseResultMap" type="com.windypath.seer.pojo.Comments"> <id column="id" jdbcType="INTEGER" property="id" /> <result column="uid" jdbcType="INTEGER" property="uid" /> <result column="aid" jdbcType="INTEGER" property="aid" /> <result column="floor" jdbcType="INTEGER" property="floor" /> <result column="createDate" jdbcType="TIMESTAMP" property="createDate" /> <result column="isDeleted" jdbcType="INTEGER" property="isDeleted" /> </resultMap> <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.windypath.seer.pojo.Comments"> <result column="content" jdbcType="LONGVARCHAR" property="content" /> </resultMap> 在代码中可以清晰地看到,content字段放在了“extends”里,而没有和其他的字段放在一起。jdbcType也定义成了LONGVARCHAR,我认为这样做是担心这个字段里装的数据量过大,增加查询负担,所以把它放进extends里。 而selectByExample()的初衷也许是查找信息列表。我发现在selectByPrimaryKey()中,只查询某一条数据的情况下,TEXT字段就会被查询出来。 因此我将TEXT改成了varchar(1000),问题解决。 (逆向工程修改后要重新生成一次覆盖旧的东西!)

五月 24, 2018 · JohnathanLin

[编译原理]FIRST、FOLLOW和SELECT

FIRST集 FIRST(α)为α的开始符号集或者首符号集。 定义 设G=(VT,VN,S,P)是上下文无关文法 ,FIRST(α)={a|α能推导出aβ,a∈VT,α,β∈V*} 。 特别的,若α能推导出ε,则规定ε∈FIRST(α). VT为终结符集,VN为非终结符集,S称作识别符或开始符,P为规则(α→β)的集合。 根据定义求解FIRST集 (对每一文法符号X∈V 计算FIRST(X)) 若X∈VT,则FIRST(X)={X}; 若X∈VN,且有产生式X→a…,则把a加入到FIRST(X)中; 若X∈VN,X→ε也是一条产生式,则把ε也加到FIRST(X)中; 若X→Y…是一个产生式且Y∈VN,则把FIRST(Y)中的所有非ε元素都加到FIRST(X)中; 若X→Y1 Y2 … Yk是一个产生式,Y1,Y2,…Y(i-1)都∈VN(1≤i≤K),而且,对于任何j(1≤j≤i-1),FIRST(Yj)都含有ε (即Y1…Y(i-1)=>*ε),则把FIRST(Yj)中的所有非ε元素和FIRST(Yi)中的所有元素都加到FIRST(X)中; 特别是,若所有的FIRST(Yj,j=1,2,..,K)均含有ε,则把ε加到FIRST(X)中。 反复使用上述2~5步,直到每个符号的FIRST集合不再增大为止。 FOLLOW集 FOLLOW(A)为非终结符A的后跟符号集合。 定义 设G=(VT,VN,S,P)是上下文无关文法,A∈VN,S是开始符号, FOLLOW(A)={a|S能推导出μAβ,且a∈VT,a∈FIRST(β),μ∈VT* ,β∈V+},若S能推导出μAβ,且β能推导出ε, 则#∈FOLLOW(A)。 也可定义为:FOLLOW(A)={a|S能推导出…Aa…,a ∈VT} ,若有S能推导出…A,则规定#∈FOLLOW(A) ,这里我们用‘#’作为输入串的结束符。 计算FOLLOW集 任何FOLLOW(S)都包含输入终止符号#,其中S是开始符号 如果存在产生式,A->αBβ,则将FIRST(β)中除ε以外的符号都放入FOLLOW(B)中 如果存在产生式,A->αB,或A->αBβ,其中FIRST(β)中包含ε,则将FOLLOW(A)中的所有符号都放入FOLLOW(B)中. SELECT集 SELECT集是选择符号集。 定义及计算过程 给定上下文无关文法的产生式A→α, A∈VN,α∈V*, 若α不能推导出ε,则SELECT(A→α)=FIRST(α) 如果α能推导出ε则:SELECT(A→α)=(FIRST(α) –{ε})∪FOLLOW(A) 需要注意的是,SELECT集是针对产生式而言的。 例题 《编译原理》第三版,p100页,第2题: 对下面的文法G: E→TE‘ E‘→+E|ε T→FT' T‘→T|ε F→PF' F’→*F’|ε P→(E)|a|b|^ 问: 计算这个文法的每个非终结符的FIRST集和FOLLOW集。 证明这个文法是LL(1)的。 构造它的预测分析表。 构造它的递归下降分析程序。 答: 1.计算这个文法的每个非终结符的FIRST集和FOLLOW集。 FIRST(P) = {a,b,(,^} FIRST(F) = FIRST(P) = {a,b,(,^} FIRST(T) = FIRST(F) = {a,b,(,^} FIRST(E) = FIRST(T) = {a,b,(,^} FIRST(E’) = {+,ε} FIRST(T’) = FIRST(T) ∪ {ε} = {a,b,(,^,ε} FIRST(F’) = {*,ε}...

四月 30, 2018 · JohnathanLin

[Spring]Spring学习笔记

[Spring]Spring学习笔记(一) Spring 概念 spring是开源轻量级框架 AOP:面向切面编程,扩展功能不是修改源代码实现 IOC :控制反转,有一个类,在类里面有方法(不是静态方法) 把对象的创建通过spring配置创建类对象 一站式框架 三层: web层 springMVC Service层 ioc Dao层 jdbcTemplate spring版本 当前最新版本:https://projects.spring.io/spring-framework/#quick-start 官网建议用Maven/Gradle安装 Spring的ioc操作 把对象的创建交给spring进行管理 ioc操作两部分: Ioc的配置文件方式 Ioc的注解方式 IOC底层原理 ioc底层原理使用技术 xml配置文件 Dom4j解决xml 工厂设计模式 反射 IOC使用方法(简单样例): 导入jar包(用Maven/Gradle直接导入) 编写要操作的类(简单的User类) 创建Spring配置文件,通过配置创建类: 在src下创建xml文件,官方建议为applicationContext.xml 引入schema约束,来源:https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/xsd-configuration.html 要加入的代码 配置对象创建 <bean id="对象名" class="类的路径(org.springframework.abcdef)"></bean> 编写测试代码 import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class testIOC { @Test public void testMain() { ApplicationContext context = new ClassPathXmlApplicationContext("a.xml"); Main m = (Main) context.getBean("m"); System.out.println(m); m.add(); } } 注:Maven自带的Junit版本为3....

四月 14, 2018 · JohnathanLin

[算法]分布估计算法 - 一种求解多维背包问题的混合分布估计算法_王凌

作业要求实现《一种求解多维背包问题的混合分布估计算法_王凌》 百度学术路径 写这篇文章主要是因为,这论文的数据集实在是找不到,但最后我还是找到了。 CSDN下载地址 然后我还是实现了该论文的算法,虽然感觉还是有错,而且结果并不是很好看,但我就是要厚脸皮发出来给大家嘲笑。 我实现的是SENTO2.DAT,最佳值为8722。 package eda2; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Random; import java.util.Set; import java.util.Map.Entry; public class eda { private int N;//最佳个体数 private int s;//搜索时的 private int Y;//初始步长 private int M;//种群规模 private double alpha;//学习因子 private int n;//物体个数 private double []p;//概率向量 private int[][] population; private int[][] popValue; private int bagNum;//维度(背包数) private int []bagCapacity; //核重 private int [][]r;//物体在不同维度上的价值 第一个 维度 第二个 维度值 private int []weigh; private int []popWeigh; private Map<Integer,Integer> collection; //10 2 50 40 0....

十二月 18, 2017 · JohnathanLin

[日常]我做独立博客的原因

我做独立博客的原因 记得以前有看到一篇由独立博客站长的博文,介绍独立博客如何搭建,搭建完后的注意事项。其中就有说到独立博客上线后,可以发布一篇《我为什么要做独立博客》的博文。而我认为这个题目是一个问句,自问自答略显古怪。所以我的这篇文章的名字就是《我做独立博客的原因》。 当我与好友聊起最近为了wordpress的主题与其插件不兼容而必须修改代码焦头烂额时,他反问我:“做博客的话新浪博客不就可以了吗?”我犹豫了一会儿。是的,新浪博客的模板完全免费,有很多的各界大牛,多种多样的功能,与微博绑定且只要开通发几篇像模像样的文章,就很快会被搜索引擎收录。而且也因为与微博绑定,只要一发布,刷微博的好友们马上能看见,这是十分便利的,都不需要自己做SEO优化网站。 可是,我从很早以前就很想自己搭建一个网站了。14岁那年自己偷偷借书用Dreamweaver 8写一个魔兽争霸战队的官方网站,但我完全是像做word一样在写静态网站,且对网站的配色没有系统的学习,做出来几个静态页面,不伦不类。然而最重要的是,我并不会写动态的代码,甚至于对数据库等一无所知。后来慢慢了解access可以装在网站文件目录下,拼命地寻找免费空间。但那个时候,免费空间都是吸引客户的手段,或者是骗取身份信息。我不是什么天才,也没有足够的时间去学习这部分知识。在我父母与我自己的眼中这就是在玩而已,与学习毫无关系。因此ASP的代码对于14岁的孩子实在太过深奥。 今年18周岁了,我还是不会ASP,但是我已经知道借助程序搭建一个网站。虽然这并非我的本意。我明白开源的wordpress背后有多少人为它编写主题与插件,使它成为一个优秀的博客,甚至不仅是博客,也是CMS的建站平台。我下一步的目标是要自己写一个主题,编写几个插件,最后自己从头开始写自己的Blog程序。 我会在独立博客中发布什么样的文章? 目前分为三类:日常、转载、读后感。我在平时对于生活有着许多感悟,我需要一个平台来倾诉。因此这是必不可少的。因为我觉得自己的文字过于稚嫩,所以我会转载一些别人的优秀文章来丰富自己的博客。读后感是我对书的感悟。我不是个喜欢读书的人,但我明白读书的重要性,甚至我认为不读好书,思维会停滞不前,思想滞后是十分可怕的。 目前我自己写的文章水平不高,文笔稚嫩,各位看官若是看到不好的地方请务必指正。不要顾及情面,毕竟人只有犯错才会进步。作为一个刚刚成年、稚气未脱的大男孩,我现在无法去装成熟,或者说我必须经历时间的洗礼才能渐渐成熟。 在我的水平渐渐提高后,我会在建一个文章分类,专门收录自己的原创文章。 另外,我会涉猎视频制作,也许再过几个月大家就能看到我制作的视频了。 最后,用一句罗永浩的话来表达我现在的感受: 我不是为了输赢,我就是认真。

八月 29, 2015 · JohnathanLin