我有以下函数,为生成的每个订单项调用.有没有人有任何想法如何加快这一点?
private String getDetails(String doc){
String table="";
java.sql.ResultSet rs = qw.DBquery("select " +
"id,LineType, QtyTotal, ManufacturerPartNumber, Description, UnitCost,UnitPrice " +
"From DocumentItems " +
"where DocID="+doc+" order by linenumber " +
"");
table+= "<table class=inner><thead><colgroup><col id='col1'><col id='col2'><col id='col3'><col id='col4'><col id='col5'></colgroup>" +
"<tr class='enetBlue'><th>Qty</th><th>Part Num</th><th>Description</th><th>Unit Cost</th><th>Unit Price</th></tr></thead>" +
"<tbody>";
try{
int odd = 0;
while(rs.next()){
int lineType = rs.getInt("LineType");
int qty = rs.getInt("QtyTotal");
String part = rs.getString("ManufacturerPartNumber");
String desc = rs.getString("Description");
float cost = rs.getFloat("UnitCost");
float price = rs.getFloat("UnitPrice");
String id …Run Code Online (Sandbox Code Playgroud) 在以下使用PreparedStatement该类的SQL查询中:
String query_descrip = "insert into timitemdescription (itemkey, languageid, longdesc, shortdesc) values (?, 1033, ?,?)";
PreparedStatement pstmt2 = con.prepareStatement(query_descrip);
pstmt2.setInt(1, rs4);
pstmt2.setString(2, itemdescription);
pstmt2.setString(3, itemdescription.substring(0,39));
pstmt2.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
我有时在项目描述中得到撇号和单引号和双引号.例如,我的一个项目的后期问题是"Planar 22"监视器".当然,字符串被误解并认为描述值只是"Planar 22".处理字符串中特殊字符的最佳方法是什么?
我读过有些人正在使用正则表达式,但这些似乎是针对具体情况而定的.我正在研究的另一种方法是逐个字符地读取字符串数组.我希望有一种更有效,资源更少的方式来做到这一点.
更新一些更广泛的测试,结果发现我的代码中出现了更多问题.它也是一个URL编码问题.当jsp代码填充html表单时,它会尝试将描述字段移动到在线表单,它会在表单上而不是在查询上截断它.jTDS还纠正了接收特殊字符的问题.因为jTDS是一个jar,它也有助于避免重启机器.我将奖励jTDS线程的赏金,因为那是我部分使用的.
提前致谢
我要做的是创建一个PowerShell脚本,它获取目录中的文件夹列表,该目录由正则表达式筛选出来,用nnnnnnx31或nnnnnnddd筛选出文件夹名称,其中n =前6个字符的alpha字符和最后3个字符是静态字符串x31的数字.接下来,它会筛选文件是否为90天,这些文件将被复制到另一个目录.
当我尝试运行时:
get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt (get-date.adddays(-90)}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
You must provide a value expression on the right-hand side of the -lt operator
At line: 1 char: 96
+ get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt <<<< get-date.adddays(-90)}
Run Code Online (Sandbox Code Playgroud)
我也试过以下它并没有用:
get-childitem | where {$_.name -match "^\d{6}([a-zA-Z]{3}|x31)$"} | where {$_.lastwritetime -lt (get-date | foreach-object {$_.adddays(-90)}) }
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
如果我有一个注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\INTERSTAR\XFILES\CONFIG MANAGER\SYSTEM\COMPANIES
Run Code Online (Sandbox Code Playgroud)
我如何列出该路径/目录下的所有记录并访问DWORD,REG_SZ和数据?
提前致谢
我正在研究布鲁斯·埃克尔(Bruce Eckel)的书中的一个例子,我想知道为什么输出时初始化值不会粘住?
class InitialValues2 {
boolean t = true;
char c = 'x';
byte b = 47;
short s = 0xff;
int i =999;
long l =1;
float f = 3.14f;
double d =3.14159;
InitialValues reference;
void printInitialValues() {
System.out.println("data type Initial values");
System.out.println("boolean " + t);
System.out.println("char [" + c + "]");
System.out.println("byte " + b);
System.out.println("short " + s);
System.out.println("int " + i);
System.out.println("long " + l);
System.out.println("float " + f);
System.out.println("double " + d);
System.out.println("reference " + …Run Code Online (Sandbox Code Playgroud) 我有以下代码片段,其中一些字符串在if块中初始化:
String serialmask = request.getParameter( "serialmask");
String serialincrement = request.getParameter( "serialincrement");
if (serialmask == "1") {
String tserialmask = "aaa########";
}
else {
String tserialmask = "";
}
if (serialincrement == "1") {
String tserialincrement = "aaa^^^^^^^^";
}
else {
String tserialincrement = "";
}
out.println(
itemimport(
partnumber,
itemcost,
itemlistprice,
itemdescription,
PurchProdLineKey,
UnitMeasKey,
itemclasskey,
trackmethod,
tserialmask,
tserialincrement
)
);
Run Code Online (Sandbox Code Playgroud)
我得到的错误"cannot find symbol"
symbol : variable tserialmask在out.println(itemimport(....tserialmask,tserialincrement));声明中.
我尝试在if块之外声明变量,这似乎会带来更多的错误,说它已经被声明了.
我正在尝试编译一个导入我创建的其他包的java文件; 然而,它似乎没有找到它们.
在我的compile.bat文件中,我有:
set classpath=c:\t\DB;c:\t\Frame
javac comchange.java
Run Code Online (Sandbox Code Playgroud)
commChange.java的开头部分
package commchange;
import java.sql.*;
import java.awt.event.*;
import java.applet.*;
import DB.*;
import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.Graphics;
import Frame.*;
Run Code Online (Sandbox Code Playgroud)
目录结构是:
c:\t\commChange.java
c:\t\DB
c:\t\Frame
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
commChange.java:12: package DB does not exist
import DB.*;
commChange.java:17: package Frame does not exist
import Frame.*;
commChange.java:23: cannot find symbol
symbol: class Frame
...
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我写了以下代码:
import java.lang.*;
import DB.*;
private Boolean validateInvoice(String i)
{
int count = 0;
try
{
//check how many rowsets
ResultSet c = connection.DBquery("select count(*) from Invce i,cust c where tranid like '"+i+"' and i.key = c.key ");
while (c.next())
{
System.out.println("rowcount : " + c.getInt(1));
count = c.getInt(1);
}
if (count > 0 ) {
return TRUE;
} else {
return FALSE;
} //end if
}
catch(Exception e){e.printStackTrace();return FALSE;}
}
The errors I'm getting are:
i.java:195: cannot find symbol …Run Code Online (Sandbox Code Playgroud) java ×6
string ×2
boolean ×1
optimization ×1
performance ×1
powershell ×1
registry ×1
servlets ×1
types ×1
vbscript ×1