积累问题一

1、jdk环境变量:
 AVA_HOME=C:/Program Files/Java/jdk1.6.0
 classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;一定不能少,因为它代表当前路径)
 path=%JAVA_HOME%/bin

2、tomcat环境变量
 CATALINA_HOME:c:/tomcat
 CATALINA_BASE:c:/tomcat
 TOMCAT_HOME: C:/Tomcat
 classpath=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/common/lib/servlet.jar;

3、调整tomcat:
 Tomcat6独立启动模式
 /Tomcat 6.0/bin下点击tomcat6w.exe,在打开的界面中点击-->Java,在本界面中配置如下:
 Initial memory pool:128 MB
 Maximum memory pool:256 MB
 Thead stack size:2048 KB

 配置完成后点击tomcat6w.exe/tomcat6.exe启动后,查看tomcat state都可以看到内存调整结果;

 Tomcat6集成进MyEclipse6.5
 window-->Preferences-->MyEclipse Enterprise-->Servers-->Tomcat-->Tomcat6.x-->JDK,在右帧的界面中配置如下:
 Optional Java VM arguments:-Xms128m -Xmx256m -XX:MaxPermSize=64m

4、tomcat用户配置

 <user username="admin" password="tomcat" roles="admin,manager"/>
5、MyEclipse中快捷方式无法显示

 快捷键中把我们习惯性使用的Alt+/进行代码自动补齐的快捷键改为了ctrl+空格,大家知道这是切换中英文输入法的键,所以需要更改这个快捷键,
 1.选择MyEclipse6.0菜单栏中的Window->preferences;
 2.选择General->keys;
 3.在右侧中间的窗体中点击word completion后再点击remove binding,在下方的binding中随便输入一个快捷键;
 4.然后选择Content Assist点击Remove binding,在binding中输入Alt+/;
 5.点击Ok就可以了。


6、dom4j Nested exception异常  在tomcat加载项目时抛出了如下异常: org.dom4j.DocumentException: unknown protocol: d Nested exception: unknown protocol: d
解决方法:问题的原因是Tomcat的安装路径有空格.d是Tomcat安装的盘符.
解决的办法有两种:
 1.重新安装Tomcat.去掉空格.
 2.将解析的XML文档转换为File类型.

7、SqlServer安装:
 用户名:admin2
 公司名:admin2
 本地用户登陆


8、改为混合模式
 企业管理器中-->你的sql注册实例-->右键-->属性-->安全性中-->身份验证-->改为混合模式

9、修改sa密码:用验证用户登陆查询分析器,执行以下语句,将会把sa账户的密码改为sa123! 
 EXEC sp_password NULL,'sa123','sa'
 配置连接数据库url----jdbc:microsoft:sqlserver://192.168.200.28:1433;DatabaseName=USER
 url中的数据库名应写为大写

10、Error establishing socket
 SqlServer2000没有打补丁软件,打过补丁之后可以互联
 
11、Can't start a cloned connection while in manual transaction mode.你在尝试打开一个克隆连接
 原因一般是当你在一个SQL SERVER的JDBC连接上执行多个STATEMENTS的操作,或者是手动事务状态(AutoCommit=false) 并且使用默认的模式. direct (SelectMethod=direct) 模式.

 解决办法1: 每个数据库的连接在执行完毕后,关闭,第二,在连接时,判断是否已经有连接存在,有则使用现成的连接。 数据库连接可以设置成一个常量,不需要到处定义。便于维护。

 解决方案2:
 你在DatabaseURL字符串中加入SelectMethod=Cursor;如下
 jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Partner;SelectMethod=Cursor;


12、解决iBATIS中字符问题:
 <![CDATA[
  select * from t_emp_info
  ]]>

13、注意事项:iBATIS中尽量避免使用实体bean,使用map封装。仅需主键,而非外键关联

14、connection error:
 jdbc:jtds:sqlserver://20091102-0625/USER,修改所需连接主机的ip为数据库连接名

15、t_resources_info/t_resource_info原表存在,不过字段不太清晰,且大小分配亦不一致,暂时保留两张表,具体做到权限时再去划分

 

16、序列问题:Oracle中的存在序列的创建,根据创建的序列再去取值:create sequence test_PKSequence start with 1 increament by 1;(创建一个起始为1,递增为1的序列)
 SqlServer中:/*create table aaa
 (
 id int IDENTITY(1,1),
 name char(8),
 address varchar(64)
 )
 */
 select * from aaa
 --insert into aaa values(3,'22','22') 此种插入方式需要关闭自增长,否则会报错
 --insert into aaa(name,address) values('11','11')

17、修改SqlServer表中的字段为自动生成,右键选择设计表,选择标识---“是”

18、页面使用jQuery实现动态跳转,无法实现的原因:在于url中一开始使用dispalayname,后使用/servlet/CompanyInfoAction,此时的"/"代表了根目录,导致无法找到所需跳转的url
 解决方法:servlet/CompanyInfoAction
 $.ajax({
   type: "GET",
   url: "servlet/CompanyInfoAction",
   data: "action_flag=doadd&comname="+comname+"&address="+address+"&zip="+zip+"&tel="+tel+"&memo="+memo,
   dataType: "html",

19、使用base路径后,所有在base作用域的path都会以base的路径为前提

<base href="<%=basePath%>" />
  <meta http-equiv="Content-Language" content="zh-cn" />
  <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
  <title>租赁公司管理</title>
  <link href="${pageContext.request.contextPath}/css/index.css" rel="stylesheet" type="text/css" />
  <script language="JavaScript" src="js/jquery.js"></script>

20、全选/反选执行绑定jQuery对象时绑定失败:
解决办法:通过调用js触发函数实现
 function allcheck(){
  $("input[@name='ids']").each(function() { $(this).attr("checked", true); });
 }
 function backcheck(){
  $("input[@name='ids']").each(function() {
   if($(this).attr("checked")) {$(this).attr("checked", false); }
   else { $(this).attr("checked", true);} });
 }

21、Cannot forward after response has been committed
当使用jQuery进行动态实现时,需要注意的是不能再次进行页面重定向了,因为Ajax的实现本身是刷新局部页面,若再次重定向页面,不符合调用Ajax的初衷

22、无法取到封装在JSONObject中的对象:
 强转js,将后台map集合的封装转为js对象,然后通过obj.key取值 eval("var obj="+obj);
JSONObject flag = new JSONObject();
flag.put("info", "添加租赁公司成功!您可以在当前页面继续添加!");
// 返回数据
PrintWriter out = response.getWriter();
out.print(flag);
out.close();

23、js取值问题:$("#comname").val(""); 等同于document.getElementById("comname").value="";
 $("#comname").val()="";此种写法错误

24、jsonrpc-1.0.jar此jar包中使用封装map对象向页面传值

25、json传值时遇空会出现eval强转失败,IE和FF支持不一致,IE会报错
 解决方法:后台处理时将查询出来的数据isnull(t.empname," "),判断若为空的话更换为空串

26、SELECT t.comid,t.comname,t.level,t.address,t.zip,t.tel,
t.createdate,t.modifydate,t.type,t.status,
t.memo,isnull(t.empname,' ') as empname,isnull(t.emppwd,' ')as emppwd

27、查询结果中未出现相关公司名信息:
 解决方法:sqlmap中配置的resultmap中少写了具体要输出的字段集


28、java.sql.DataTruncation: Data truncation:原因:页面中字段未改名,且后台得到的值大于要插入数据库中字段的长度

29、乱码问题:
方法1:json传值时需要使用“get”类型(出错原因在于使用“post”类型传值)
jsp表头:如19
后台action中乱码设置:
  response.setHeader("Pragma", "No-cache");
  response.setHeader("Cache-Control", "no-cache");
  response.setDateHeader("Expires", 0);
  response.setContentType(CONTENT_TYPE);
  response.setCharacterEncoding("GBK");

解决方法2:在JS中使用escape(),接收处无需unescape()
适用于post和get

var userInfo ="getcode="+escape(getcode)+"&Content="+escape(Content)+"&IQ="+escape(IQ)+"&blog_id="+blog_id;
   if(objRequest!=null)
     {
       objRequest.onreadystatechange = commentProcess;
          objRequest.open("post","ajax.asp?action=comment",true);'这里指定发送数据方式
        objRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        //objRequest.XMLHttpRequest.setRequestHeader("charset","utf-8");
       objRequest.send(userInfo);
      
     }

30、js关键字问题,使用js函数名定义时需注意关键字的使用,尽量避免使用特殊的关键字作为自己的函数名(比如delete())


31、setTimeout(backlist,2000);


32、 com.ibatis.common.jdbc.exception.NestedSQLException :原因:实体bean中的字段中,int型数据最好全部改为Integer,因为Integer可以为空,而int型在转型时会出异常

33、更新数据时导致插入异常,原因在于后台封装实体bean时未放入主键

34、Data truncation:性别取值时没有取到,使用js的getbyid(“sex”)取值。因sex在数据库中仅4位,当出现乱码或者undefined时,都会超出所定义的4位


35、ibatis关连查询注意:首先<result property = "company" column="company_id" select="selectCompanyById"/>存在于主<resultMap />里面,其中的property 属性值必须存在于主实体bean中,,column中对应的字段是关联表中的主键,select中属于子关联表中的查询!
另:在定义了namespace中的map中,select中的值应标识为:空间名.selectCompanyById


36、<input type="radio" name="sex" value="男" ${emp.sex=="男"?"checked='checked'":"" }/>

37、页面无法出现列表项:未引入核心包,foreach未结束

38、查询时无法得到正确的结果数。原因:查询时,查询了两条条件,首先查询的是统计数字,之后才去查找模糊信息,改变了查找模糊信息的查询条件,而没有改变统计的查询条件

39、 target="mainFrame" target="_parent" 点击时跳转到主frame和覆盖本页面

40、ibatis log输出SQL
 首先导入两个包:需要这两个 log4j.jar和commons-logging.jar
 其次:将log4j.properties的文件放入src目录下,Eclipse会自动加载此文件,内容如下:
 #--------------------------------      
#     
log4j.rootLogger=DEBUG, stdout, fileout     
#log4j.logger.test=info    
#log4j.logger.org.apache.jasper = DEBUG    
#log4j.logger.org.apache.catalina.startup.TldConfig = DEBUG    
#log4j.logger.org.apache.catalina.session.ManagerBase = DEBUG    
    
log4j.logger.com.fiscal = DEBUG    
log4j.logger.com.system = DEBUG    
    
log4j.logger.com.ibatis = DEBUG    
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG    
log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG    
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG    
log4j.logger.java.sql.Connection = DEBUG    
log4j.logger.java.sql.Statement = DEBUG    
log4j.logger.java.sql.PreparedStatement = DEBUG, fileout     
log4j.logger.java.sql.ResultSet = DEBUG    
    
log4j.appender.stdout=org.apache.log4j.ConsoleAppender      
    
log4j.appender.fileout=org.apache.log4j.RollingFileAppender     
log4j.appender.fileout.File=C://ibatis.log          #将日志输出的位置
log4j.appender.fileout.MaxFileSize=10000KB      
    
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout      
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} :%m%n      
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout      
log4j.appender.fileout.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH:mm:ss} :%m%n     
    
#log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout      
    
# log4j.logger.org=info    
#--------------------------------  

 


41、存放备注的值:$("#memo1").text(obj.memo);

42、json传值时,若使用org包,可直接out.print("具体字符串");而使用net包时,需注意out.println("必须使用println"),否则使用out.print("key",value);

43、url后续写了多余字符,${}}后的大括号会转为ascii

44、查询所有一级、二级菜单时,一级菜单出现重复现象,原因:因为首先是根据记录表去查询,记录表中仅仅记载的是部门及资源编号,资源编号只有到了后台才会区分一级/二级,当遍历资源编号时就会出现一级资源重复的现象。解决方法,存放一级菜单时使用HashSet,可以避免存入相同项。然后通过迭代set存入List
 中间问题:开始使用TreeSet,结果在存取时出现类型匹配问题,换为HashSet

45、<c:if test="${!empty reslist.submenu}">

46、修改Eclipse字体: windows->preferences->General->Appearance->colors and fonts 下面对:basic->text font

47、创建SqlServer中表时自动生成主键:
[eRecId] [bigint] IDENTITY (1, 1) NOT NULL ,

48、descripe写错(describe)

49、实体bean中第二个字母不能大写,否则ibatis会默认忽略第二个大写的字母,造成There is no READABLE property named异常
excRecId原本在实体bean中写为了eRecId

50、SqlServer中的设置长度代表的是字节=8位

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值