首页 > 其他分享 >2012年工作中遇到的20个问题

2012年工作中遇到的20个问题

时间:2023-02-14 15:06:28浏览次数:48  
标签:pstmt 20 name 遇到 tiles org null id 2012



2012年工作中遇到了很多问题,刚刚开始时,遇到的问题没有及时记载下来,挺可惜的。

1.构造SQL语句--简化构造

select * from user where 1 =1 ;
if(name != null){
and name ="fans";
}

if(age != null){
and age= 1;
}

如果不使用“1=1”,

name != null
name == null && age != null
name == null && age == null


3种情况,太麻烦了。

如果有更多的参数,根本不能忍受!!

2. 前端js导入

<script type=""></script> 这种方式可以导入。

<script />不可以,有点不合理啊。

3.MySQL中使用getGeneratedKeys获取最后插入记录的自增id值
有时当我们向MySQL数据库中插入一条记录后,我们需要获取最后插入记录的自增id值以进行接下来的查询等操作。

下面是在java中使用PreparedStatement的对象的getGeneratedKeys()方法获取最后插入记录的自增id值的示例:

String sql = "INSERT INTO users (username,password,email) VALUES (?,?,?);";
PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//传入参数:Statement.RETURN_GENERATED_KEYS
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.setString(3, user.getEmail());
pstmt.executeUpdate();//执行sql
ResultSet rs = pstmt.getGeneratedKeys(); //获取结果
rs.next();
int id = rs.getInt(1);//取得id的值
//


Mybatis中获取自增的主键值,是直接在 返回结果的Map<String,Object>中直接取出,而不是通过Dao层 返回值来获得的。
4.Eclipse自动提示功能配置

配置步骤:
1 Window > Preferences > Java > Editor > Content Assist

2 “Auto Activation triggers for java”这个选项就是指触发代码提示的的选项,

把“.”修改成".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

意思就是指遇到26个字母的大小写和.(这些符号就触发代码提示功能了)

5. maven打包 存在旧的文件

使用Maven部署时,启动时总是报错。后来发现,没能将旧版class文件删掉,导致冲突。

6. mybatis的 resultMap和resultType不同,使用 提示功能时,选择错了,很难查找。

7. left join

如果id存在,连接查询,取出名字;否则,不连接。
2张表连接,工作中,需要获得一个广告主的信息。如果广告主设置了行业信息,需要获得该行业的名字。

使用Left join可以解决。

8. Eclipse项目出现问题

build path出现问题:.classpath文件

项目名称 红叹号-资源文件确实

.classpath 其实是个文本格式的文件,使用Nodepad打开。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="lib/httpclient-4.2.jar"/>
<classpathentry kind="lib" path="lib/httpcore-4.2.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.9.jar"/>
<classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

把不需要的classpathentry删掉就可以了。

9.struts2 集成tiles 问题及解决办法

​http://javaprograms.iteye.com/blog/366387​

dtd 的语法定义和官方的不一样 。
struts2 提供的 是 ​​​http://struts.apache.org/dtds/tiles-config_2_0.dtd​​<put name="title" value="Tiles Showcase"/>

而tiles 自己的是 ​​http://tiles.apache.org/dtds/tiles-config_2_0.dtd​​<put-attribute name="title" value="Tiles Showcase"/>

10.Servlet 单实例 多线程

(MVC与三层架构 都是虚的,没有统一的答案)

SpringMVC-Controller,Struts2 Action都可以是单例的?
Service/DAO 都是单例的。

MVC与三层架构 都是 抽象的概念,有没有重复?有没有关系?

MVC(解决展现层 问题)

Model:Service层的输出?

View:JSP/HTML

Controller:SpringMVC-Controller,Struts2 Action

三层架构
显示层 ui、display 、 view (controller)
业务处理 business/logic
数据层 db、model、dao

11. Mybatis 数据类型 已经转好了,不必要再次转换 数据库中有个Timestamp类型的字段,Mybatis取出放进Map<String,Object>时,实际类型已经是Date类型了。
可以直接强制转换成Date类型。
Date date = (Date)map.get("startTime");

12. 看书?研究代码?
看书和研究代码 都是 提高编程功底的可行方法,你觉得呢?
13.$().post()
同步异步

14.性能监测工具JavaMelody
项目中用到了,值得熟悉下。

15. Hibernate 2级缓存--EhCache

项目中有些报表数据,数据量很大,使用了EhCache。后来又经常报错,去掉了。
游资段为Blob类型的PO,User.hbm.xml则不能 使用EhCache。

16.Hibernate Session问题。

Hibernate老版使用的是org.hibernate.classic.Session,新版使用的是org.hibernate.Session。

17.找不到类org/apache/commons/lang/xwork/StringUtils

Struts2-Spring-Plugin版本不兼容

18. Dom4j删除元素时,需要先找到 父结点,通过父结点删除 子元素。
Element parent;
parent.remove(Element child);
而不能直接通过 根节点来删除。

19.当处理映射文件时,Hibernate 用反射(reflection)来决定这个映射类型。

这需要时间和资源,所以如果你注重启动性能,你应该考虑显性地定义所用的类型。

这个是网上看到的,感觉有点道理,待实践体会。

20.Spring注入bean时,有时会失败,然后程序中出现NullPointerException;
一种可能的因素是new了对象,比如 MyObject myObject = new MyObject();
此时,Spring不再负责MyObject的注入。

相关阅读


标签:pstmt,20,name,遇到,tiles,org,null,id,2012
From: https://blog.51cto.com/fansunion/6056849

相关文章

  • 2012总结--第10篇--工作篇
    3月到5月实习期间,完成了A项目的一个模块。更多信息,请参见实习期间遇到的5大问题及解决方案。好几次比较激动,最不淡定的一段工作。6月毕业到正式入职期间,看书,写代码,看......
  • [2012最后的力作] PC:亲爱的主人,我想退休了
    亲爱的主人:我想退休了!2012年以来,我感到身体很不适。坚持了将近1年,实在是扛不住了。还记得3年前的2009年7月,主人您把我从武汉广埠屯买回来的时候,我当时特高兴。主人您......
  • 2012总结--第1篇--技术篇
    以广度与深度并重为核心指南!1.语言1.1深入学习Java。1.2复习C++,Linux系统下写了几个小程序。大致阅读了一遍《C++Primer》。1.3了解了Python,在Windows平台写了......
  • 2012总结--第9篇--价值观篇
    自己也不小了,转眼间1/3左右的人生已经过去。是该给自己立点规矩,适度地约束自己的言行举止了。无论自己是迷茫时,或是得意时,都能有所选择!1.责任努力奋斗,自立自强!1.1父......
  • 2012总结--第5篇--人脉篇
    综述今年新结识了很多人,友好交往的人还比较多。感觉最缺少的,就是和自己向一个方向走的IT相关的人士。公司很多人也都挺熟悉的,总感觉缺少了一点什么。高中的很多同学,有种......
  • 3620、反转链表
    给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]提......
  • 2023年使用centos发报警邮件配置
    环境:阿里云上ecs主机  centos7.6系统目的:监控nginx有访问异常ip,发送邮件通知安装软件:  yuminstall-ysendmailmailx  #mailx一般阿里云上都给安装了的......
  • WC2023(授课与讨论6)
    Fliper(3)将每个挡板拆成两个点(表示两面)并建图,即可求出所有环建立一张新图,以每个环作为点,并额外建立一个点\(z\)表示不在环中将每个挡板两点所在环连边,即对边染色使(除\(......
  • 倒带ChunJun,同心前行|2022年度回顾&2023年共建规划
    ChunJun是一个开始于2018年的批流一体数据集成框架项目,原名FlinkX。2022年2月22日,在FlinkX进行初版开源的整整四年后,技术团队决定对FlinkX进行整体升级,并更名为ChunJun,希望......
  • 2022.2.14 每日十题
    一个组织正在采用敏捷的思维方式。在第一个敏捷项目中,项目经理面临一个问题,因为团队不能及时做出决定。项目经理应该怎么做来解决这个问题?A.为新的组织政策下的决策制定......