`
saiyaren
  • 浏览: 225677 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java web 开发问题总结4 原创-胡志广

阅读更多
121.Data truncation: Data too long for column 'variable' at row 1解决方法

在保存blob类型文件的时候,如果报出了上面的错误,则把数据库中的类型改变longblob类型就可以,原来的类型为blob

 

122.清空文件域的值

<input name="f" type="file" id="f" size="120">

//用下面的代码可以清空文件域的值

<input name="clear" type="button" id="clear" value="清空" onclick="document.getElementById('f').outerHTML=document.getElementById('f').outerHTML">

 

主要是这段代码:

document.getElementById('f').outerHTML=document.getElementById('f').outerHTML

 

 

123.freemarker变量赋值

<#assign x>${list?size}</#assign> 

只要把需要赋的值放在<#assign x></#assign>中间就可以了,一定要注意啊!!!!

listsize

${list?size}这里的list为集合

在范围内循环list:

<#list attachmentList[1..x] as list>

 

</#list>

这里的1是下标开始的位置

X是结束的下标,在上面我们可以定义一个变量给x赋值

注意:这里的X的类型必须为number类型,所以如果为其他类型这里需要把X转换为number可以这样[1..(x?number)],其次这里的Xlist的总数-1,所以不要越界,这里也需要注意,下面举个例子:

<#if sendAttachment??>

<#assign y>${sendAttachment?size}</#assign>

<#list sendAttachment[1..(y?number-1)] as c>

${c}

</#list></#if>

上面语句的意思:

<#if sendAttachment??>这句的意思为判断集合是否存在

<#assign y>${sendAttachment?size}</#assign>为变量y赋值

<#list sendAttachment[1..(y?number-1)] as c>的意思为:[1..(y?number-1)]

这里1的意思是下标从1开始循环,然后y?number-1的意思是把y转换为number类型然后-1

 

集合循环生成序列方式:

<#list listValue as list>

${list_index}

</#list>

 

 

<#assign x=1><#if sendAttachment??><#assign y>${sendAttachment?size}</#assign><#if y?number<=1><#else><#list sendAttachment[1..(y?number-1)] as c>

 

<#assign x=x+1>${x}.${c}

 

</#list></#if></#if>

 

<#if y?number<=1>判断集合长度是否小于等于1

 

 判断一个值是否存在,存在则读值,否则读默认值

<#if speedlevel?exists>${speedlevel}<#else>普通</#if>

 

判断是否为空

${name?if_exists}

124.powerDesigner反向生成库

右键库模型->properties->proview

 

这里面就是数据库的源代码了

 

 

125.使整个页面变灰的css样式(默哀天)

body{filter:Gray;}

css中加入该样式即可

 

126.文件输出流刷新

当用

FileOutputStream fos = new FileOutputStream("E:/3.zip");   BufferedOutputStream bs=newBufferedOutputStream(fos);

byte[] buffer = new byte[1024];

       while(true){

           try {

           int k = bi.read(buffer);

           File newfile=new File("E:\\3.zip");

           System.out.println(newfile.length()+"+++++++++++++++++++++");

//         System.out.println(k+"_______________________________________");

           if(k==-1){

              break;

           }else{

              bs.write(buffer);

           }

           } catch (IOException e) {

              e.printStackTrace();

           }

       }

       try {

           bs.flush();

           bs.close();

           bi.close();

       } catch (IOException e) {

           // TODO Auto-generated catch block

           e.printStackTrace();

       }

输出流进行输出时

 

最好在最后的时候刷新输出流

bs.flush();

否则有时候会在最后的时候少一些文件流的信息。

 

 

127.freemarker生成动态页面时,最好用shtml

freemarker生成动态页面时,最好不用把扩展名定义为html,除非生成真正的静态页(.html),否则最好应用shtml,或者其他扩展名

 

128Freemarker if用法

<#if sendName?exists>${sendName}<#else></#if>

 

sendName?existssendName??判断是否为null

 

 

129outlook保留服务器副本

 

然后点击更改->

 

 

选择其他设置->高级->勾选上“在服务器上保留邮件副本”

 

如果需要发送邮件需要进行如下设置:

在发送服务器中设置上用户名和密码

130.抛异常处理,直接输出到指定文件位置

       try {

           list = this.getHibernateTemplate().find(hql);

       } catch (Exception e) {

           e.printStackTrace(new PrintStream(new File("E:\\1.txt")));

       }

 

 

 

131mailto 传参数乱码

如果直接

<a href="mailto:?subject=中文">联系我们</a>

utf-8编码,传到outlook中将会是乱码,如果传中文的话,那么需要将页面的编码改为gb2312就没有问题了

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>无标题文档</title>

</head>

<body>

<a href="mailto:?subject=中文">联系我们</a> 

</body>

</html>

 

 

132Extjs图片路径问题

如页面是http://localhost:8080/caep/index.html

Extjs的文件夹在caep/js

那么设置图片路径为:

Ext.BLANK_IMAGE_URL="js/resources/images/default/s.gif";

取相对路径就可以了。

 

133.在PPTword中添加阴影效果


 

 

 

 

 

134.对象比较用equals

Integer类型和Integer 类型做比较时,如果2个数值很大,如18021802用“==”来比较则会有问题,所以用equals比较,是通过对象比较则没有问题;或者就用原始类型int类比较也可以

 

 

135Js动态写json key

needWomanRes[key]

 

 

136.在eclipse中导入jar

右键项目属性,打开窗口:

然后点击Add JARs…

可以添加本项目的jar

 

137.Js函数参数调用

js的函数中,将函数作为参数,则需要如下进行解析

eval(函数名);

 

例:

function test(way){

 //解析后就可以执行way方法了

 eval(way);

}

 

在页面中调用方法时:

onClick=”test(‘test1(/’aaaa/’)’)”

在进行传递参数时,有时需要进行字符转义/’/’

 

 

138.spring 事务处理异常回滚

service中,已经注册了事务代理

serviceA方法调用B方法时

必须A()和B(),这2个方法都进行throws Exception,抛异常处理,在控制器中才可以获取到异常;

如果A进行了try catch的形式进行自定义处理则不能进行捕获异常进行回滚。

 

 

139.表单项的NAME属性无法进行赋值

在页面中如果不进行添加上这一行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

那么如果用

document.getElementById("111").setAttribute("name","single");

对表单项的name属性进行赋值时,通过下面的语句变获取不到name属性

       alert(document.body.innerHTML);

所以如果需要对name属性进行操作时,需要加上w3c标准

 

 

140. JS 比较字符串忽略大小写

Var a=”Abc”;

Var b=”aBc”;

因为在js中比较只能用==

所以:

Alert(a==b);

输出结果是false

因为他们的值不一样,有大写有小写

所以我们就将他们统一转换为小写进行比较:

a =a. toLowerCase();

b=b. toLowerCase();

alert(a==b);

输出为true

所以我们如果要忽略大小写比较时,最好先将字符穿进行大小写统一转换在js中,刚才用的就是将字符穿统一转换为小写:toLowerCase()

 

 

141fck_docprops.html报错解决

Java的工程中加入fckMyEclipse会包fck_docprops.html错误,原因是因为用了怪异的标签,没有告诉MyEclipse,解决方法:

选中当前工程—properties—MyEclipse—validation—Excluded Resource下找到fck_docprops.html打钩就可以不检查该文件了,然后就不报错了!

142FCK配置

web.xml中配置上:

 

<servlet>

       <servlet-name>Connector</servlet-name>

       <servlet-class>

           net.fckeditor.connector.ConnectorServlet

       </servlet-class>

       <load-on-startup>1</load-on-startup>

    </servlet>

 

    <servlet-mapping>

       <servlet-name>Connector</servlet-name>

              <url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>

    </servlet-mapping>

 

然后在classpath下配置上:

fckeditor.properties文件

内容为:

connector.userActionImpl=net.fckeditor.requestcycle.impl.UserActionImpl

 

 

然后需要在lib中引入这么些包

Java-core-2.4.1.jarfck的核心包,web.xml中配置中也是引入的该包内容,如果不进行该包配置,那么启动项目时会找不到相应的类,如报错:

找不到net.fckeditor.connector.ConnectorServlet

 

 

143.Mysql #1005 - Can't create table '.\anykorea\anykorea_feedback.frm' (errno: 121)错误解决办法

 

#1005 - Can't create table '.\anykorea\anykorea_feedback.frm' (errno: 121)在创建表时如果mysql报了上面的错误,那么是因为在创建表时的外键的名称与以前表的外键名称一样了,所以改下外键的名称重新创建表就可以了。

 

 

144对象未注入ID,无法找到对象引起的HIBERNATE问题解决方法

 

org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: com.ecoinfo.caep_auth.vo.AuthMenuModel; nested exception isorg.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.ecoinfo.caep_auth.vo.AuthMenuModel

 

在一个对象(POJO)进行保存关联对象时,需要进行注入,而注入时,对象不能是个无索引的对象,上面的错误就是AuthMenuModel这个类,因为没有注入ID,所以在库中找不到,所以被定义为一个未保存的临时对象,所以在new了一个临时对象后,如果需要外键插入一定要setID,否则会找不到,就会报这个问题了,无法出现临时对象,所以将AuthMenuModel注入ID后,再插入到对象中,然后保存就没有问题了。

 

例:

AuthUserPermission authUserPermission=new AuthUserPermission();

AuthMenuModel authMenuModel=new AuthMenuModel();

       authDao.saveObject(authUserPermission);

 

这样执行后,就会报上面的错误,因为authMenuModel是个临时对象,在库中没有找到;

AuthUserPermission authUserPermission=new AuthUserPermission();

AuthMenuModel authMenuModel=new AuthMenuModel();

authMenuModel.setId(menuModelKey);

       authDao.saveObject(authUserPermission);

这样注入ID后,对象就有了索引,根据索引可以注入了,所以就不会出现问题了。

 

 

145 union union all 用法总结

大概的思想是用union union all

 

--合并重复行

select * from A

union

select * from B

 

 

--不合并重复行

select * from A

union all

select * from B

 

 

按某个字段排序

--合并重复行

select *

from (

select * from A

union

select * from B) AS T

order by 字段名

 

--不合并重复行

select *

from (

select * from A

union all

select * from B) AS T

order by 字段名

 

 

146 hibernate 父类获取子类类型

hibernate 中配置类子类后,其中用一表多类的方式进行配置后,那么将会有一个是隐性字段,那么我们如何通过父类获取子类类型呢?并且在hql中进行查询,那么在下面举个例子来看一下:

其中hbm.xml配置如下:

    <class name="com.ecoinfo.caep_auth.vo.AuthAuthGU" table="auth_auth_g_u">

        <id name="id" type="long">

            <column name="id" />

            <generator class="identity" />

        </id>

        <discriminator type="java.lang.String" column="type" />

        

        <many-to-one name="authMenuModel"  fetch="select">

            <column name="menu_model_id" />

        </many-to-one>

        <many-to-one name="permissions">

        <column name="permission_id"></column>

        </many-to-one>

         <property name="status" type="java.lang.Integer">

            <column name="status" />

        </property>

        <subclass name="com.ecoinfo.caep_auth.vo.AuthUserPermission" discriminator-value="user">

        <many-to-one name="user" fetch="select">

              <column name="auth_id" />

        </many-to-one>

        </subclass>

        <subclass name="com.ecoinfo.caep_auth.vo.AuthUserGroupPermission" discriminator-value="group">

        <many-to-one name="group" fetch="select">

               <column name="auth_id" />

        </many-to-one>

        </subclass>

      

</class>

 

那么如果我们通过父类要查询该类是属于哪种类型如何进行判断呢?

那么就用反射的机制进行判断

String hql=”from AuthAuthGU aag where aag.class= AuthUserPermission”;

那么也就是类型为AuthUserPermission类的被查询出来(也就是type类型为user

 

 

147.FCK 工具栏创建、修改和引用

fckconfig.js中找到FCKConfig.ToolbarSets 段,默认有两个工具条样式,一个是Default,一个是Basic

如:

FCKConfig.ToolbarSets["Default"] = [

       ['Source','DocProps','-','Save','NewPage','Preview','-','Templates'],

       ['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],

       ['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],

      ['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton','HiddenField'],

       '/',

       ['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],

       ['OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'],

       ['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],

       ['Link','Unlink','Anchor'],

       ['Image','Flash','Table','Rule','Smiley','SpecialChar','PageBreak'],

       '/',

       ['Style','FontFormat','FontName','FontSize'],

       ['TextColor','BGColor'],

       ['FitWindow','ShowBlocks','-','About']          // No comma for the last row.

] ;

 

FCKConfig.ToolbarSets["Basic"] = [

       ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']

] ;

 

 

其中语法:

其定制语法很简单
[]  
表示一个工具条,
[]  
中的短横线'-'表示一个垂直分割线
''  
两个单引号中间加一个标识符表示一个工具栏按钮,具体的对应关系可以自己找。
'/' 
作用类似于一个回车。使该符号后面的工具栏新起一行排列。

 

如果需要新建一个工具栏样式则:

FCKConfig.ToolbarSets["Train"] = [

       ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink','-','About']

] ;

 

我新建了一个工具栏Train,并且里面有相应的按钮属性

然后在我们的页面中进行调用,如:

       <FCK:editor id="content" basePath="/china-eia/FCKEditor/" toolbarSet="Train" width="100%" height="270">${content }                  

                            </FCK:editor>

 

toolbarSet="Train"为新建的工具栏就可以了,由于版本和调用方式不同,可能使用上有不一致,但是只要将页面中的toobarSet设置为相应的名称就OK了。

 

148 sqlexistsin的效率区别

两张表——用户表TDefUseruseridaddress,phone)和消费表 TAccConsume(userid,time,amount),需要查消费超过5000的用户记录。

exists:

select * from TDefUser

where exists (select 1 from TAccConsume where TDefUser.userid=TAccConsume.userid and TAccConsume.amount>5000)

in:

select * from TDefUser

where userid in (select userid from TAccConsume where TAccConsume.amount>5000)

 

通常情况下采用exists要比in效率高。

 

exists()后面的子查询被称做相关子查询 他是不返回列表的值的.只是返回一个turefalse的结果(这也是为什么子查询里是"select 1"的原因,换成"select 6"完全一样,当然也可以select字段,但是明显效率低些)

其运行方式是先运行主查询一次 再去子查询里查询与其对应的结果 如果是ture则输出,反之则不输出.再根据主查询中的每一行去子查询里去查询.

 

in()后面的子查询 是返回结果集的,换句话说执行次序和exists()不一样.子查询先产生结果集,然后主查询再去结果集里去找符合要求的字段列表去.符合要求的输出,反之则不输出.

 

149 MySql#1166 - Incorrect column name 的解决方法

今天在用phpMyAdmin给数据库中的表添加一个字段时报如下的错误

错误

SQL 查询:

CREATE TABLE `abc`.`html_content` (

`category_id` INT NULL ,
`h_status ` TINYINT NULL

) ENGINE = MYISAM ;

MySQL 返回:

#1166 - Incorrect column name 'h_status '

解决方法,字段是复制的吧,复制的里面是不是有空格?去掉就可以了,嗯

 

150运行Rose 提示错误未找到 suite objects.dll

我在win7上安装的目录是E:\Program Files\Rational

suite objects.dllCommon(大写)下,

打开环境变量(如下说明)查看到rose的路径下Common是大写的common,于是重新把path里的路径重写了一下。这次再运行····OK··

其实suite objects.dll 还在你的电脑中,只是环境变量错了或者没设置,造成找不到。我安装的地址是E:\Program Files\Rational\suite objects.dllE:\Program Files\Rational\Common文件夹下。解决步骤如下:

1.
右击 我的电脑
2.
选择 高级->环境变量
3.
编辑path,在原path添加 ";E:\Program Files\Rational\Common"(引号内添加,引号不用加进去)
4.
启动roseOK

 

 

151 sql合并表,标识字段来源

select id,name,englisheName, 1 as "table" from tab1

UNION

select id,name,englisheName, 2 as "table" from tab2

 

合并后,在每个查询语句中加入标识判断合并字段来源

 

152.动态加载图像

<script language="JavaScript">

     myImage = new Image;

       myImage.src = "Tellers1.jpg";

</script>

 

153 网页关闭时调用js

<script language="JavaScript">

       function a(){

              alert();

       }

       window.onunload = a; //注册关闭后的事件

 

</script>

 

154当链接(a)触发单击事件时进行监听

document.onclick   =   function(e){

    var   e   =   e   ||   event;

    var   element   =   e.target   ||   e.srcElement;

    if(element.tagName.toLowerCase()   ==   "a"){

        element.isVisited   =   true;

             

    }

}

155 Js获取当前url

location.href

 

156 Js获取父页url

If window.opener.!=undefined){

window.opener.location.href

}

 

 

157 jsp中获取前一个页面的url包括参数

假如有两个页面  index.jsp indexto.jsp

 index.jsp中有如下链接
<a href="indexto.jsp">indexto</a>

 indexto.jsp
<%
String url = request.getHeader("Referer");
System.out.println(url);
%>

当我们访问 ../index.jsp?id=2 时进入index页面点击indexto链接.

在控制台将输出../index.jsp?id=2 也就是说在indexto.jsp页面获取了,indexurl包括参数.

 

 

158 win7下安装oracle10g的方法 (Forward)

win7下安装oracle10g的方法

查找安装文件夹中的refhost.xml文件. (Oracle 10g客户端\stage\prereq\client\refhost.xmloracle10g服务端\stage\prereq\db\refhost.xml)在此文件中 添加如下内容
<!--Microsoft Windows 7-->
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
再到install目录中找到oraparam.ini(Oracle 10g客户端\install\oraparam.inioracle10g服务端\install\oraparam.ini);在其中添加如下内容
[Windows-6.1-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300

[Windows-6.1-optional]

 

159 Js弹开窗口方式

Window.open();

window.showModalDialog();

 

 

160 Referrer ie 获取不到的几种解决方法

 

(1)    window.open方式打开新窗口

示例:

<a href="#" onclick="window.open('http://www.google.com')">访问Google</a>点击此链接会在新窗口打开Google网站,我们在地址栏中输入以下js代码就可以看到发送的referrer了。

 

javascript:alert(document.referrer)测试结果:

 

IE5.5+ 下返回空字符串

 

Chrome3.0+Firefox3.5Opera9.6Safari3.2.2均正常返回来源网页

 

如果是同个域名下通过此方式跳转的,那么我们可以通过访问windoww.opener对象去获取丢失的referrer信息。代码如下:

 

<script type="text/javascript">

    var referrer = document.referrer;

    if (!referrer) {

        try {

            if (window.opener) {

                // IE下如果跨域则抛出权限异常

                // SafariChromewindow.opener.location没有任何属性

                referrer = window.opener.location.href;

            }

        }

        catch (e) {}

    }

</script>跨域的话则没辙了~

 

161 Js获取系统分辨率

<script type="text/javascript" language="javascript"> 
document.write('
您显示器的分辨率为:\n' + screen.width + '×' + screen.height + ' 像素');
</script>

 

screen.width

 

screen.height

 

 

162. powerDesigner只显示表不显示字段和类型的解决方法

 

tools->Display Proferences….弹出如下窗口

选择table

勾选Column

选择all Column

然后选择Column下的data type

然后选择set as Default

点击Advance

点击ok

弹出窗口:

然后选择all symbols

这样就可以应用全部了,然后显示结果如下:

这样就会显示字段名称和类型了

 

163 Linux 创建shell

Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程.
这里举一个创建执行shell脚本的例子供我们学习交流。
假设现在是在:/home/rhythm/test 这样一个目录下

#创建一个脚本文件,shell脚本的后缀名一般都是.sh,类似于windows下的.bat
:touch test.sh

#让我们的文件可执行
:chmod +x test.sh

#vim命令进入文件编辑(查看可以用cat filename
:vim test.sh

#点击"A"进入编辑模式,并输入内容

#定义变量
HOMEDIR=/home/rhythm/home
FILENAME=test.war

#[ -f "somefile" ] :判断是否是存在这样的文件。注意这里的空格很重要,要确保方括号的空格。
if [ -f $HOMEDIR/$FILENAME ]; then
echo "
正在部署新版本..."
echo "
请稍等30..."
mv $HOMEDIR/$FILENAME
sleep 30
echo "
新版本已经部署..."
else
echo "
没有要部署的..."
fi

#点击"Esc"然后"Shift+:"进入命令行模式
#
保存并推出
:wq

#加上软链接,以便运行。
:ln -s /home/rhythm/test/test.sh /usr/bin/test.sh

#运行并调试
:sudo test.sh

更多:http://hi.baidu.com/lipeng_tsinghua/blog/item/0dc816fa8c05b59759ee903a.html

 

164虚拟64linux系统,cpu不支持解决方法

今天在笔记本上试图虚拟一个64LINUX系统,VMWARE报错。

尝试虚拟的操作系统是OracleEnterprise Linux 4 for X86-64,因此在系统选项中选择了Other Linux 64bit,尝试系统后系统报错:

This CPU is VT-capable, but VT is not enabled (check your BIOS settings).
You have configured this virtual machine as a 64-bit guest operating system. However, this host's CPU is not capable of running 64-bit virtual machines or this virtual machine has 64-bit support disabled.
For more detailed information, see 
http://www.vmware.com/info?id=152

点击确定,屏幕显示错误信息为:

Your CPU does not support long mode. Use a 32bit distribution.

对于这种情况,需要设置BIOSInter Virtualization Technology设置为ENABLE,然后重启系统,就可以了。

如果BIOS设置了没有类似的设置,那么系统就无法虚拟64位的系统了。

 

165 Centos 分区

经过长时间的使用CentOS,对CentOS分区有一定的总结。本人在这里所要说的,是个人在安装Centos时候对CentOS分区所得的心得。
CentOS分区的时候有按自动分区的,这样子CentOS分区虽不会出现什么错误,但是对于个人自己的要求不同就会出现这样子或那样的问题。根据我的地盘我做主的原则,我们还是要对CentOS分区有一定的了解。

在这里我的硬盘是80G,内存是1G。我的分区原则是:



 

 

上面我的分区方式,下面是一些网友的方式:

 

 

166 解决centos putty ssh 和终端乱码的方法

#vi /etc/sysconfig/i18n

LANG="zh_CN.GB18030"

LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"

SYSFONT="latarcyrheb-sun16"

 

保存

#source /etc/sysconfig/i18n

重新启动机器(这点很重要,如果不重起,那么终端则显示为乱码)

 

167 linux rpm

rpm –ihv [名称].rpm

安装文件显示进度

 

linux下安装rpm包时经常会遇到下面这个问题:
error: Failed dependencies:
.....................................................
省略号表示安装此rpm缺少的包。
遇到此问题时可以在安装rpm包命令的后面加两个参数,如:
rpm -ivh libstdc++5.0-3.3.3-62745cl.i386.rpm
改成:
rpm -ivh libstdc++5.0-3.3.3-62745cl.i386.rpm --nodeps –force

加上那两个参数的意义就在于,
安装时不再分析包之间的依赖关系而直接安装,
也就不会再提示error: Failed dependencies:这样的错误了

 

168 Linux 下安装oracle 11g 问题解决方法

报“无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色”

解决方法:

xhost +

root下执行

 

执行./runInstall 时报权限不够,那么则将database oracle11g的安装目录改变权限

Chown –R 775 database

 

169 Linux 下启动oracle 监听报错解决方法

切换到oracle用户下

su - oracle

启动监听:

lsnrctl start

报如下错误:

TNSLSNR for Linux: Version 11.2.0.1.0 - Production

System parameter file is /u01/oracle/product/11.2.0/dbhome_1/network/admin/listner.ora

Log messages written to /u01/oracle/diag/tnslsnr/oracle11g/listener/alert/log.xl

Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

TNS-12555: TNS:permission denied

 TNS-12560: TNS:protocol adapter error

  TNS-00525: Insufficient privilege for operation

   Linux Error: 1: Operation not permitted

 

Listener failed to start. See the error message(s) above...

 

解决方法:

通过日志错误信息可知,应该跟权限有关,最后发现了一个隐藏的信息,

/var/tmp/.oracle这个目录比较特殊,如果oracle没有对此目录的操作权限的话,oracle用户就无法进入/var/tmp/.oracle文件夹.

方法很简单,执行:chmod 777 /var/tmp/.oracle 

之后就ok.

 

 

170 本地监听无法连接服务解决方法

当连接服务器时,报如下错误

ORA-12154

首先,测试服务器的监听是否开启,如果开了的话,那么测试本地

点击

2项都默认就ok

进行本地网络服务名配置时需要注意

服务名也就是oraclehostname

主机名则是ip,192.168.110.128

进行测试

测试成功

 

 

171 Ssh 上传报错解决方法

提示encountered 1 errors during the transfer错误的解决方法:

我在用ssh 往服务器上传文件时,系统报错:
encountered 1 errors during the transfer
文件怎么也传输不上去,经过实验终于找到了解决方法,
那就是:
將要传输的文件拷贝到其他的分区上,然后再传就可以了

 

172 配置svn权限

[/]

*=rw

[/]根目录

*所有用户

 

[jdodrc:/saa/]

admin=r

huzhg=rw

 

Jdodrc是库

jdodrc:/saa/是库下的/saa/文件夹

admin可对jdodrc下的saa进行读

huzhg可对jdodrc下的saa进行读和写

 

173 spring3 整合 hibernate3.3struts2的解决方法

(1)Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces

需要加上:cglib-2.1.3.jar

 

加上cglib-2.1.3.jar包后,又会出现如下错误:

nested exception is java.lang.NoClassDefFoundError: org/objectweb/asm/Type

 

原因是Spring中的cglib-nodep-2.1.3.jarHibernate中的cglib-2.2.jar相冲突!

两种框架整合时Spring中的cglib-nodep-2.1.3.jar是必须的,取消Hibernate中的cglib-2.1.3.jar即可

 

所以删掉cglib-2.1.3.jar,加上cglib-nodep-2.1.3.jar就可以了

 

(2)    Xlint:invalidAbsoluteTypeName异常

这个异常是因为aop的配置出现了错误,请仔细检查aop路径

<aop:pointcut id="txServices" expression="execution(* dao.*.*(..))"/>

第一个*是范围(public,private)

后面的*代表路径也可以写详细的路径

..是任何参数

 

(3) tx标签配置事务代理

<!-- 配置事务管理器 --> 
 <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
   <ref local="sessionFactory"/>
  </property>
 </bean>
    
    <!-- 
配置事务特性 -->       
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
     <tx:attributes>
      <tx:method name="add*" propagation="REQUIRED"/>
      <tx:method name="insert" propagation="REQUIRED"/>
      <tx:method name="save" propagation="REQUIRED"/>
      <tx:method name="modify*" propagation="REQUIRED"/>
      <tx:method name="delete*" propagation="REQUIRED"/>
     
      <tx:method name="*" read-only="true" propagation="NEVER"/>
     </tx:attributes>
    </tx:advice>
    
    <!-- 
配置那些类的方法进行事务管理 -->
    <aop:config proxy-target-class="true">
     <aop:pointcut id="allManagerMethod" expression="execution (* org.lxh.ssh.PersonDAOImpl.*(..))"/>
     <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
    </aop:config>          

 

(4) 整合springstruts2

Struts.properties 文件:

struts.objectFactory = org.apache.struts2.spring.StrutsSpringObjectFactory

struts.xml:

<struts>

<constant

name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />

  ...

</struts>

 

(5) 解决java.lang.NoClassDefFoundError: javax/transaction/TransactionManager问题办法是:

下个jta.jar就可以了。很不好意思做了上面错误的回答。

下载地址:http://java.sun.com/products/jta/

 

(6) Struts2.1.8.1 Unable to load configuration 解决方案

导入fileupload

 

 

174 启动oracle监听错误解决方法

[oracle@localhost ~]$ lsnrctl start

lsnrctl:error while loading shared libraries: /u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

 

解决方法:

关闭 selinux :编辑 /etc/selinux/config 文件,添加 SELINUX=disabled

或者修改 libclntsh.so.11.1 文件的权限(这个可以)
chcon -t texrel_shlib_t /u01/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1

 

175 解决oracle数据启动不了

lsnrctl: lsnrctl: cannot execute binary file

这个不是oracle的问题,而是在改linux编码方式时,vi /etc/sysconfig/i18n,我少了个引号,在切换用户时,可以看到如下错误:

-bash: /etc/sysconfig/i18n: line 3: unexpected EOF while looking for matching `"'

-bash: /etc/sysconfig/i18n: line 4: syntax error: unexpected end of file

然后我们检查/etc/sysconfig/i18n这个文件,检查好内容保存后,在重新启动oracle监听就可以了,这些都是出自不细心的问题,而且问题在linux不在oracle的配置

 

 

 

176 linux下安装oracle报错:./runInstaller:line 55

运行./runInstaller,它直接给我报权限不够。

解决方法:

chmod  -R 755 安装包所在路径

 

 

177.调整linux分辨率

 

 

178 Hibernate SQL方言 (hibernate.dialect)

如果出现如下错误,则可能是Hibernate SQL方言 (hibernate.dialect)设置不正确。
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]'last_insert_id' 
不是可以识别的 函数名。

RDBMS

方言

DB2

org.hibernate.dialect.DB2Dialect

DB2 AS/400

org.hibernate.dialect.DB2400Dialect

DB2 OS390

org.hibernate.dialect.DB2390Dialect

PostgreSQL

org.hibernate.dialect.PostgreSQLDialect

MySQL

org.hibernate.dialect.MySQLDialect

MySQL with InnoDB

org.hibernate.dialect.MySQLInnoDBDialect

MySQL with MyISAM

org.hibernate.dialect.MySQLMyISAMDialect

Oracle (any version)

org.hibernate.dialect.OracleDialect

Oracle 9i/10g

org.hibernate.dialect.Oracle9Dialect

Sybase

org.hibernate.dialect.SybaseDialect

Sybase Anywhere

org.hibernate.dialect.SybaseAnywhereDialect

Microsoft SQL Server

org.hibernate.dialect.SQLServerDialect

SAP DB

org.hibernate.dialect.SAPDBDialect

Informix

org.hibernate.dialect.InformixDialect

HypersonicSQL

org.hibernate.dialect.HSQLDialect

Ingres

org.hibernate.dialect.IngresDialect

Progress

org.hibernate.dialect.ProgressDialect

Mckoi SQL

org.hibernate.dialect.MckoiDialect

Interbase

org.hibernate.dialect.InterbaseDialect

Pointbase

org.hibernate.dialect.PointbaseDialect

FrontBase

org.hibernate.dialect.FrontbaseDialect

Firebird

org.hibernate.dialect.FirebirdDialect

 

jdbc连接各种数据库方式列表

下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。

1Oracle8/8i/9i数据库(thin模式)

Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl
为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password); 

2DB2数据库

Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample
为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password); 

3Sql Server7.0/2000数据库

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb
为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password); 

4Sybase数据库

Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB
为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps); 

5Informix数据库

Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB
为数据库名
Connection conn= DriverManager.getConnection(url); 

6MySQL数据库

Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//
或者Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB
为数据库名
Connection conn= DriverManager.getConnection(url); 

7PostgreSQL数据库

Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB
为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password); 

8access数据库直连用ODBC

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;

 

179 Spring 3.0 初始化错误

报如下错误:

java.lang.NoClassDefFoundError: org/springframework/expression/PropertyAccessor

 

org.springframework.expression-3.0.5.RELEASE.jar包,加到lib下即可

 

 

180 删除存在的表时,提示“ORA-00942”错误

删除存在表时报“ORA-00942”错误,那么请查看你的表名中是否有小写?如果有小写,那么删除时请在删除表上加上引号,例:

Drop table “test

 

  • 大小: 44.6 KB
  • 大小: 15.1 KB
  • 大小: 28.9 KB
  • 大小: 73.9 KB
  • 大小: 42.5 KB
  • 大小: 3.3 KB
  • 大小: 49.6 KB
  • 大小: 7.4 KB
  • 大小: 4.1 KB
  • 大小: 49 KB
  • 大小: 11.5 KB
  • 大小: 6.4 KB
  • 大小: 12.2 KB
  • 大小: 12.2 KB
  • 大小: 2.7 KB
  • 大小: 35.2 KB
  • 大小: 33.3 KB
  • 大小: 30.6 KB
  • 大小: 31 KB
  • 大小: 35.4 KB
  • 大小: 31.2 KB
  • 大小: 33.1 KB
  • 大小: 53.8 KB
  • 大小: 9.6 KB
  • 大小: 11.8 KB
  • 大小: 11.5 KB
1
5
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics