An internal error occurred during: "Updating Maven Project". Unsupported I问题解决 |
maven |
http://andinker.iteye.com/blog/1808030 |
1、右键点击我的项目,选择 Maven -> Remove(disable) Maven Nature.
2、打开cmd命令行,进入到你的工程文件夹中,并且 运行 “mvn eclipse:clean”
3、右键点击你的工程,并且选择 “Configure -> Convert into Maven Project”
然后可以重新刷新mvn项目了
问题1:项目中添加的引用jar包,在编译的时候获取不到
问题2:Maven Dependencies 文件夹消失
Maven Dependencies 文件夹消失 通过这种方式处理之后,执行 右键点击项目,选择 maven -> update project ...
|
插入oracle大字段 |
oracle |
|
/**
* 更新大字段,目前只支持单个字段
* 插入clob对象的原理: 先插入空的clob字段到数据库(此方法未包含此操作),查询并锁定这条记录,然后更新clob对象到这条记录
* @param tableName 表名称
* @param pId 主键名称
* @param pValue 主键值
* @param column 更新大字段名称
* @param value 大字段值
* @return
*/
public static int updateClobColumn(String tableName, String pId, String pValue,
String column, String value) {
int updateRow = 0;
// 更新clob字段
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
// 插入clob对象的原理: 先插入空的clob对象,查询并锁定这条记录,然后更新clob对象到这条记录
Clob clob = null;
try {
conn = DaoUtil.getConnection();
// 查询并锁定插入的记录
StringBuilder sql = new StringBuilder(100);
sql.append("select ").append(column).append(" from ").append(tableName)
.append(" where ").append(pId).append(" = ? for update");
stmt = conn.prepareStatement(sql.toString());
stmt.setObject(1, pValue);
rs = stmt.executeQuery();
if (rs.next()) {
clob = rs.getClob(1);
clob.setString(1, value);
// 更新clob到数据库
sql = new StringBuilder(100);
sql.append("update P_NEWS set ").append(column)
.append(" = ? where ").append(pId).append(" =?");
stmt = conn.prepareStatement(sql.toString());
stmt.setClob(1, clob);
stmt.setObject(2, pId);
updateRow = stmt.executeUpdate();
}
} catch (Exception e) {
e.printStackTrace();
Log.getLogger().error("数据库操作失败", e);
} finally {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
Log.getLogger().error("数据连接关闭失败", e);
}
}
return updateRow;
}
|
tomcat 启动的服务手机通过wifi无法访问 |
服务 |
|
tomcat 启动的服务手机通过wifi无法访问
狗日的:
防火墙开启指定端口或关闭防火墙,本地开发为了方便,关闭爽快
|
js匿名执行 |
javascript |
|
!function(s){
alert(s);
}('另类的匿名函数自执行');
====================================
(function($){
})(jQuery)
======================================
匿名函数还可以自己调用,为什么?
(function(e) {
alert("1");
var a,b,c,d;
e(a, b, c, d);
})
(function(a, b, c,d){
alert("2");
})
|
mysql md5 concat |
mysql |
|
SELECT MD5(MD5(CONCAT('123456','a53b51'))) FROM D_USER t;
|
导出表数据到excle、txt |
oracle |
http://blog.163.com/cyh_1987/blog/static/394692920107335225521/ |
set feedback off heading off verify off trimspool off
set pagesize 0 linesize 1000
--define fil= 'F:\study\SQL\oracle\outputData\insert.txt'
define fil= 'F:\study\SQL\oracle\outputData\insert.sql'
prompt *** Spooling to &fil
spool &fil
--导出文本形式txt/csv
--select ID||','||'"'||dealNAME||'"'||','||'"'||type||'"'||','||to_char(GMT_MODIFIED,'yyyy-MM-dd HH24:MI:SS') from alarm;
--导出插入语句
select 'insert into alarm values('''||ID||''','''||dealNAME||''','||to_char(GMT_MODIFIED,'yyyy-MM-dd HH24:MI:SS')||');'from alarm;
spool off;
|
oracle 导出表结构 |
oracle |
http://topic.csdn.net/u/20100805/10/d0e5dbe1-7233-4be1-8c37-15a0c923fa5a.html |
set serveroutput on -- 打开 DBMS_OUTPUT 输出
set long 999999 -- 设置最大可返回的 lob 类型数据的大小
set feedback off -- 关闭执行查询时的反馈信息(查询影响的行数)
spool temp.sql -- 将查询结果保存到 temp.sql 文件
SELECT DBMS_METADATA.GET_DDL('TABLE',table_name) FROM USER_TABLES where table_name = '大写表名'; -- 通过 dbms_metadata.get_ddl 函数获取用户表的定义
spool off -- 关闭保存
|
查找包下所有的类 |
java |
查找包下所有的类 |
/**
* 获得包下的类
*
* @param packageName
* The base package
* @return The classes
* @throws ClassNotFoundException
* @throws IOException
*/
public static Class[] getClasses(String packageName)
throws ClassNotFoundException, IOException {
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
assert classLoader != null;
String path = packageName.replace('.', '/');
Enumeration<URL> resources = classLoader.getResources(path);
List<File> dirs = new ArrayList<File>();
ArrayList<Class> classes = new ArrayList<Class>();
while (resources.hasMoreElements()) {
URL resource = resources.nextElement();
String p = "";
if (resource.getFile().indexOf("!") >= 0) {// 在其他的jar文件中
p = resource.getFile().substring(0,
resource.getFile().indexOf("!")).replaceAll("%20", "");
} else {// 在classes目录中
p = resource.getFile();
}
if (p.startsWith("file:/"))
p = p.substring(6);
if (p.toLowerCase().endsWith(".jar")) {
JarFile jarFile = new JarFile(p);
Enumeration<JarEntry> enums = jarFile.entries();
while (enums.hasMoreElements()) {
JarEntry entry = (JarEntry) enums.nextElement();
String n = entry.getName();
if (n.endsWith(".class")) {
n = n.replaceAll("/", ".").substring(0, n.length() - 6);
if (n.startsWith(packageName)) {
classes.add(Class.forName(n));
}
}
}
} else {
dirs.add(new File(p));
}
}
for (File directory : dirs) {
classes.addAll(findClasses(directory, packageName));
}
return classes.toArray(new Class[classes.size()]);
}
/**
* 查找一个文件夹下的文件
*
* @param directory
* The base directory
* @param packageName
* The package name for classes found inside the base directory
* @return The classes
* @throws ClassNotFoundException
*/
public static List<Class> findClasses(File directory, String packageName)
throws ClassNotFoundException {
List<Class> classes = new ArrayList<Class>();
if (!directory.exists()) {
return classes;
}
File[] files = directory.listFiles();
for (File file : files) {
if (file.isDirectory()) {
assert !file.getName().contains(".");
classes.addAll(findClasses(file, packageName + "."
+ file.getName()));
} else if (file.getName().endsWith(".class")) {
classes.add(Class.forName(packageName
+ '.'
+ file.getName().substring(0,
file.getName().length() - 6)));
}
}
return classes;
}
|
maven scope依赖包作用域 |
maven |
maven scope依赖包作用域 |
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<!-- provided范围的依赖存在于编译 -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
|
js遍历后台map输出的json格式数据 |
js |
|
后台:Map<String,String> groupMap = new TreeMap<String,String>(){{
put("1","广汇运营");
}};
json.put("groupMap",groupMap);
output(json);
前台:
var result = {"groupMap":{"1":"广汇运营","2":"人保运营","201":"rtet","202":"tretert","203":"rtert","3":"test"}};
var groupMap = result.groupMap;
for (v in groupMap)
{
console.log(v +"--"+groupMap[v]);
}
|
过滤json不需要使用属性,解决hibernate延迟加载问题 |
java |
http://yoyang.iteye.com/blog/651895 |
/**
* 过滤json不需要使用属性,解决hibernate延迟加载问题
* @param obj 对象
* @param excludes 过滤的属性名数组
* @return
*/
public static JSONArray jsonPropertyFilter(Object obj,String [] excludes){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
JSONArray jsonArray = JSONArray.fromObject(obj,jsonConfig);
return jsonArray;
}
使用的时候将延迟加载的属性过滤掉: role one-to-many privileges
jsonObject.put("roleList", JsonUtil.jsonPropertyFilter(roles,
new String[] { "privileges" }));
|
eclipse 默认文件编码 |
开发工具 |
|
windows --> preferences --> General --> Content types --> Text tree --> Jsp 我 们设置最下面的Default Encoding为UTF-8即可.
|
让httpclient接受所有ssl证书https |
httpclient |
让httpclient接受所有ssl证书https |
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.UnknownHostException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.SocketFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.apache.commons.httpclient.params.HttpConnectionParams;
import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
public class MySecureProtocolSocketFactory implements SecureProtocolSocketFactory {
static{
System.out.println(">>>>in MySecureProtocolSocketFactory>>");
}
private SSLContext sslcontext = null;
private SSLContext createSSLContext() {
SSLContext sslcontext=null;
try {
sslcontext = SSLContext.getInstance("SSL");
sslcontext.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (KeyManagementException e) {
e.printStackTrace();
}
return sslcontext;
}
private SSLContext getSSLContext() {
if (this.sslcontext == null) {
this.sslcontext = createSSLContext();
}
return this.sslcontext;
}
public Socket createSocket(Socket socket, String host, int port, boolean autoClose)
throws IOException, UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(
socket,
host,
port,
autoClose
);
}
public Socket createSocket(String host, int port) throws IOException,
UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(
host,
port
);
}
public Socket createSocket(String host, int port, InetAddress clientHost, int clientPort)
throws IOException, UnknownHostException {
return getSSLContext().getSocketFactory().createSocket(host, port, clientHost, clientPort);
}
public Socket createSocket(String host, int port, InetAddress localAddress,
int localPort, HttpConnectionParams params) throws IOException,
UnknownHostException, ConnectTimeoutException {
if (params == null) {
throw new IllegalArgumentException("Parameters may not be null");
}
int timeout = params.getConnectionTimeout();
SocketFactory socketfactory = getSSLContext().getSocketFactory();
if (timeout == 0) {
return socketfactory.createSocket(host, port, localAddress, localPort);
} else {
Socket socket = socketfactory.createSocket();
SocketAddress localaddr = new InetSocketAddress(localAddress, localPort);
SocketAddress remoteaddr = new InetSocketAddress(host, port);
socket.bind(localaddr);
socket.connect(remoteaddr, timeout);
return socket;
}
}
//自定义私有类
private static class TrustAnyTrustManager implements X509TrustManager {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[]{};
}
}
}
使用:
然后按如下方式使用HttpClient
Protocol myhttps = new Protocol("https", new MySecureProtocolSocketFactory (), 443);
Protocol.registerProtocol("https", myhttps);
HttpClient httpclient=new HttpClient();
|
maven 使用代理下载 |
maven |
|
使用google代理:开发人员必备代理
参见项目:https://code.google.com/p/goagent/
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username></username>
<password></password>
<host>127.0.0.1</host>
<port>8087</port>
<nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>
|
EA(enterprise architecture)中的UML反向工程 |
项目管理 |
http://dongchen916.iteye.com/blog/431046 |
主要的任务是把source包导入到EA中,然后利用里面的反向工程自动生成UML图
1.首先 先创建一个工程 勾选出里面的class
2.然后在工程的任意一个文件夹上点击鼠标右键 选中code engineering 然后选import source directory
3.然后就是进行一些必要的设置 ,比如选择语言 uml都显示什么之类的 我是按照package显示的
4.然后就可以开始了 全部导入完成以后 可以在project browser里面找到这些UML图 然后单击屏幕最下方的一个树形图一样的小图标 ,自动排布一下就可以了
5.package里面的类可以粘贴到任意的一个UML图中,如果和这个UML有联系,比如是这个package里面的类的一个子类的话,EA都会在粘帖完后自动的形成关系。
这个工具还有好多别的功能,总之觉得很好用
|
maven下载依赖包以及源码 |
项目管理, maven |
http://obullxl.iteye.com/blog/647330 |
<!-- eclipse插件,设定下载Source --> springside
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
</configuration>
</plugin>
<build/>
<plugins/>
|
maven-source-plugin提供项目自动将源码打包并发布的功能 |
项目管理, maven |
自动打包,发布源代码 |
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
|
maven怎么下源码 |
maven, 项目管理 |
|
mvn dependency:sources 下载依赖包的源代码
使用参数: -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。
|
解决:org.tigris.subversion.javahl.ClientException: RA layer request failed |
java |
http://boyssheng.iteye.com/blog/766056 |
今天svn提交时出现的错误,更新时正常的。
org.tigris.subversion.javahl.ClientException: RA layer request failed
svn: (details follow):
svn: applying log messCommit failed age to /svn/cis/!svn/wbl/f1c0c4d4-0fe5-a34b-8714-e168b4bc04d2/11359: http://192.189.100.217:8800/svn/cis/!svn/wbl/f1c0c4d4-0fe5-a34b-8714-e168b4bc04d2/11359: 500 (status) -> Could not execute PROPPATCH. (http://192.189.100.217:8800)
解决办法:将注释中间的回车和换行去掉。
|
checkstyle5.5 配置文件 |
代码审核 |
我最新使用的checkstyle文件 |
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.2//EN"
"http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
<!--有关所有属性最新版本的使用方法可见网址http://checkstyle.sourceforge.net/availablechecks.html-->
<!--重复代码的检查,超过8行就认为重复,UTF-8格式 本检查一定要放在"TreeWalker"节点前,否则在
Checkclipse中会无法使用。(在ant下可以)
-->
<module name="StrictDuplicateCode">
<property name="min" value="8" />
</module>
<module name="TreeWalker">
<!-- javadoc的检查 -->
<!-- 检查所有的interface和class -->
<module name="JavadocType" />
<!-- 命名方面的检查,它们都使用了Sun官方定的规则。 -->
<!-- 局部的final变量,包括catch中的参数的检查 -->
<module name="LocalFinalVariableName" />
<!-- 局部的非final型的变量,包括catch中的参数的检查 -->
<module name="LocalVariableName" />
<!-- 包名的检查(只允许小写字母) -->
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
</module>
<!-- 仅仅是static型的变量(不包括static final型)的检查 -->
<module name="StaticVariableName" />
<!-- 类型(Class或Interface)名的检查 -->
<module name="TypeName" />
<!-- 非static型变量的检查 -->
<module name="MemberName" />
<!-- 方法名的检查 -->
<module name="MethodName" />
<!-- 方法的参数名 -->
<module name="ParameterName " />
<!-- 常量名的检查 -->
<module name="ConstantName" />
<!-- import方面的检查 -->
<!-- import中避免星号"*" -->
<module name="AvoidStarImport" />
<!--没用的import检查,比如:1.没有被用到2.重复的3.import java.lang的4.import与该类在同一个package的
-->
<module name="UnusedImports" />
<!-- 长度方面的检查 -->
<!-- 每行不超过120个字-->
<module name="LineLength">
<property name="max" value="120" />
</module>
<!-- 方法不超过30行 -->
<module name="MethodLength">
<property name="tokens" value="METHOD_DEF" />
<property name="max" value="30" />
</module>
<!-- 方法的参数个数不超过3个。 并且不对构造方法进行检查-->
<module name="ParameterNumber">
<property name="max" value="3" />
<property name="tokens" value="METHOD_DEF" />
</module>
<!-- 空格检查 -->
<!-- 允许方法名后紧跟左边圆括号"(" -->
<module name="MethodParamPad" />
<!-- 在类型转换时,不允许左圆括号右边有空格,也不允许与右圆括号左边有空格 -->
<module name="TypecastParenPad" />
<!-- 关键字 -->
<!--每个关键字都有正确的出现顺序。比如 public static final XXX 是对一个常量的声明。如果使用 static
public final 就是错误的
-->
<module name="ModifierOrder" />
<!-- 多余的关键字 -->
<module name="RedundantModifier" />
<!-- 对区域的检查 -->
<!-- 不能出现空白区域 -->
<module name="EmptyBlock" />
<!-- 所有区域都要使用大括号。 -->
<module name="NeedBraces" />
<!-- 多余的括号 -->
<module name="AvoidNestedBlocks">
<property name="allowInSwitchCase" value="true" />
</module>
<!-- 编码方面的检查 -->
<!-- 不许出现空语句 -->
<module name="EmptyStatement" />
<!-- 每个类都实现了equals()和hashCode() -->
<module name="EqualsHashCode" />
<!-- 不许使用switch,"a++"这样可读性很差的代码 -->
<module name="IllegalToken" />
<!-- 不许内部赋值 -->
<module name="InnerAssignment" />
<!-- 绝对不能容忍魔法数 -->
<module name="MagicNumber">
<property name="tokens" value="NUM_DOUBLE, NUM_INT" />
</module>
<!-- 循环控制变量不能被修改 -->
<module name="ModifiedControlVariable" />
<!-- 多余的throw -->
<module name="RedundantThrows" />
<!-- 不许使用未被简化的条件表达式 -->
<module name="SimplifyBooleanExpression" />
<!-- 不许使用未被简化的布尔返回值 -->
<module name="SimplifyBooleanReturn" />
<!-- String的比较不能用!= 和 == -->
<module name="StringLiteralEquality" />
<!-- if最多嵌套3层 -->
<module name="NestedIfDepth">
<property name="max" value="3" />
</module>
<!-- try最多被嵌套2层 -->
<module name="NestedTryDepth">
<property name="max" value="2" />
</module>
<!-- clone方法必须调用了super.clone() -->
<module name="SuperClone" />
<!-- finalize 必须调用了super.finalize() -->
<module name="SuperFinalize" />
<!-- 不能catch java.lang.Exception -->
<module name="IllegalCatch">
<property name="illegalClassNames" value="java.lang.Exception" />
</module>
<!-- 确保一个类有package声明 -->
<module name="PackageDeclaration" />
<!-- 一个方法中最多有3个return -->
<module name="ReturnCount">
<property name="max" value="3" />
<property name="format" value="^$" />
</module>
<!--
根据 Sun 编码规范, class 或 interface 中的顺序如下: 1.class 声明。首先是 public, 然后是protected , 然后是 package level (不包括access modifier ) 最后是private .
(多个class放在一个java文件中的情况) 2.变量声明。 首先是 public, 然后是protected然后是 package level (不包括access modifier ) 最后是private . (多个class放在一个java文件中的情况) 3.构造函数 4.方法
-->
<module name="DeclarationOrder" />
<!-- 不许对方法的参数赋值 -->
<module name="ParameterAssignment" />
<!-- 确保某个class 在被使用时都已经被初始化成默认值(对象是null,数字和字符是0,boolean 变量是false.) -->
<module name="ExplicitInitialization" />
<!-- 不许有同样内容的String -->
<module name="MultipleStringLiterals" />
<!-- 同一行不能有多个声明 -->
<module name="MultipleVariableDeclarations" />
<!-- 不必要的圆括号 -->
<module name="UnnecessaryParentheses" />
<!-- 各种量度 -->
<!-- 布尔表达式的复杂度,不超过3 -->
<module name="BooleanExpressionComplexity" />
<!-- 类数据的抽象耦合,不超过7 -->
<module name="ClassDataAbstractionCoupling" />
<!-- 类的分散复杂度,不超过20 -->
<module name="ClassFanOutComplexity" />
<!-- 函数的分支复杂度,不超过10 -->
<module name="CyclomaticComplexity" />
<!-- NPath复杂度,不超过200 -->
<module name="NPathComplexity" />
<!-- 杂项 -->
<!-- 不许使用main方法 -->
<module name="UncommentedMain" />
<!-- 检查并确保所有的常量中的L都是大写的。因为小写的字母l跟数字1太象了 -->
<module name="UpperEll" />
<!-- 检查数组类型的定义是String[] args,而不是String args[] -->
<module name="ArrayTypeStyle" />
<!--检查java代码的缩进 默认配置:基本缩进 4个空格,新行的大括号:0。新行的case 4个空格。
-->
<module name="Indentation" />
<!-- 禁止使用System.out.println -->
<module name="RegexpSinglelineJava">
<property name="format" value="System\.out\.println" />
<property name="ignoreComments" value="true" />
</module>
</module>
<!-- 检查翻译文件 -->
<module name="Translation" />
<!-- 文件长度不超过1500行 -->
<module name="FileLength">
<property name="max" value="1500" />
</module>
<!-- 不允许使用"tab"键 -->
<module name="FileTabCharacter" />
</module>
|
克隆JS对象的三个实用方法 |
javascript |
http://snandy.iteye.com/blog/842097 |
http://snandy.iteye.com/blog/842097
|
PushbackInputStream demo |
java |
|
PushbackInputStream input = new PushbackInputStream(new FileInputStream("c:\\data\\input.txt"));
int data = input.read();
input.unread(data);
PushbackInputStream input = new PushbackInputStream(new FileInputStream("c:\\data\\input.txt"), 8);
|
log4j不能输出日志文件的可能原因 |
java |
|
log4j不能输出日志文件问题的可能原因?
未导入log4j.jar包
log4j.rootLogger=info, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=logs/domain.log
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
|
HttpClient4.0 Referer 采集防采集的网站(防盗链) |
java, httpclient |
http://owl.iteye.com/blog/598769 |
HttpClient httpclient = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response = null;
get.addHeader("Referer", "http://www.xxxx.com/");
|
C3P0连接池配置详解 |
java |
http://terry-y.iteye.com/blog/178863 |
<c3p0-config>
<default-config>
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">3</property>
<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">30</property>
<!--两次连接中间隔时间,单位毫秒。Default: 1000 -->
<property name="acquireRetryDelay">1000</property>
<!--连接关闭时默认将所有未提交的操作回滚。Default: false -->
<property name="autoCommitOnClose">false</property>
<!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么
属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试
使用。Default: null-->
<property name="automaticTestTable">Test</property>
<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="breakAfterAcquireFailure">false</property>
<!--当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出
SQLException,如设为0则无限期等待。单位毫秒。Default: 0 -->
<property name="checkoutTimeout">100</property>
<!--通过实现ConnectionTester或QueryConnectionTester的类来测试连接。类名需制定全路径。
Default: com.mchange.v2.c3p0.impl.DefaultConnectionTester-->
<property name="connectionTesterClassName"></property>
<!--指定c3p0 libraries的路径,如果(通常都是这样)在本地即可获得那么无需设置,默认null即可
Default: null-->
<property name="factoryClassLocation">null</property>
<!--Strongly disrecommended. Setting this to true may lead to subtle and bizarre bugs.
(文档原文)作者强烈建议不使用的一个属性-->
<property name="forceIgnoreUnresolvedTransactions">false</property>
<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">60</property>
<!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">3</property>
<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="maxIdleTime">60</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">15</property>
<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
<property name="maxStatements">100</property>
<!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0 -->
<property name="maxStatementsPerConnection"></property>
<!--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能
通过多线程实现多个操作同时被执行。Default: 3-->
<property name="numHelperThreads">3</property>
<!--当用户调用getConnection()时使root用户成为去获取连接的用户。主要用于连接池连接非c3p0
的数据源时。Default: null-->
<property name="overrideDefaultUser">root</property>
<!--与overrideDefaultUser参数对应使用的一个参数。Default: null-->
<property name="overrideDefaultPassword">password</property>
<!--密码。Default: null-->
<property name="password"></property>
<!--定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个一显著提高测试速度。注意:
测试的表必须在初始数据源的时候就存在。Default: null-->
<property name="preferredTestQuery">select id from test where id=1</property>
<!--用户修改系统配置参数执行前最多等待300秒。Default: 300 -->
<property name="propertyCycle">300</property>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout">false</property>
<!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false -->
<property name="testConnectionOnCheckin">true</property>
<!--用户名。Default: null-->
<property name="user">root</property>
<!--早期的c3p0版本对JDBC接口采用动态反射代理。在早期版本用途广泛的情况下这个参数
允许用户恢复到动态反射代理以解决不稳定的故障。最新的非反射代理更快并且已经开始
广泛的被使用,所以这个参数未必有用。现在原先的动态反射与新的非反射代理同时受到
支持,但今后可能的版本可能不支持动态反射代理。Default: false-->
<property name="usesTraditionalReflectiveProxies">false</property>
<property name="automaticTestTable">con_test</property>
<property name="checkoutTimeout">30000</property>
<property name="idleConnectionTestPeriod">30</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">25</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">0</property>
<user-overrides user="swaldman">
</user-overrides>
</default-config>
<named-config name="dumbTestConfig">
<property name="maxStatements">200</property>
<user-overrides user="poop">
<property name="maxStatements">300</property>
</user-overrides>
</named-config>
</c3p0-config>
|
查看oracle数据库连接数 |
oracle |
http://wangzheng7811.iteye.com/blog/151823 |
SELECT username, machine, program, status, COUNT(machine) AS 连接数量
FROM v$session where USERNAME = 'PAYMENT'
GROUP BY username, machine, program, status
ORDER BY machine;
http://qinglangee.iteye.com/blog/630473
怎样查看oracle当前的连接数呢?只需要用下面的SQL语句查询一下就可以了。
select * from v$session where username is not null
select username,count(username) from v$session where username is not null group by username #查看不同用户的连接数
select count(*) from v$session #连接数
Select count(*) from v$session where status='ACTIVE' #并发连接数
show parameter processes #最大连接
alter system set processes = value scope = spfile;重启数据库 #修改连接
/home/oracle9i/app/oracle9i/dbs/init.ora
/home/oracle9i/app/oracle9i/dbs/spfilexxx.ora ## open_cursor
|
jquery checkbox选中 |
jquery |
|
可以采用:siblings,优化
<script type="text/javascript">
/*全选*/
$(document).ready(function(){
$("#checkall").click(function(){
if(this.checked){
$(":checkbox").each(function(){
this.checked = true;
});
}else{
$(":checkbox").each(function(){
this.checked = false;
});
}
});
});
/*行全选*/
$(document).ready(function(){
$(".checkrow").click(function(){
if(this.checked){
$(".items"+$(this).attr("id")).attr("checked",true);
}else{
$(".items"+$(this).attr("id")).attr("checked",false);
}
});
});
/*子项被选中,父选自动选中;子项全部取消选中,父项自动取消选中*/
$(document).ready(function(){
$(":checkbox").click(function(){
var cls = $(this).attr('class');
var checkrowId = cls.substring(cls.length-1);
var hasChildChecked = false;
$("." + cls).each(function(){
if(this.checked){
hasChildChecked = true;
return false;
}
});
if(!hasChildChecked){
$("#"+checkrowId).attr("checked",false);
}else{
$("#"+checkrowId).attr("checked",true);
}
});
});
</script>
|
jquery tip 提示 |
jquery |
|
/**
* 输入提示信息样式 例: 输入标签:<input id="example"/> 提示框:<label id="exampleTip"></label>
* 默认提示信息:<span id="exampleDefaultTip">请输入。。。</span> 只用于显示 参照添加角色
* addRole.jsp
*/
inputTipCss : function() {
$("input,select,textarea").each(function() {
var obj = $(this);
var type = obj.attr("type");
if(type != "checkbox" && type != 'radio' && type != 'file'){
$("#" + obj.attr('id') + "Tip").html('').hide();
obj.bind('focusin', function() {
obj.removeClass('ipt-error').addClass('ipt-active');
$("#" + obj.attr('id') + "Tip").html('').hide();
$("#" + obj.attr('id') + "DefaultTip").show();
}).bind('focusout', function() {
obj.removeClass('ipt-active');
});
}
});
},
样式:
.ipt-error {border: 1px solid #E54246;margin:0;background:#FEF693;}
.ipt-active{color:#333;border:1px solid #5b8eb1;margin:0;}
|
创建表及序列时,先判断其是否存在 |
oracle |
http://aniyo.iteye.com/blog/1358313 |
1、创建表时,先判断表是否存在,如果存在则删除
create or replace procedure pr_droptable(
v_tablename in varchar2
)
as
v_count int;
begin
select count(1) into v_count from user_tables where table_name = upper(v_tablename);
if v_count > 0 then
execute immediate 'drop table ' || v_tablename;
end if;
end;
2、创建序列时,先判断序列是否存在,如果存在则删除
create or replace procedure pr_dropseq(
v_name in varchar2
)
as
v_count int;
begin
select count(1) into v_count from user_sequences a where sequence_name = upper(v_name);
if v_count > 0 then
execute immediate 'drop sequence ' || v_name;
end if;
end;
http://blog.csdn.net/nsj820/article/details/6308420
|
Struts2 标签 |
java |
http://blog.csdn.net/chenqqabcdchenqqabcd/article/details/6726673 |
<s:set var="tag" value="1">
注意s:if判断变量是否相等
<s:if test="#tag == 1">
Struts获取页面set值一定要记得加#
( #表示不在struts堆栈里,没有#表示从struts堆栈里取 )
</s:if>
|