使用access数据库在 多线程,多用户访问时会导致tomcat崩溃,原因:
JDBC-ODBC DRIVER的一个BUG,JDBC-ODBC一般就不应该作为商用,一般就做为测试时使用的驱动,本身JDBC-ODBC驱动对多线程的支持不好,在单线程下跑没有问题,但是在多线程下可能导致JVM CRASH。日志片断如下:
Stack: [0x4caa0000,0x4caf0000], sp=0x4caee998, free space=13a4caee4d4k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [ntdll.dll+0x1a1c1]
C [ODBC32.dll+0x35322]
C [ODBC32.dll+0x87a1]
C [ODBC32.dll+0x8748]
C [JdbcOdbc.dll+0x11cb]
j sun.jdbc.odbc.JdbcOdbc.allocConnect(J[B)J+0
j sun.jdbc.odbc.JdbcOdbc.SQLAllocConnect(J)J+30
J sun.jdbc.odbc.JdbcOdbcConnection.initialize(Ljava/lang/String;Ljava/util/Properties;I)V
J sun.jdbc.odbc.JdbcOdbcDriver.connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;
J java.sql.DriverManager.getConnection(Ljava/lang/String;Ljava/util/Properties;Ljava/lang/ClassLoader;)Ljava/sql/Connection;
j java.sql.DriverManager.getConnection(Ljava/lang/String;)Ljava/sql/Connection;+15
j com.changxun.common.BaseDbop.getConnection()Ljava/sql/Connection;+45
J com.changxun.common.BaseDbop.dbSearch(Ljava/lang/String;)Ljava/util/List;
j cn.chanceit.shortnews.ShortNewsService.getList()Ljava/util/List;+35
J cn.chanceit.shortnews.ShortNewsService.getShortNews()Ljava/lang/String;
--
如果加上:
connection.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch");
那么服务端就会返回gzip格式的数据。需要对数据进行解压缩:
GZIPInputStream gzin = new GZIPInputStream(connection.getInputStream());
不加就不需要。
---
int字节数跟语言无关,跟机器位长相同,32位机器是4字节,64位机器是8字节。除非你把int符号重新定义了
---
word使用正则表达式
使用通配符:
[1-9]*,查找所有数字
[^11^13]{2,}查找所有2个联系回车换行
\[*\]查找[****]
不使用通配符:
^p 替换 ^p\
------
用于查找 | 类型 | 示例 |
---|---|---|
任一字符 | ? | s?t 可找到“sat”和“set”。 |
任何字符串 | * | s*d 可找到“sad”和“started”。 |
单词开头 | < | <(inter) 可找到“interesting”和“intercept”,但找不到“splintered”。 |
单词结尾 | > | (in)> 可找到“in”和“within”,但找不到“interesting”。 |
指定字符之一 | [ ] | w[io]n 可找到“win”和“won”。 |
此范围内的任一字符 | [-] | [r-t]ight 可找到“right”和“sight”。范围必须是升序。 |
除了括号内范围中的字符之外的任一字符 | [!x-z] | t[!a-m]ck 可找到“tock”和“tuck”,但找不到“tack”或“tick”。 |
前一个字符或表达式的 n 个匹配项 | {n} | fe{2}d 可找到“feed”,但找不到“fed”。 |
前一个字符或表达式的至少 n 个匹配项 | {n,} | fe{1,}d 可找到“fed”和“feed”。 |
前一个字符或表达式的 n 到 m 个匹配项 | {n,m} | 10{1,3} 可找到“10”、“100”和“1000”。 |
前一个字符或表达式的一个或多个匹配项 | @ | lo@t 可找到“lot”和“loot”。 |
----
防止复制js代码:<div onselectstart="return false;" >
----
java保存中文刀mysql乱码的问题:
jdbc.url=jdbc:mysql://localhost:3306/test?characterEncoding=gbk
数据库表的中文相应字段要设置成 utf8格式。
---
在HotSpot中,调用了System.gc()而不发生GC只有一种情况:设置了-XX:+DisableExplicitGC参数,除此之外,System.gc()是一定能保证触发GC执行的。这个可以通过HotSpot的源码来证明。
------------
int d= 0;
List<UserObd> lis = list;
while(d<10){
list.addAll(lis);等同于: list.addAll(list);
System.out.println(list.size());
d++;
}
---------
用c#导入 excel 数据时,表格里的字段每列要统一,比如手机号 158-32322323,15923232323 二种格式,
数据多的那种格式会被认为默认的格式,另外格式的数据就会认为是空数据。如果一样多,后面的格式就是默认格式。
-
jquery 获取表格当前行的第2列的值
$(document).ready(function(){
$("td.dd").click(function(){
alert($(this).parent("tr").find("td").eq(1).html());
})
});
获取第几行第几列
<script type="text/javascript">
//页面装载就加载函数
$(document).ready(function() {
//给所有的td单元格绑定一个click事件
//如果这个table的id为table1,那单给table1的所有td加click事件代码为:
// var tds = $("#table1").find("td");
var tds = $("td");
tds.click(tdclick);
});
function tdclick() {
//var td = $(this);
//var text = td.text();
// $(this)表示这个td单元格,
// .parent("tr")表示这个td的父节点
// .prevAll()表示这个tr前面有多少个tr
var hang = $(this).parent("tr").prevAll().length;
var lie = $(this).prevAll().length;
hang = Number(hang)+1;//字符串变为数字
lie = Number(lie)+1;
alert("第"+hang+"行"+"第"+lie+"列");
}
</script>
-
margin:3px 0 0 5px;
外边距分别为: 上 右 下 左 (写四个时)
margin-top:3px
margin-right:0
margin-bottom:0
margin-left:5px
以上是分开写.
-
正则坐标 x=9084208 y=2645296
加上89929就表示是(武汉)周边的100公里
-
去掉txt文件的换行:
点击你的txt文件,选择打开方式用word打开,然后用word的替换换行字符的功能
单击“编辑”----替换---在查找内容后光标在闪动---单击“特殊字符”----选段落标记(可以输入^p
-
struts2 清空搜索结果返回后输入框的值,要用 button类型的标签绑定js事件来清空。例如:
<s:textfield id="userName" name="userName" theme="simple" />
<input type="button" value="清空" οnclick="setBlank()" />
function setBlank(){document.getElementsByName("userName")[0].value="";}
-
hibernate 实体类的属性名 和 get,set方法的名称要对应,否则在查关联对象的属性时会找不到。
-
该项目不是Hibernate项目 问题,项目名上右键--〉myeclipse-->add hibernate capabilites -->next-->hibernate config file --> existing --> end
-
Eclipse 快速导入所有需要的包 快捷键: Ctr + Shift + O
-***
tomcat编译使用的是项目lib里的包, 而不是开发工具里加载的外部包,如果jar不放到lib里,发布不会编译过。
-
access不支持某些jdbc游标操作。所以使用游标的分页不能通用。
-
如果在类中使用synchronized关键字来定义非静态方法,那将影响这个类中的所有使用synchronized关键字定义的非静态方法。
如果定义的是静态方法,那么将影响类中所有使用synchronized关键字定义的静态方法。
这有点象数据表中的表锁,当修改一条记录时,系统就将整个表都锁住了,因此,大量使用这种同步方式会使程序的性能大幅度下降。
-
比如远程IP是21.21.21.21,要读写的文件是D盘下的aaa.txt,远程用户名是USER密码是PASSWORD
Process process = Runtime.getRuntime().exec( "net use \\21.21.21.21\IPC$ PASSWORD /user:USER ");//这样就是和你的远程主机建立了连接
Process process = Runtime.getRuntime().exec( "copy \\21.21.21.21\D$\aaa.txt aaa.txt ");//这样就是把远程主机上的D盘上的aaa.txt文件复制到本机当前目录下
好了,等你处理好aaa.txt后就可以把它上传回远程主机了
Process process = Runtime.getRuntime().exec( "copy aaa.txt \\21.21.21.21\D$ ");//这样就是把当前目录下的aaa.txt文件上传到远程主机的D盘上
好了,基本上就是这样,具体要你自己测试,你先在CMD下先把命令试成功再写成JAVA文件,当然,你最好把远程主机的IP,用户名和密码都放在数据库里,要用时取出来,这样安全一点,还有记得用完之后都IPC连接关闭
mightyleesupermighty
-
强制远程连接 mstsc /console /v:192.168.66.133:3389
-
MySQL 导入sql文件
source D:\download\chrome\预言\预言Online\yuyan_mutlgs.sql
如果乱码首行加:/*!40101 SET NAMES utf8 */; 或者:/*!40101 SET NAMES gbk */;