Oracle 转Mysql出现的一些问题
SSH框架
1.Oracle转Mysql会出现很多问题,比如数据库名大小写问题,我出差去的公司的Mysql是装在LINUX上的,设置的是区分大小写。前人挖坑后人踩,项目中的数据库查询语句中的表名即有驼峰命名,还有全大写,还有全小写,还有即大写有小写,没法所以只要是数据库中出现的表我都在项目中改为大写,花了我两天的时间,所以啊在项目开始最好确定是否大写还是小写,而且加别名也是一个好习惯很有用,这样如果对项目维护的话比较容易。其中还有存储函数转换啊,视图,Hibernate升级等,这些没有过多了解!
2.其中还有序列问题,毕竟mysql没有序列,还是我飞哥配置了注解,用到哪个改哪个
3. 基础的函数转换 Oracle Mysql
to_char date_formate
to_date str_to_date
nvl() ifnull()
基础的框架打好了,部分项目的页面也能够展示,接下来就是修改上面这些导致页面不能够出现的查询错误,这些还是比较快的。Mysql的子查询要加别名,不然会报错的
4.
// SQL sql = SQL.begin().sql(“select o from Position o where o.parentPosition=? and o.parentPosition<>o.positionId”, positionId).end();
// List subPositionList = HibernateTemplateEx.getInstance().findByHQL(sql);
~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL sql = SQL.begin().sql(“select o.* from SM_POSITION o where o.PARENT_POSITION_ID=? and o.PARENT_POSITION_ID<>o.POSITION_ID”, positionId).end();
List subPositionList = JdbcTemplateEx.getInstance().find(sql);
注释掉的是执行不了的,会报不能够getter position_id 的错误,因为走了断点,发现positionid是有值的,所以就想到换个写法就是第二种啦!然后成功,不过这种缺陷很大,有的人喜欢对接口进行封装,有可能对映射的别名做一些处理,所以不建议。
第二种,你可以改为字符串拼接的方式,可以试试,不用问号,直接传值
’ "+ positionId + " ’
5.然后今天 报了 java.lang.NullPointerException ,然后可把我一顿好找啊!它是根据拼接的字符串判断从数据库传来的Map集合中Key的value值,他的SQL语句是这样写的 select a||b||c id,…采用的是字符串拼接的方式,但是mysql数据库识别不了可以用concat(a,b,c) id的方式来进行替换
6.然后还有一个错误没有解决,jsp中插入了inc模板,但是应该返回来的属性找不到,就会报错
只要是用到了这个模板的都会出错,现在正在排查中…
对了,taomcat7升为8也有可能出现问题的,模板出错就是tomcat升级的问题,tomcat升级一系列的东西也要升级,引入标签(什么.tld文件)就会有些问题就容易出错.,
Oracle 转Mysql出现的一些问题 2018/12/3
