开发笔记02

使用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 */;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值