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位