锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
*
*/
public static String doEncrypt(String xmlStr) {
try {
return URLEncoder.encode(xmlStr, "GBK");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "鍔犲瘑閿欒";
}
/**
* 瑙e瘑
* @param saveFile
*/
public static void decrypt(File saveFile) {
try {
BufferedReader reader = null;
reader = new BufferedReader(new FileReader(saveFile));
String tempString = null;
String str2 =null;
while ((tempString = reader.readLine()) != null) {
str2=URLDecoder.decode(tempString);
}
FileOutputStream fos = new FileOutputStream(saveFile);
fos.write(str2.getBytes());
fos.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println(URLDecoder.decode("C:\\Documents and Settings\\chenchangqing\\Desktop\\瀹炵墿杞Щ_20110824030821.xml", "GBK"));
}
static {
System.out.println("static鑷敱鍧楄鎵ц"); //鍏堟墽琛岄潤鎬佸潡
counter = 1;
}
public static int getTotalCount() {
return counter;
}
public Count() {
counter++;
serialNumber=counter;
}
public static void main(String[] args)
{
System.out.println("main() invoked");
System.out.println("counter = "+Count.counter);
Count t=new Count();
System.out.println("counter = "+Count.counter+" "+t.serialNumber);
}
}
java.lang.Math鏄竴涓猣inal綾伙紝涓嶅彲琚戶鎵匡紝final鍙橀噺鏄紩鐢ㄥ彉閲忥紝鍒欎笉鍙互鏀瑰彉瀹冪殑寮曠敤瀵硅薄錛屼絾鍙互鏀瑰彉瀵硅薄鐨勬暟鎹紝final鏂規硶涓嶅彲浠ヨ瑕嗙洊錛屼絾鍙互琚噸杞姐?br />
濡傦細
class Aclass
{
int a;
//鏋勯犲櫒
public Aclass()
{
a = 100;
}
final public void paint(){
System.out.println("55555555");
}
final public void paint(int i){
System.out.println(i);
}
public void setA(int theA)
{
a = theA;
}
public int getA()
{
return a;
}
}
//瀹氫箟涓涓被鏉ユ祴璇?br />
public class TestFinal
{
//濡傛灉final鍙橀噺鏄紩鐢ㄥ彉閲忥紝鍒欎笉鍙互鏀瑰彉瀹冪殑寮曠敤瀵硅薄錛屼絾鍙互鏀瑰彉瀵硅薄鐨勬暟鎹?br />
final Aclass REF_VAR=new Aclass();
public static void main(String[] args)
{
TestFinal tf = new TestFinal();
tf.REF_VAR.setA(1);
System.out.println(tf.REF_VAR.getA());
tf.REF_VAR.paint();
tf.REF_VAR.paint(1);
}
}
1錛屽井杞洰鍓嶆病鏈夊彂甯冮拡瀵筍QL Server 2008涓撶敤鐨凧DBC椹卞姩紼嬪簭錛屼嬌鐢⊿QL Server 2005 鐨勫氨鍙互浜嗭紝浣嗘槸錛岄渶瑕佹敞鎰忥細 SQL Server 2008鐨勬柊鍔熻兘鏃犳硶浣跨敤錛岃繖涓繀欏葷瓑涓撶敤鐨凧DBC鍙戝竷涔嬪悗鎵嶈兘浣跨敤銆備笅杞藉湴鍧錛?
Microsoft SQL Server 2005 JDBC Driver 1.2
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=c47053eb-3b64-4794-950d-81e1ec91c1ba
2錛岃緗鍙d負鍥哄畾绔彛錛?/p>
SQL Server 閰嶇疆綆$悊鍣紝鎸夊浘璁劇疆鍗沖彲
娉ㄦ剰錛氬姩鎬佺鍙h涓虹┖錛屽嵆鍙鐢ㄥ姩鎬佺鍙?/p>
榪炴帴鐨勫啓娉曪細
jdbc:sqlserver://192.168.3.6:1368;databaseName=鏁版嵁搴撳悕縐?user=鐢ㄦ埛鍚?password=瀵嗙爜
闇瑕佹敞鎰忥細
1. 鏈灝忚繛鎺ユ暟鏄繛鎺ユ睜涓鐩翠繚鎸佺殑鏁版嵁搴撹繛鎺ワ紝鎵浠ュ鏋滃簲鐢ㄧ▼搴忓鏁版嵁搴撹繛鎺ョ殑浣跨敤閲忎笉澶э紝灝嗕細鏈夊ぇ閲忔暟鎹簱榪炴帴璧勬簮琚氮璐廣?br />
2. 鏈澶ц繛鎺ユ暟鏄繛鎺ユ睜鑳界敵璇風殑鏈澶ц繛鎺ユ暟錛屽鏋滄暟鎹簱榪炴帴璇鋒眰瓚呰繃姝ゆ暟錛屽悗闈㈢殑鏁版嵁搴撹繛鎺ヨ姹傚皢琚姞鍏ュ埌絳夊緟闃熷垪涓紝榪欎細褰卞搷涔嬪悗鐨勬暟鎹簱鎿嶄綔銆?/p>
鏁版嵁搴撹繛鎺ユ睜鐨勪袱涓換鍔★細
1. 闄愬埗姣忎釜搴旂敤鎴栫郴緇熷彲浠ユ嫢鏈夌殑鏈澶ц祫婧愶紝涔熷氨鏄‘瀹氳繛鎺ユ睜鐨勫ぇ灝忥紙PoolSize錛夈?br />
2. 鍦ㄨ繛鎺ユ睜鐨勫ぇ灝忥紙PoolSize錛夎寖鍥村唴銆佹渶澶ч檺搴﹀湴浣跨敤璧勬簮錛岀緝鐭暟鎹簱璁塊棶鐨勪嬌鐢ㄥ懆鏈熴?/p>
渚嬪錛?鐗╃悊榪炴帴鏁?00涓紝姣忎釜榪炴帴鎻愪緵250涓猄tatemet錛岄偅涔堝茍鍙戠殑Statement鎬繪暟涓?00*250=50000涓?/p>
Java寮婧愯繛鎺ユ睜錛?br />
Jakarta DBCP 鍙洿鎺ュ湪搴旂敤紼嬪簭涓嬌鐢ㄣ傦紙姣旇緝甯哥敤錛岄泦鎴愬湪Tomcat鍜孲truts涓級
C3P0鏄疕ibernate鐨勯粯璁ゆ暟鎹簱榪炴帴姹犮傦紙甯哥敤錛孒ibernate錛?br />
鍏朵粬鐨勮繕鏈塒roxool銆丏DConnectionBroker銆丏BPool銆乆APool銆丳rimrose銆丼martPool銆丮iniConnectionPoolManager銆?/p>
DBCP浠g爜瀹炵幇錛?br />
//鍒涘緩鏁版嵁婧?br />
public static DataSource setupDataSource(String connectURI) {
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName(org.gjt.mm.mysql.Driver);
ds.setUsername("username");
ds.setPassword("password");
ds.setUrl(connectURI);
return ds;
}
//鍏抽棴鏁版嵁婧?br />
public static void shutdownDataSource(DataSource ds) throws SQLException {
BasicDataSource bds = (BasicDataSource)ds;
bds.close();
}
//鏁版嵁婧愮殑浣跨敤
DataSource dataSource = getDataSource();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = dataSource.getConnection();
pstmt = conn.prepareStatement("select * from users");
rs = pstmt.executeQuery();
while(rs.next()) {
System.out.println(rs.getInt("id"));
}
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch(Exception ex) {
ex.printStackTrace();
}
}
鍦═omcat涓厤緗暟鎹簱榪炴帴姹狅細
鎴戜滑浣跨敤Tomcat涓璴ib鏂囦歡澶逛笅鐨則omcat-dbcp.jar銆?br />
1. 淇敼server.xml鏂囦歡鍦?lt;Service>涓啓鍏ヤ互涓嬩唬鐮?
<Context path="/WebProject" docBase="WebProject" reloadable="true" crossContext="true">
<Resource auth="Container" name="jdbc/CompanyDB" type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DataBaseName=Company"
username="sa"
password="root"
maxActive="100"
maxIdle="30"
maxWait="10000"
removeAbandoned=“true”
removeAbandonedTimeOut="10"
logAbandoned="true"/>
</Context>
path錛氬伐紼嬭礬寰勩?br />
docBase錛氬伐紼嬪悕瀛椼?br />
name錛欽NDI鐨勫悕瀛椼?br />
type錛氭暟鎹簮鐨勭被銆?br />
factory錛氭寚瀹氱敓鎴愮殑DataReource鐨刦actory綾誨悕錛涢粯璁BCP宸ュ巶綾匯?br />
driverClassName錛氭暟鎹簱椹卞姩鍚嶃?br />
url錛氭暟鎹簱榪炴帴鐨刄RL銆?br />
username錛氭暟鎹簱鐢ㄦ埛鍚嶃?br />
password錛氭暟鎹簱瀵嗙爜銆?br />
maxActive錛氭渶澶ц繛鎺ユ暟鎹簱鏁幫紝璁句負0琛ㄧず娌℃湁闄愬埗銆?br />
maxIdle錛氭渶澶х瓑寰呮暟閲忥紝璁句負0琛ㄧず娌℃湁闄愬埗銆?br />
maxWait錛氭渶澶х瓑寰呯鏁幫紝鍗曚綅涓簃s銆?br />
removeAbandoned錛氭槸鍚﹁嚜鎴戜腑鏂紝榛樿涓篺alse銆?br />
removeAbandonedTimeOut錛氬嚑縐掑悗浼氳嚜鎴戜腑鏂紝removeAbandoned蹇呴』涓簍rue銆?br />
logAbandoned錛氭槸鍚﹁褰曚腑鏂簨浠訛紝榛樿涓篺alse銆?/p>
2. 淇敼web.xml鏂囦歡錛屽鍔犱竴涓爣絳撅紝杈撳叆浠ヤ笅浠g爜錛?br />
<resource-ref>
<description>Company Connection</description>
<res-ref-name>jdbc/CompanyDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
res-ref-name錛氭寚瀹欽NDI鐨勫悕瀛椼?br />
res-type錛氭寚瀹氳祫婧愮被鍚嶃?br />
res-auth錛氭寚瀹氳祫婧愮殑Manager銆?br />
3. 浠g爜涓嬌鐢↗NDI浠g爜榪涜鑾峰彇錛?br />
Context ctx = new InitalContext()錛?br />
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/CompanyDB");
Connection conn = ds.getConnection();
娉ㄦ剰錛歫ava:comp/env/ 鏄痡ava涓璊NDI鍥哄畾鍐欐硶銆?/span>
娉ㄦ剰錛氬鏋滆閰嶇疆鍑虹幇閿欒錛岄噰鐢ㄥ彟涓縐嶆柟寮忚繘琛岄厤緗?/span>
鍦╰omcat涓殑server.xml涓嶈繘琛岄厤緗紝鑰屽湪context.xml涓繘琛岃緗?br />
浠g爜濡備笅錛?br />
<Resource name="jdbc/CompanyDB" type="javax.sql.DataSource" password="root"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxIdle="2" maxWait="5000" username="sa" url="jdbc:sqlserver://localhost:1433;DataBaseName=Company" maxActive="100"/>
web.xml鐨勮緗悓涓婁竴涓厤緗竴鏍楓?br />
request(璇鋒眰)
//鑾峰彇璇鋒眰灞炴х殑鍊?br />
request.getParameter("灞炴у悕");
澶氱敤浜庤〃鍗曟彁浜ゅ拰URL鍙傛暟鐨勪紶閫掔殑鍙栧?/p>
JSp鍐呯疆瀵硅薄鐢熷懡鍛ㄦ湡錛?br />
out 鍙湪鏈琷sp欏甸潰浣跨敤 鏃犵敓鍛藉懆鏈?br />
request 鐢熷懡鍛ㄦ湡 涓嬈¤姹?
response 鐢熷懡鍛ㄦ湡 涓嬈″搷搴?br />
session 鐢熷懡鍛ㄦ湡 欏圭洰嫻忚鍣ㄥ叧闂椂錛岀敓鍏ㄥ懆鏈熺粨鏉燂紝榛樿涓嶆搷浣滈」鐩秴榪?0鍒嗛挓鐢熷懡鍛ㄦ湡緇撴潫
application 鐢熷懡鍛ㄦ湡 褰撳紑鍚疶omcat鏈嶅姟鍣ㄦ椂鍒涘緩錛屽叧闂璗omcat鏈嶅姟鍣ㄦ椂緇撴潫鐢熷懡鍛ㄦ湡 (浣滅敤錛氱粺璁℃湇鍔″櫒璁塊棶浜烘暟鎴栨祦閲?
欏甸潰璺寵漿:
response.sendRedirect("admin/one.jsp") 閲嶅畾鍚?br />
RequestDispatcher 璇鋒眰璺寵漿
涓よ呭疄鐜扮殑鏁堟灉鐩稿悓
浜岃呯殑鍖哄埆錛?br />
1銆?br />
URL 鍦板潃鐨勫彉鍖栫敤response.sendRedirect鏃訛紝RequestDi.spatcher涓嶄細浣縐RL鍦板潃榪涜鍙樺寲銆?br />
RepuestDispatcher 鏄湇鍔″櫒绔姹傛満鍒剁殑璺寵漿
response.sendRedirect 鏄鎴風璇鋒眰鏈哄埗鐨勯噸瀹氬悜
2銆?br />
RequestDispatcher浼犲奸氳繃JSP-Servlet-JSp褰㈠紡鐩存帴浼犲叆鍒頒笅涓涓狫Sp欏甸潰
response.sendRedirect 浼犲奸氳繃JSP-Servlet-JSP褰㈠紡錛屽彧鑳藉浼犻掑埌璇鋒眰鏈哄埗閲嶅畾鍚戣繖涔嬪墠
3銆?br />
濡傛灉欏圭洰瑕佽煩杞埌鍙﹀涓涓湇鍔″櫒鐨勯〉闈㈡椂錛岀敤response.sendRedirect榪涜閲嶅畾鍚?br />
4銆?br />
鎴戜滑灝介噺浣跨敤RequestDispatcher鏂瑰紡錛屽洜涓烘槸鏈嶅姟鍣ㄥ搷搴旓紝鎵浠ュ湪web瀹瑰櫒鎵ц鏁堢巼杈冮珮
RequestDispatcher浠涔堟椂鍊欎嬌鐢ㄥ憿錛?br />
欏圭洰涓笉榪涜欏甸潰鐨勪氦浜掕煩杞殑鏃跺欙紝渚嬪涓涓晫闈㈢殑澧炪佸垹銆佹敼銆佹煡錛屾垨鑰呯浉鍏寵仈鍚岀被鍨嬫ā鍧椾箣闂寸殑璺寵漿
response.sendRedirect閲嶅畾鍚戜粈涔堟椂鍊欎嬌鐢ㄥ憿錛?br /> 鏃犲叧鑱旂殑涓嶅悓妯″潡闂磋煩杞嬌鐢紝渚嬪錛岀敤鎴風晫闈㈡ā鍧楄煩杞埌浜у搧淇℃伅鐣岄潰妯″潡
5銆?br />
RequestDispatcher鍩烘湰涓婅瀹氫嬌鐢ㄥ湪Servlet閲岄潰
response.sendRedirect 鐢ㄥ湪Servlet鍜孞SP欏甸潰杈冨
閲嶅畾鍚戜紶鍊?鍙獎鍝峳equest錛屼笉褰卞搷session鐨勪紶鍊?/p>
session浣曟椂浣跨敤?
浼犲兼椂灝介噺涓嶈浣跨敤session
璐墿杞︾殑瀹炵幇蹇呴』浣跨敤session瀵硅薄
session.removeAttribute("name") 鍏ㄩ儴鍒犻櫎鐗╁搧
濡傛灉閫夋嫨鎬у垹闄わ紵
浼犲叆瑕佸垹闄ょ殑璐墿淇℃伅涓婚敭id鍊鹼紝鏍規嵁id鍊兼敮鏌ユ壘闆嗗悎涓殑瀵瑰簲淇℃伅錛岀劧鍚庡仛闆嗗悎涓殑鍒犻櫎鎿嶄綔
for(Product product : list){
if(deleteid==product.getid()){
list.remove(product);
}
}
session.setAttribute("gouwu",list)
post鎻愪氦鏂瑰紡涔辯爜澶勭悊
涓枃涔辯爜闂
request.setcharacterEncoding("UTF-8");
澶勭悊get鏂瑰紡鎻愪氦鐨勪貢鐮佹柟寮忓鐞?br />
String names=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8")
package com.qhit.s2.t13.dao;
import java.util.List;
import com.qhit.s2.t13.javaben.User;
public interface IUserDAO {
public List<User> findAll();
}
2銆丣avaBean錛?br />
package com.qhit.s2.t13.javaben;
public class User {
private Integer id;
private String username;
private String password;
public User() {
super();
}
public User(Integer id, String username, String password) {
super();
this.id = id;
this.username = username;
this.password = password;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3銆佹暟鎹簱榪炴帴錛?/p>
package com.qhit.s2.t13.dao.impl;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
private java.sql.Connection conn = null;
// public final static String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// public final static String URL = "jdbc:sqlserver://localhost:1433;DataBaseName=Company";
// public final static String DBUSER = "sa";
// public final static String DBPASS = "root";
public java.sql.Connection getConnection() {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;DataBaseName=Company",
"sa", "root");
return conn;
} catch(Exception e) {
e.printStackTrace();
}
return null;
}
public void closeConnection() {
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
4銆佸疄鐜版帴鍙o細
package com.qhit.s2.t13.dao.impl;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.qhit.s2.t13.dao.IUserDAO;
import com.qhit.s2.t13.javaben.User;
public class UserDAOImpl implements IUserDAO {
public List<User> findAll() {
List<User> userList = new ArrayList<User>();
String sql = "select * from users";
DBConnection db = new DBConnection();
try {
// System.out.println(db.getConnection());
PreparedStatement ps = db.getConnection().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if(rs != null) {
while(rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("userName"));
user.setPassword(rs.getString("password"));
userList.add(user);
}
}
rs.close();
ps.close();
db.closeConnection();
return userList;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
5銆佸伐鍘?/p>
package com.qhit.s2.t13.dao.impl;
import com.qhit.s2.t13.dao.IUserDAO;
public class DAOFactory {
public static IUserDAO getUserDAO() {
return new UserDAOImpl();
}
}
6銆佷富鍑芥暟錛?/p>
package main;
import java.util.List;
import com.qhit.s2.t13.dao.impl.DAOFactory;
import com.qhit.s2.t13.javaben.User;
public class TestMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<User> list = DAOFactory.getUserDAO().findAll();
if(list != null) {
System.out.println("chenggong");
} else {
System.out.println("shipai");
}
}
}