📄 connpara.java
字号:
ConnPara para= new ConnPara(sqlStr);<br>
url=para.url;<br>
user=para.user;<br>
password=para.password;<br>
sDriver=para.sDriver;<br>
try {<br>
Class.forName(sDriver);<br>
con=java.sql.DriverManager.getConnection(url,user,password);<br>
stat=con.createStatement();<br>
result=stat.executeQuery(gener.N2U(doWithSqlStr(sqlStr))); //
System.out.println("doWithSqlStr="+doWithSqlStr(sqlStr));<br>
//System.out.println(" marker after exce sql "+sqlStr );<br>
if( !result.next() ){ // if no value , let it return null Hashtable<br>
System.out.print("\n************ resule is null successed selectAll(String sqlStr)
**********\n");<br>
con.close();<br>
return ht;<br>
}<br>
// 处理这个结果集 放入 ht 里。 //<br>
String fields1=sqlStr.substring(7, sqlStr.indexOf("from"));<br>
String fields=null;<br>
String fieldName=null,tempStr;<br>
int ii=1,idii=0 ; String sApp;<br>
String addValues=null;<br>
do { // 让它循环 result<br>
fields=fields1;<br>
while (fields.trim().length()!=0 ) {<br>
if (fields.indexOf(",")==-1) {<br>
fieldName=fields;<br>
fields="";<br>
}else {<br>
fieldName=fields.substring(0,fields.indexOf(","));<br>
fields=fields.substring(fields.indexOf(",")+1);<br>
}<br>
fieldName=fieldName.trim();<br>
if (fieldName.indexOf("Int")!=-1 ) {<br>
fieldName=fieldName.substring(0, fieldName.indexOf("Int"));<br>
sApp=result.getInt(fieldName)+"";<br>
} else if ( fieldName.indexOf("Float")!=-1 ) {<br>
fieldName=fieldName.substring(0, fieldName.indexOf("Float"));<br>
sApp=result.getFloat(fieldName)+"";<br>
} else if ( fieldName.indexOf("Double")!=-1 ) {<br>
fieldName=fieldName.substring(0, fieldName.indexOf("Double"));<br>
sApp=result.getDouble(fieldName)+"";<br>
} else if (fieldName.indexOf("=")!=-1 ){ //
这是认为查询的是字符串并且内有=<br>
fieldName=fieldName.substring(0, fieldName.indexOf("="));<br>
sApp=gener.base(result.getString(fieldName));<br>
}else{<br>
sApp=gener.base(result.getString(fieldName));<br>
}<br>
sApp=" "+sApp;<br>
sApp=sApp.trim();<br>
if (sApp.equals("") && sApp==null ) {<br>
sApp=" ";<br>
}<br>
ht.addElement(sApp); // add this obj .<br>
// System.out.println("\n('"+idii+"', "+fieldName+"
'"+sApp+"') already load");<br>
fields=fields.trim();<br>
idii=idii+1;<br>
}<br>
} while(result.next());<br>
con.close();<br>
System.out.println("\n\n******* sql execue Succend *************\n");<br>
return ht;<br>
} catch (Exception ye) {<br>
System.out.print("\n 在执行sql时出现异常:\n"+ye.toString()) ;<br>
System.out.println("\n\n******* sql execue Error *************\n");<br>
try {<br>
con.close();<br>
} catch (Exception ffye) {}<br>
}<br>
return ht ;<br>
}<br>
// this mothe doWith the sql<br>
public static Vector result(String data) {<br>
Vector vec=null; String str=null;<br>
// data="200^zhou0530^123";<br>
data="20";<br>
if (data.indexOf("^")==-1) return vec;<br>
data=data.substring(0,2);<br>
System.out.println("Data="+data);<br>
while (data.indexOf("^")!=-1) {<br>
data=data.substring(1); // 把"^"去掉<br>
vec.addElement(data.substring(0,data.indexOf("^")-1));<br>
data=data.substring(data.indexOf("^"));<br>
}<br>
return vec;<br>
}<br>
public static String doWithSqlStr( String sqlStr ) {<br>
String sql=sqlStr, str0=null,str1=null;<br>
// System.out.println("\nWill deal with String is:\n "+sql );<br>
int len=sql.length();<br>
try {<br>
while((sql.indexOf("Int")!=-1)||(sql.indexOf("Float")!=-1)) {<br>
if (sql.indexOf("Int")!=-1) {<br>
str0=sql.substring(0,sql.indexOf("Int"));<br>
str1=sql.substring(sql.indexOf("Int")+3,len);<br>
sql=str0+str1;<br>
len=sql.length();<br>
}<br>
if (sql.indexOf("Float")!=-1) {<br>
str0=sql.substring(0,sql.indexOf("Float"));<br>
str1=sql.substring(sql.indexOf("Float")+5,len);<br>
sql=str0+str1;<br>
len=sql.length();<br>
}<br>
}<br>
} catch (Exception ye) {<br>
System.out.println("\nError:When turn the sqlStr\n "+ye.toString() );<br>
return ye.toString();<br>
}<br>
// System.out.println(sql+"\n is return \n");<br>
return sql;<br>
}<br>
/*<br>
有关mailTo 的说明请参见Class SendMail 类上面的说明 .<br>
*/<br>
public static String mailTo(String mailTo, String subject,String doc ) {<br>
String sHostName = "100.0.0.3"; // 定义一个发mail 的server<br>
int nPort = 25; // 定义一个端口号在 Internet 组织固定的端口号<br>
String comeFrom="zhoupeng@genersoft.com" ;<br>
// 定义一个向外发mail 的帐号就是用这个帐号向外发mail<br>
try {<br>
String str=null;<br>
Socket sktMail = new Socket(sHostName,nPort);<br>
PrintStream ps = new PrintStream(sktMail.getOutputStream());<br>
ps.println("\nHELO " + sHostName);<br>
System.out.println(" ***** now send mail start ****** ");<br>
DataInputStream disReply = new java.io.DataInputStream(sktMail.getInputStream());<br>
str=disReply.readLine();<br>
System.out.println("return info "+str);<br>
ps.println("MAIL FROM: " + comeFrom );<br>
str=disReply.readLine();<br>
System.out.println("MAIL FROM="+str);<br>
ps.println("RCPT TO: " + mailTo );<br>
str=disReply.readLine();<br>
System.out.println("RCPT TO="+str);<br>
ps.println("DATA");<br>
str=disReply.readLine();<br>
System.out.println("DATA="+str);<br>
ps.println("From: " + comeFrom + "\n" + "Subject:" + subject
+"\n" + doc +"\n" + "." + "\n");<br>
str=disReply.readLine();<br>
System.out.println("From="+str);<br>
ps.println("QUIT");<br>
str=disReply.readLine();<br>
System.out.println("quit="+str);<br>
System.out.println(" ***** mail send ok ****** ");<br>
ps.close();<br>
sktMail.close();<br>
return "1" ;<br>
} catch (IOException e) {<br>
System.out.println("Error="+e.toString()+"\n ***** mail send Error
******");<br>
return e.toString();<br>
}<br>
}<br>
<br>
}<br>
/*<br>
<br>
******* 有关 SMTP 协议的说明如下。 *******<br>
1. 发mail 有一个固定的格式。这个格式也叫协议。尊守这个协议才<br>
能正确的发送. 如:<br>
1,FROM: 这个标记后面写的是从那里来的。<br>
2,SUBJECT : 这个标记是标题是什么<br>
2. mail的发送的命令如下:<br>
HELO 是SendMail 用来标识自己的命令<br>
MAIL FROM 是用来标识自己的命令<br>
RCPT TO
是用来标识收件人的命令。可以重复几次把一个文件发给多个人。<br>
所说的重复几次就是多执行几次这个命令 。<br>
DATA 是所有的用户都指定后。发送方准备传输信息了。(现在发送信息)<br>
QUIT 被用来告诉收方,已经完成了发送,这个连接可以断开。<br>
3. 来自己接受SendMail程序相应是以三个数字开始的。后面有文本对这个数字信息进行解释。<br>
2XX 表示一切正常.<br>
4XX 表示有一错误消息,但不是致命的 它是一个暂时的现象(如,服务暂无效,
可以重试一次。)<br>
5XX 表示不可改正的错误信息。如语法错误。<br>
<br>
******* 有关 SendMail 的说明如下 ******<br>
1、mailTo 是收件人的mail地址,它可以用向多个人发mail说明的是必须用"
; " 把各个地址隔开<br>
2、在使用时可以修改属性以符合自己的要求。(mailFrom , sHostName ,
subject )<br>
<br>
*/<br>
class SendMail {<br>
public String sHostName = "100.0.0.3"; // 定义一个发mail 的server<br>
public String mailTo="zhoupeng@genersoft.com";<br>
public String doc=" this option no initial";<br>
public String mailFrom="zhoupeng@genersoft.com" ;<br>
public String subject="Hello this is "+mailFrom ;<br>
public void resert(){ // 重置当前的参数<br>
mailTo="zhoupeng@genersoft.com";<br>
doc=" this option no initial ";<br>
mailFrom="zhoupeng@genersoft.com" ;<br>
subject="Hello this is "+mailFrom ;<br>
}<br>
public static void errorLog(String log ){<br>
try {<br>
FileOutputStream fos= new FileOutputStream("d:error.txt",true); //
建立一个文件输出流<br>
fos.write(log.getBytes());<br>
fos.close();<br>
} catch(Exception ee) {<br>
System.out.println(ee.toString());<br>
}<br>
}<br>
public String send() {<br>
int nPort = 25; // 定义一个端口号在 Internet 组织固定的端口号<br>
String sTemp1, sTemp2;<br>
try {<br>
String str=null;<br>
Socket sktMail = new Socket(sHostName,nPort);<br>
PrintStream ps = new PrintStream(sktMail.getOutputStream());<br>
ps.println("\nHELO " + sHostName);<br>
System.out.println("****** now send mail start ****** ");<br>
//System.out.println("mailFrom:"+mailFrom );<br>
//System.out.println("mailTo :"+mailTo );<br>
//System.out.println("subject :"+subject );<br>
DataInputStream disReply = new java.io.DataInputStream(sktMail.getInputStream());<br>
str=disReply.readLine();<br>
ps.println("MAIL FROM: " + mailFrom );<br>
str=disReply.readLine();<br>
// 重复使用 RCPT TO 命令让其发到多个用户上<br>
sTemp1=mailTo.trim();<br>
while (!sTemp1.trim().equals("")) {<br>
if (sTemp1.indexOf(";")==-1 ) {<br>
sTemp2=sTemp1;<br>
sTemp1="";<br>
}else{<br>
sTemp2=sTemp1.substring(0,sTemp1.indexOf(";"));<br>
sTemp1=sTemp1.substring(sTemp1.indexOf(";")+1 );<br>
}<br>
if (!sTemp2.equals("")) {<br>
ps.println("RCPT TO: " +sTemp2 );<br>
str=disReply.readLine(); // 应答信息<br>
}<br>
// 写入一个文件里<br>
// errorLog(str);<br>
}<br>
ps.println("DATA");<br>
str=disReply.readLine();<br>
// 必须有\n否 不会出现标题<br>
ps.println("From:"+mailFrom+"\n"+"Subject:"+subject+"\n"
+ doc +"\n" + "." + "\n");<br>
str=disReply.readLine();<br>
ps.println("QUIT");<br>
str=disReply.readLine();<br>
System.out.println(" ***** mail send ok ****** ");<br>
ps.close();<br>
sktMail.close();<br>
return "1" ;<br>
} catch (IOException e) {<br>
System.out.println("Error="+e.toString()+"\n ***** mail send Error
******");<br>
return e.toString();<br>
}<br>
}<br>
}<br>
<br>
<br>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -