Java项目出现的问题--实际项目01
1 从Excel中导入指纹图谱数据异常
在导入指纹图谱时对Excel的规范是有限制的,有时候报空指针异常是因为虽然有些地方看起来没有内容但是可能有空格键;解决方法是新建一个Excel表,把要用到的数据复制过去。
2 导入mysql数据时报错:Packet for query is too large
mysql有一个默认的数据表大小上传限制,当需要把Excel中较多的数据传入mysql中可能会超过这个大小的限制,从而引发异Causedby:com.mysql.jdbc.PacketTooBigException: Packet for query is too large
解决方法时修改默认配置----注意修改后要重启mysql并且也要重新部署项目。
查看目前配置
show VARIABLES like '%max_allowed_packet%'; //默认为1M 改为更大的值:
set global max_allowed_packet = 2*1024*1024*10;
3 设置登录网站地址
如果不设置则默认为localhost:8080 + 项目名称;因此需要对地址重新进行配置。下面这两个是在自己的电脑上进行的配置,在服务器配置还有所不同在word上有记录。
1、C:\Windows\System32\drivers\etc中对HOST文件配置 127.0.0.1 food.sjtu.edu.cn
2、在Tomcat\apache-tomcat-8.0.50\conf下的service文件中配置。
在进行服务器设置的时候使用startup.bat开启Tomcat服务器,这样才会把war包解析一开始竟然忘记打开Tomcat了就没自动解析。因为配置不一样在本机输入的是food.sjtu.edu.cn进行访问,在服务器要输入sjtufood.com进行访问。
4 把数据库中的数据导出--mysql
右键项目,选择备份\导出,然后选择如图所示会生成对应的.sql文件。可以自己创建一个数据库,记得要把.sql文件中的数据库名字修改为自己想要创建的,然后全部选中复制,再执行即可。
5 不能创建数据库(150)
问题报错:
21:52:10,611 ERROR [localhost-startStop-1] SchemaUpdate:212 - Unsuccessful: alter table rice_zheng_zhu add index FK4429F9526D8C31A7 (food_id), add constraint FK4429F9526D8C31A7 foreign key (food_id) references food_list (food_id)
21:52:10,612 ERROR [localhost-startStop-1] SchemaUpdate:213 - Can't create table 'sjtufoodtest1.#sql-1960_9d' (errno: 150)
百度的大部分说是外键配置错误,我在几经修改后发现仍然是错误的。最后发现是因为mysql的问题,只需要右键表,把表的类型选择为MyISAM即可。注意,每次新建表都会
默认为图中的格式,要修改。不过好像即使不修改也没有关系,只是单纯的会报错。
6 变量首字母最好不要大写
如果大写的话在自动生成的get set方法中就不会出现this,并且可能会影响后面的配置问题。
7 变量与数据库命名规范
数据库中变量是没有大小写的,依靠下划线,Java中是依靠大小写。因为项目包含的配置文件较多,在传入参数时很可能就会发生混淆,因此统一把Java中与数据库相同的名字全部小写,涉及Java内部变量时增加使用名字并依据驼峰规则。
8 显示查看总是多一列
点击增删改查后发现总是多了一列,排查了好久发现是在jsp文件里出了问题<td></td>这是一对的,但是如果没写</td>也不会报错,而恰恰就是写了<td>XXX<td>的形式,导致总是多出来一个。
9 远程连接
使用TeamViewer进行远程控制连接,不过每次都需要设定ip和密码
10 Tomcat配置
指纹图谱图片的显示需要设置下Tomcat中config,配置路径,有一个上交专用配置文件记录的有。
11 使用hql语句进行条件删除
//使用的是面向对象因此不能直接用表名,而应该用对象名。:id表示的参数
final String queryString = "delete Fingerprint2 where fp1_id = :id";
Query query = getSession().createQuery(queryString);
query.setString("id", fp1Id); //设置参数的值
query.executeUpdate(); //执行query语句
12 指纹图谱导入报错
在导入指纹图谱时有时会报错,大部分时候是因为格式的问题,一般从2方面查找。1 是否是按照下面的格式标明的,>>>这个符号要有,格式要完全对照如下图所示。2 是否设置了单元格格式为文本格式。
13 指纹图谱页面分页问题
在指纹图谱分页时由于采用了同一个分页,会导致没有更新这样在第2页时跳转到子页面就会仍然从第2页开始解决方法是在子页面重新写一个页数获取并在指纹图谱jsp的listUI.jsp页面中重置为1,好像只需要重置为1即可虽然写的有子页面的重新获取页数但有使用。
14 matlab 与java混合编程
在导入matlab包时由于选择的mtalab版本过高出现了缺少mclmcrrt8_3.dll文件,在低版本的matlab中找到该文件,一般在D:\workSoft\MATLAB\R2016a\runtime\win64 文件夹下,把该文件拷贝高版本的matlab中该问题解决,但会出现另一个问题,好像是jvm引起的问题,目前还没有解决。
15 matlab调用出错
在matlab中运行测试文件一直报错,后来发现是添加文件的问题,只添加了mainFunc 还要把同一文件夹下名字为matlb的添加进去方可
16 hql语句编写
在hql语句中:queryHelper.addCondition("pre.fingerprint1.fp1Id = ?", fp1.getFp1Id()); 双引号里面的是hql语句要按照数据库中定义好的属性即fingerprint1是一个属性,而不能直接写为fp1形式
17 训练模型
模型中的meanpeak保存到是合并后的x值即时间而不是峰值,在训练的时候根据x取出y,预测的时候输出的是峰值y。对于指纹图谱没有预测对应的列号为了界面显示方便就把预测对应的列号转变意思为对应的峰值序号,直接顺序保存进去,但在程序端没有写是直接在数据库中添加进去的后面可能需要修改一下,这样做主要就是为了模型详情查看时界面好写
18 数据库中峰值对应存贮
peaks_x是时间或波长,peaks_y存的是合并后对应的峰值,mean_peaks是合并后的时间或波长
19 峰值表的对应
峰值表的第一行是波长或时间,第二行是对应的峰值
20 指纹图谱输入数据
点数据中也是一样的所有的输入包含品种必须是数字,这里品种用的是0表示,均质1到5表示,具体对应查看数据表,预测的时候也只是取出来了这两个有效的。
21 输入峰值界面
左侧的是对应的峰值数据中自变量,可以是事件也可以是波长
22 输入数据的数字化
输入数据的数字化顺序是根据数据库中的顺序而来的,有些数据库中的顺序与excel中的数据不一致,这一点要注意。
0.0 1.0
0.0 2.0
0.0 3.0
0.0 4.0
0.0 5.0
1.0 6.0
1.0 7.0
1.0 8.0
我在训练的时候好像搞错了,直接写成上面的形式了,测试了下还能用。。。不知道什么情况。
23 Tomcat配置JVM内存
因为换了一种预测方法因此需要读入数据,番茄的数据比较多当读入列数较多时就会使JVM内存溢出,因此需要配置一下JVM的内存。在Tomcat/bin/catalina.bat下,网上普遍说的是从非注释的第一行写,我这里是第二行写如下代码即可:
24 豆腐表峰值点存贮
在豆腐表峰值点对应的x变量存储时发现mean_peaks是逆序的,这样有可能后面的数据也是逆序的,这一点要注意,记得把数据修改回来(自己写了在idea java中写了一个修改方法)。果然鱼糜的数据一直显示预测错误就是这个问题引起的。
25 页面跳转的时候为什么可以直接接收到对象
在jsp页面有如下的跳转代码:document.forms[0].action = "${ctx}/query/home_listUI.action?food.foodId=" + foodId;相应的action中只需要声明private Food food 在写上get和set方法就可以顺利的拿到的id值,但是为什么?
对于food.foodId这样的请求,jsp会自动的把它封装成对象的形式,food便会对象的名字,所以在action中或取的对象并不是我们在程序中构造真正的对象,而是根据http协议自动封装得到的对象,所以这个对象只能是你在请求时设置了什么参数它就有什么参数,没有设置便不会有该属性。
26 在进行查询时有些参数丢失
在tofindUI.jsp中allInput的输入框接收的参数在findUI.jsp中进行下一页时就会造成参数丢失,这样就导致了查询时参数的丢失,在toufu中利用<inpu type="hide" name="allInput" value=${allInput} />这个隐藏属性框即可。
0
Java项目出现的问题--实际项目01的更多相关文章
- Java 教程整理:基础、项目全都有
Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 网上有很多 Java 教程,无论是基础入门还是开发小项目的教程都比比皆是,可是系统的很少,对于Java 学习者来说找到系 ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- Java Web学习系列——Maven Web项目中集成使用Spring
参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...
- Java学习路径及练手项目合集
Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 实验楼上的[Java 学习路径]中将首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE ...
- java web(学习笔记)项目路径问题
最近刚接触java web特别是是关于项目路径这一块很晕,就把自己遇到的一些疑惑和理解写下来. 首先贴上路径,这里用的是eclipse. 其中我们要注意看WebContent目录,这是web程序的根目 ...
- 如何在java代码中调用一个web项目jsp或者servlet
有时候需要调用一个web项目的jsp或者servlet,但是执行内部的代码,并不是打开jsp,例如需要在一段java代码中清除一个web项目中的缓存,那么可以把清除缓存的代码放在该web项目的一个se ...
- Myeclipse - Web项目转换技巧--处理Java项目、SVN非Web项目问题
喜欢从业的专注,七分学习的态度. 概述 对于Java调试,使用Eclipse习惯性的使用Junit调试,使用Myeclipse习惯性的将项目转成Web项目在Tomcat或Weblogic中调试,在My ...
- 【IDEA使用技巧】(4) —— IDEA 构建Java Maven项目、导入Eclipse项目、多Module Maven项目
1.IntelliJ IDEA构建Java Maven项目 1.1. IDEA构建Java Maven项目 ①选择Create New Project,选择创建Maven项目,并勾选Create fr ...
- Java协程编程之Loom项目尝鲜
前提 之前很长一段时间关注JDK协程库的开发进度,但是前一段时间比较忙很少去查看OpenJDK官网的内容.Java协程项目Loom(因为项目还在开发阶段,OpenJDK给出的官网https://ope ...
- centos7中配置java + mysql +jdk +使用jar部署项目
centos7中配置java + mysql +jdk +使用jar部署项目 思维导图 1. 配置JDK環境 1.1下载jdk安装包 Java Downloads | Oracle 1.2 将下载j ...
随机推荐
- java中public protected friendly private作用域
1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直 ...
- JS数据拷贝
JS的拷贝可分为浅拷贝和深拷贝: 浅拷贝:如果数组元素是基本类型,就会拷贝一份,互不影响,而如果是对象或者数组,就会只拷贝对象和数组的引用,这样我们无论在新旧数组进行了修改,两者都会发生变化. 深拷贝 ...
- WIndows系统BAT文件语法和技巧 原文的地址(http://www.jb51.net/article/5828.htm)
批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本 ...
- Spring IOC Container
All the notes are from Spring Framework 5 Doc. 一.Introduction to the Spring IOC Container and Beans ...
- Spring集成kafka,消费者运行时内存占用会一直增长
Spring集成kafka,消费者运行时内存占用会一直增长? 20C 本人用Spring集成kafka消费者,发布运行时内存占用会一直升高,最后程序挂掉.请各位大神看看,提供解决方法 以下是我的配置文 ...
- MyBatis 源码篇-日志模块2
上一章的案例,配置日志级别为 debug,执行一个简单的查询操作,会将 JDBC 操作打印出来.本章通过 MyBatis 日志部分源码分析它是如何实现日志打印的. 在 MyBatis 的日志模块中有一 ...
- 调研task_struct结构体
进程的描述PCB task_struct——PCB的一种,在linux中描述进程的结构体叫做task_struct. task_struct内容分类: 标识符:描述本进程的唯一标识符,用来区别其他进程 ...
- 5-MySQL DBA笔记-开发技巧
第5章 开发技巧 本章将介绍一些和数据库相关的开发技巧.由于开发领域很广,这里只选取部分比较常见的小技巧.5.1 存储树形数据 有时我们需要保存一些树形的数据结构,比如组织架构.话题讨论.知识管理.商 ...
- 使用X.509数字证书加密解密实务(二)-- 使用RSA证书加密敏感数据
一. 使用RSA证书加.解密敏感数据 X.509证书标准支持三种不对称加密算法:RSA, DSA, Diffie-Hellman algorithms.最常用的是RSA算法.所以本文就以前面章节使用 ...
- boost random library的使用
生成满足一定分布的随机数,是统计模拟.系统仿真等应用中最基本的要求.matlab中提供了函数可以生成各种常见分布的随机数,c++使用boost random库也可以很容易实现. 一.例子 boos ...