锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import com.semovy.bean.Database;
public class SQLServerDatabase implements Database {
private String driver = null;
private String pwd = null;
private String user = null;
private String url = null;
private Connection connection = null;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getDriver() {
return driver;
}
public String getPwd() {
return pwd;
}
public void setDriver(String driver)
{
this.driver = driver;
}
public void setPwd(String pwd)
{
this.pwd = pwd;
}
public Connection getConnection()
{
openConnection();
return this.connection;
}
public void setConnection(Connection connection) {
this.connection = connection;
}
public List getData() {
return null;
}
public SQLServerDatabase(String driver,String url,String user,String pwd)
{
this.driver = driver;
this.url = url;
this.user = user;
this.pwd = pwd;
try
{
System.out.println("start");
Class.forName(this.getDriver()).newInstance();
this.connection = DriverManager.getConnection(this.getUrl(), this.getUser(), this.getPwd());
System.out.println("OK");
}catch(SQLException e)
{
System.out.println(e.getLocalizedMessage());
}
catch(ClassNotFoundException e)
{
System.out.println(e.getLocalizedMessage());
}
catch(Exception e)
{
System.out.println(e.getLocalizedMessage());
}
}
/**
*
* @return
*/
private Connection openConnection()
{
if(this.connection != null)
{
return this.connection;
}
else
{
try
{
Class.forName(this.getDriver()).newInstance();
this.connection = DriverManager.getConnection(this.getUrl(), this.getUser(), this.getPwd());
}catch(SQLException e)
{
System.out.println(e.getLocalizedMessage());
}
catch(ClassNotFoundException e)
{
System.out.println(e.getLocalizedMessage());
}
catch(Exception e)
{
System.out.println(e.getLocalizedMessage());
}
return this.connection;
}
}
public void closeConnection()
{
try
{
if(this.getConnection() != null && !this.connection.isClosed())
{
this.connection.close();
}
}catch(SQLException e)
{
System.out.println(e.getLocalizedMessage());
}
}
public ResultSet executeQuery(String sqlExp)
{
ResultSet rs = null;
Statement stmt = null;
try
{
stmt = this.getConnection().createStatement();
rs = stmt.executeQuery(sqlExp);
}catch(SQLException e)
{
System.out.println(e.getLocalizedMessage());
}
return rs;
}
public void executeUpdate(String sqlExp)
{
try
{
this.getConnection().createStatement().executeUpdate(sqlExp);
}catch(SQLException e)
{
System.out.println(e.getLocalizedMessage());
}
}
public void executeBatchUpdate()
{
try
{
long start = System.currentTimeMillis();
Statement stmt = this.getConnection().createStatement();
for(int i=0;i < 10000;i++)
{
stmt.addBatch("insert into item values(2,'item" + i + "')");
if(i%500 == 0 && i>0)
stmt.executeBatch();
}
stmt.executeBatch();
this.getConnection().commit();
stmt.close();
stmt = null;
long spendTime = System.currentTimeMillis() - start;
System.out.println("鍚戞暟鎹簱鎻掑叆涓涓囨潯璁板綍鐢ㄥ幓:" + spendTime*1.0/1000 + " s");
}catch(SQLException e)
{
System.out.println(e.getLocalizedMessage());
}
}
public void display(ResultSet rs)
{
try
{
ResultSetMetaData rsmd = rs.getMetaData();
int colLen = rsmd.getColumnCount();
while(rs.next())
{
for(int i=0; i<colLen;i++)
{
System.out.print(rsmd.getColumnName(i+1) + ": " + rs.getObject(i+1) + " ");
}
System.out.println();
}
}catch(SQLException e)
{
System.out.println(e.getLocalizedMessage());
}
}
}
package com.semovy.test;
import com.semovy.service.impl.SQLServerDatabase;
public class TestHelloWorld {
public static void main(String[] args) {
// ApplicationContext appContext = new
// FileSystemXmlApplicationContext("classpath:config.xml");
// Hello hello = (Hello)appContext.getBean("hello");
// hello.saySaluation();
// IoC Inversion of Control 鍙嶅悜鎺у埗.
// 鍙戞槑鑰呮柊鍛藉悕涓?DI dipendency Injection 渚濊禆娉ㄥ叆.
// 鍙嶅悜鎺у埗鏄疄鐜頒緷璧栨娊璞?涓嶆槸鎶借薄渚濊禆瀹炵幇.
SQLServerDatabase sqlServerDB = new SQLServerDatabase(
"com.microsoft.jdbc.sqlserver.SQLServerDriver", "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test",
"sa", "1234");
sqlServerDB.executeUpdate("drop table item if exist create table item(id int not null identity(1,1) primary key,int categoryId not null,itemName varchar(255) default '')");
sqlServerDB.executeUpdate("delete from item");
sqlServerDB.executeBatchUpdate();
sqlServerDB.display(sqlServerDB.executeQuery("select top 100 * from item"));
sqlServerDB.closeConnection();
}
}
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl涓烘暟鎹簱鐨凷ID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample涓轟綘鐨勬暟鎹簱鍚?
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb涓烘暟鎹簱
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB涓轟綘鐨勬暟鎹簱鍚?
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
5銆両nformix鏁版嵁搴?/strong>
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB涓烘暟鎹簱鍚?
Connection conn= DriverManager.getConnection(url);
銆銆6銆丮ySQL鏁版嵁搴?/strong>
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB涓烘暟鎹簱鍚?
Connection conn= DriverManager.getConnection(url);
銆銆7銆丳ostgreSQL鏁版嵁搴?/strong>
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB涓烘暟鎹簱鍚?
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
銆銆8銆乤ccess鏁版嵁搴撶洿榪炵敤ODBC鐨?br />
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;
銆銆浜屻丣DBC榪炴帴MySql鏂瑰紡
銆銆涓嬮潰鏄嬌鐢↗DBC榪炴帴MySql鐨勪竴涓皬鐨勬暀紼?
銆銆1銆佹煡鎵鵑┍鍔ㄧ▼搴?/strong>
銆銆MySQL鐩墠鎻愪緵鐨刯ava椹卞姩紼嬪簭涓篊onnection/J錛屽彲浠ヤ粠MySQL瀹樻柟緗戠珯涓嬭澆錛屽茍鎵懼埌mysql-connector-java-3.0.15-ga-bin.jar鏂囦歡錛屾椹卞姩紼嬪簭涓虹函java椹卞姩紼嬪簭錛屼笉闇鍋氬叾浠栭厤緗?br />
2銆佸姩鎬佹寚瀹歝lasspath
銆銆濡傛灉闇瑕佹墽琛屾椂鍔ㄦ佹寚瀹歝lasspath錛屽氨鍦ㄦ墽琛屾椂閲囩敤錛峜p鏂瑰紡銆傚惁鍒欏皢涓婇潰鐨?jar鏂囦歡鍔犲叆鍒癱lasspath鐜鍙橀噺涓?br />
銆銆3銆佸姞杞介┍鍔ㄧ▼搴?/strong>
try{
銆Class.forName(com.mysql.jdbc.Driver);
銆System.out.println(Success loading Mysql Driver!);
}catch(Exception e)
{
銆System.out.println(Error loading Mysql Driver!);
銆e.printStackTrace();
}
銆銆4銆佽緗繛鎺ョ殑url
jdbc錛歮ysql錛?/localhost/databasename[?pa=va][錛唒a=va]
銆銆涓夈佷互涓嬪垪鍑轟簡鍦ㄤ嬌鐢↗DBC鏉ヨ繛鎺racle鏁版嵁搴撴椂鍙互浣跨敤鐨勪竴浜涙妧宸?/strong>
銆銆1銆佸湪瀹㈡埛绔蔣浠跺紑鍙戜腑浣跨敤Thin椹卞姩紼嬪簭
銆銆鍦ㄥ紑鍙慗ava杞歡鏂歸潰錛孫racle鐨勬暟鎹簱鎻愪緵浜嗗洓縐嶇被鍨嬬殑椹卞姩紼嬪簭錛屼簩縐嶇敤浜庡簲鐢ㄨ蔣浠躲乤pplets銆乻ervlets絳夊鎴風杞歡錛屽彟澶栦簩縐嶇敤浜庢暟鎹簱涓殑Java瀛樺偍榪囩▼絳夋湇鍔″櫒绔蔣浠躲傚湪瀹㈡埛鏈虹杞歡鐨勫紑鍙戜腑錛屾垜浠彲浠ラ夋嫨OCI椹卞姩紼嬪簭鎴朤hin椹卞姩紼嬪簭銆侽CI椹卞姩紼嬪簭鍒╃敤Java鏈湴鍖栨帴鍙o紙JNI錛夛紝閫氳繃Oracle瀹㈡埛绔蔣浠朵笌鏁版嵁搴撹繘琛岄氳銆俆hin椹卞姩紼嬪簭鏄函Java椹卞姩紼嬪簭錛屽畠鐩存帴涓庢暟鎹簱榪涜閫氳銆備負浜嗚幏寰楁渶楂樼殑鎬ц兘錛孫racle寤鴻鍦ㄥ鎴風杞歡鐨勫紑鍙戜腑浣跨敤OCI椹卞姩紼嬪簭錛岃繖浼間箮鏄紜殑銆備絾鎴戝緩璁嬌鐢═hin椹卞姩紼嬪簭錛屽洜涓洪氳繃澶氭嫻嬭瘯鍙戠幇錛屽湪閫氬父鎯呭喌涓嬶紝Thin椹卞姩紼嬪簭鐨勬ц兘閮借秴榪囦簡OCI椹卞姩紼嬪簭銆?br />
銆銆2銆佸叧闂嚜鍔ㄦ彁浜ゅ姛鑳斤紝鎻愰珮緋葷粺鎬ц兘
銆銆鍦ㄧ涓嬈″緩绔嬩笌鏁版嵁搴撶殑榪炴帴鏃訛紝鍦ㄧ己鐪佹儏鍐典笅錛岃繛鎺ユ槸鍦ㄨ嚜鍔ㄦ彁浜ゆā寮忎笅鐨勩備負浜嗚幏寰楁洿濂界殑鎬ц兘錛屽彲浠ラ氳繃璋冪敤甯﹀竷灝斿糵alse鍙傛暟鐨凜onnection綾葷殑setAutoCommit()鏂規硶鍏抽棴鑷姩鎻愪氦鍔熻兘錛屽涓嬫墍紺猴細
銆銆conn.setAutoCommit(false);
銆銆鍊煎緱娉ㄦ剰鐨勬槸錛屼竴鏃﹀叧闂簡鑷姩鎻愪氦鍔熻兘錛屾垜浠氨闇瑕侀氳繃璋冪敤Connection綾葷殑commit()鍜宺ollback()鏂規硶鏉ヤ漢宸ョ殑鏂瑰紡瀵逛簨鍔¤繘琛岀鐞嗐?br />
3銆佸湪鍔ㄦ丼QL鎴栨湁鏃墮棿闄愬埗鐨勫懡浠や腑浣跨敤Statement瀵硅薄
銆銆鍦ㄦ墽琛孲QL鍛戒護鏃訛紝鎴戜滑鏈変簩縐嶉夋嫨錛氬彲浠ヤ嬌鐢≒reparedStatement瀵硅薄錛屼篃鍙互浣跨敤Statement瀵硅薄銆傛棤璁哄灝戞鍦頒嬌鐢ㄥ悓涓涓猄QL鍛戒護錛孭reparedStatement閮藉彧瀵瑰畠瑙f瀽鍜岀紪璇戜竴嬈°傚綋浣跨敤Statement瀵硅薄鏃訛紝姣忔鎵ц涓涓猄QL鍛戒護鏃訛紝閮戒細瀵瑰畠榪涜瑙f瀽鍜岀紪璇戙傝繖鍙兘浼氫嬌浣犺涓猴紝浣跨敤PreparedStatement瀵硅薄姣斾嬌鐢⊿tatement瀵硅薄鐨勯熷害鏇村揩銆傜劧鑰岋紝鎴戣繘琛岀殑嫻嬭瘯琛ㄦ槑錛屽湪瀹㈡埛绔蔣浠朵腑錛屾儏鍐靛茍闈炲姝ゃ傚洜姝わ紝鍦ㄦ湁鏃墮棿闄愬埗鐨凷QL鎿嶄綔涓紝闄ら潪鎴愭壒鍦板鐞哠QL鍛戒護錛屾垜浠簲褰撹冭檻浣跨敤Statement瀵硅薄銆?br />
銆銆姝ゅ錛屼嬌鐢⊿tatement瀵硅薄涔熶嬌寰楃紪鍐欏姩鎬丼QL鍛戒護鏇村姞綆鍗曪紝鍥犱負鎴戜滑鍙互灝嗗瓧絎︿覆榪炴帴鍦ㄤ竴璧鳳紝寤虹珛涓涓湁鏁堢殑SQL鍛戒護銆傚洜姝わ紝鎴戣涓猴紝Statement瀵硅薄鍙互浣垮姩鎬丼QL鍛戒護鐨勫垱寤哄拰鎵ц鍙樺緱鏇村姞綆鍗曘?br />
銆銆4銆佸埄鐢╤elper鍑芥暟瀵瑰姩鎬丼QL鍛戒護榪涜鏍煎紡鍖?/strong>
銆銆鍦ㄥ垱寤轟嬌鐢⊿tatement瀵硅薄鎵ц鐨勫姩鎬丼QL鍛戒護鏃訛紝鎴戜滑闇瑕佸鐞嗕竴浜涙牸寮忓寲鏂歸潰鐨勯棶棰樸備緥濡傦紝濡傛灉鎴戜滑鎯沖垱寤轟竴涓皢鍚嶅瓧O'Reilly鎻掑叆琛ㄤ腑鐨凷QL鍛戒護錛屽垯蹇呴』浣跨敤浜屼釜鐩歌繛鐨勨?'鈥濆彿鏇挎崲O'Reilly涓殑鈥?鈥濆彿銆傚畬鎴愯繖浜涘伐浣滅殑鏈濂界殑鏂規硶鏄垱寤轟竴涓畬鎴愭浛鎹㈡搷浣滅殑helper鏂規硶錛岀劧鍚庡湪榪炴帴瀛楃涓插績鏈嶇敤鍏紡琛ㄨ揪涓涓猄QL鍛戒護鏃訛紝浣跨敤鍒涘緩鐨刪elper鏂規硶銆備笌姝ょ被浼肩殑鏄紝鎴戜滑鍙互璁﹉elper鏂規硶鎺ュ彈涓涓狣ate鍨嬬殑鍊鹼紝鐒跺悗璁╁畠杈撳嚭鍩轟簬Oracle鐨則o_date()鍑芥暟鐨勫瓧絎︿覆琛ㄨ揪寮忋?br />
銆銆5銆佸埄鐢≒reparedStatement瀵硅薄鎻愰珮鏁版嵁搴撶殑鎬諱綋鏁堢巼
銆銆鍦ㄤ嬌鐢≒reparedStatement瀵硅薄鎵цSQL鍛戒護鏃訛紝鍛戒護琚暟鎹簱榪涜瑙f瀽鍜岀紪璇戯紝鐒跺悗琚斁鍒板懡浠ょ紦鍐插尯銆傜劧鍚庯紝姣忓綋鎵ц鍚屼竴涓狿reparedStatement瀵硅薄鏃訛紝瀹冨氨浼氳鍐嶈В鏋愪竴嬈★紝浣嗕笉浼氳鍐嶆緙栬瘧銆傚湪緙撳啿鍖轟腑鍙互鍙戠幇棰勭紪璇戠殑鍛戒護錛屽茍涓斿彲浠ラ噸鏂頒嬌鐢ㄣ傚湪鏈夊ぇ閲忕敤鎴風殑浼佷笟綰у簲鐢ㄨ蔣浠朵腑錛岀粡甯鎬細閲嶅鎵ц鐩稿悓鐨凷QL鍛戒護錛屼嬌鐢≒reparedStatement瀵硅薄甯︽潵鐨勭紪璇戞鏁扮殑鍑忓皯鑳藉鎻愰珮鏁版嵁搴撶殑鎬諱綋鎬ц兘銆傚鏋滀笉鏄湪瀹㈡埛绔垱寤恒侀澶囥佹墽琛孭reparedStatement浠誨姟闇瑕佺殑鏃墮棿闀夸簬Statement浠誨姟錛屾垜浼氬緩璁湪闄ゅ姩鎬丼QL鍛戒護涔嬪鐨勬墍鏈夋儏鍐典笅浣跨敤PreparedStatement瀵硅薄銆?br />
銆銆6銆佸湪鎴愭壒澶勭悊閲嶅鐨勬彃鍏ユ垨鏇存柊鎿嶄綔涓嬌鐢≒reparedStatement瀵硅薄
銆銆濡傛灉鎴愭壒鍦板鐞嗘彃鍏ュ拰鏇存柊鎿嶄綔錛屽氨鑳藉鏄捐憲鍦板噺灝戝畠浠墍闇瑕佺殑鏃墮棿銆侽racle鎻愪緵鐨凷tatement鍜?CallableStatement騫朵笉鐪熸鍦版敮鎸佹壒澶勭悊錛屽彧鏈塒reparedStatement瀵硅薄鎵嶇湡姝e湴鏀寔鎵瑰鐞嗐傛垜浠彲浠ヤ嬌鐢╝ddBatch()鍜宔xecuteBatch()鏂規硶閫夋嫨鏍囧噯鐨凧DBC鎵瑰鐞嗭紝鎴栬呴氳繃鍒╃敤PreparedStatement瀵硅薄鐨剆etExecuteBatch()鏂規硶鍜屾爣鍑嗙殑executeUpdate()鏂規硶閫夋嫨閫熷害鏇村揩鐨凮racle涓撴湁鐨勬柟娉曘傝浣跨敤Oracle涓撴湁鐨勬壒澶勭悊鏈哄埗錛屽彲浠ヤ互濡備笅鎵紺虹殑鏂瑰紡璋冪敤setExecuteBatch()錛?br />
PreparedStatement pstmt3D null;
try {
銆((OraclePreparedStatement)pstmt).setExecuteBatch(30);
銆...
銆pstmt.executeUpdate();
}
銆銆璋冪敤setExecuteBatch()鏃舵寚瀹氱殑鍊兼槸涓涓笂闄愶紝褰撹揪鍒拌鍊兼椂錛屽氨浼氳嚜鍔ㄥ湴寮曞彂SQL鍛戒護鎵ц錛屾爣鍑嗙殑executeUpdate()鏂規硶灝變細琚綔涓烘壒澶勭悊閫佸埌鏁版嵁搴撲腑銆傛垜浠彲浠ラ氳繃璋冪敤PreparedStatement綾葷殑sendBatch()鏂規硶闅忔椂浼犺緭鎵瑰鐞嗕換鍔°?br />
7銆佷嬌鐢∣racle locator鏂規硶鎻掑叆銆佹洿鏂板ぇ瀵硅薄錛圠OB錛?br />
銆銆Oracle鐨凱reparedStatement綾諱笉瀹屽叏鏀寔BLOB鍜孋LOB絳夊ぇ瀵硅薄鐨勫鐞嗭紝灝ゅ叾鏄疶hin椹卞姩紼嬪簭涓嶆敮鎸佸埄鐢≒reparedStatement瀵硅薄鐨剆etObject()鍜宻etBinaryStream()鏂規硶璁劇疆BLOB鐨勫鹼紝涔熶笉鏀寔鍒╃敤setCharacterStream()鏂規硶璁劇疆CLOB鐨勫箋傚彧鏈塴ocator鏈韓涓殑鏂規硶鎵嶈兘澶熶粠鏁版嵁搴撲腑鑾峰彇LOB綾誨瀷鐨勫箋傚彲浠ヤ嬌鐢≒reparedStatement瀵硅薄鎻掑叆鎴栨洿鏂癓OB錛屼絾闇瑕佷嬌鐢╨ocator鎵嶈兘鑾峰彇LOB鐨勫箋傜敱浜庡瓨鍦ㄨ繖浜屼釜闂錛屽洜姝わ紝鎴戝緩璁嬌鐢╨ocator鐨勬柟娉曟潵鎻掑叆銆佹洿鏂版垨鑾峰彇LOB鐨勫箋?br />
銆銆8銆佷嬌鐢⊿QL92璇硶璋冪敤瀛樺偍榪囩▼
銆銆鍦ㄨ皟鐢ㄥ瓨鍌ㄨ繃紼嬫椂錛屾垜浠彲浠ヤ嬌鐢⊿QL92鎴朞racle PL/SQL錛岀敱浜庝嬌鐢∣racle PL/SQL騫舵病鏈変粈涔堝疄闄呯殑濂藉錛岃屼笖浼氱粰浠ュ悗緇存姢浣犵殑搴旂敤紼嬪簭鐨勫紑鍙戜漢鍛樺甫鏉ラ夯鐑︼紝鍥犳錛屾垜寤鴻鍦ㄨ皟鐢ㄥ瓨鍌ㄨ繃紼嬫椂浣跨敤SQL92銆?br />
銆銆9銆佷嬌鐢∣bject SQL灝嗗璞℃ā寮忚漿縐誨埌鏁版嵁搴撲腑
銆銆鏃㈢劧鍙互灝哋racle鐨勬暟鎹簱浣滀負涓縐嶉潰鍚戝璞$殑鏁版嵁搴撴潵浣跨敤錛屽氨鍙互鑰冭檻灝嗗簲鐢ㄧ▼搴忎腑鐨勯潰鍚戝璞℃ā寮忚漿鍒版暟鎹簱涓傜洰鍓嶇殑鏂規硶鏄垱寤篔ava bean浣滀負浼鐨勬暟鎹簱瀵硅薄錛屽皢瀹冧滑鐨勫睘鎬ф槧灝勫埌鍏崇郴琛ㄤ腑錛岀劧鍚庡湪榪欎簺bean涓坊鍔犳柟娉曘傚敖綆¤繖鏍蜂綔鍦↗ava涓病鏈変粈涔堥棶棰橈紝浣嗙敱浜庢搷浣滈兘鏄湪鏁版嵁搴撲箣澶栬繘琛岀殑錛屽洜姝ゅ叾浠栬闂暟鎹簱鐨勫簲鐢ㄨ蔣浠舵棤娉曞埄鐢ㄥ璞℃ā寮忋傚鏋滃埄鐢∣racle鐨勯潰鍚戝璞$殑鎶鏈紝鍙互閫氳繃鍒涘緩涓涓柊鐨勬暟鎹簱瀵硅薄綾誨瀷鍦ㄦ暟鎹簱涓ā浠垮叾鏁版嵁鍜屾搷浣滐紝鐒跺悗浣跨敤JPublisher絳夊伐鍏風敓鎴愯嚜宸辯殑Java bean綾匯傚鏋滀嬌鐢ㄨ繖縐嶆柟寮忥紝涓嶄絾Java搴旂敤紼嬪簭鍙互浣跨敤搴旂敤杞歡鐨勫璞℃ā寮忥紝鍏朵粬闇瑕佸叡浜綘鐨勫簲鐢ㄤ腑鐨勬暟鎹拰鎿嶄綔鐨勫簲鐢ㄨ蔣浠朵篃鍙互浣跨敤搴旂敤杞歡涓殑瀵硅薄妯″紡銆?br />
銆銆10銆佸埄鐢⊿QL瀹屾垚鏁版嵁搴撳唴鐨勬搷浣?/strong>
銆銆鎴戣鍚戝ぇ瀹朵粙緇嶇殑鏈閲嶈鐨勭粡楠屾槸鍏呭垎鍒╃敤SQL鐨勯潰鍚戦泦鍚堢殑鏂規硶鏉ヨВ鍐蟲暟鎹簱澶勭悊闇姹傦紝鑰屼笉鏄嬌鐢↗ava絳夎繃紼嬪寲鐨勭紪紼嬭璦銆?br />
銆銆濡傛灉緙栫▼浜哄憳瑕佸湪涓涓〃涓煡鎵捐澶氳錛岀粨鏋滀腑鐨勬瘡涓閮戒細鏌ユ壘鍏朵粬琛ㄤ腑鐨勬暟鎹紝鏈鍚庯紝緙栫▼浜哄憳鍒涘緩浜嗙嫭绔嬬殑UPDATE鍛戒護鏉ユ垚鎵瑰湴鏇存柊絎竴涓〃涓殑鏁版嵁銆備笌姝ょ被浼肩殑浠誨姟鍙互閫氳繃鍦╯et瀛愬彞涓嬌鐢ㄥ鍒楀瓙鏌ヨ鑰屽湪涓涓猆PDATE鍛戒護涓畬鎴愩傚綋鑳藉鍦ㄥ崟涓鐨凷QL鍛戒護涓畬鎴愪換鍔★紝浣曞繀瑕佽鏁版嵁鍦ㄧ綉涓婃祦鏉ユ祦鍘葷殑錛熸垜寤鴻鐢ㄦ埛璁ょ湡瀛︿範濡備綍鏈澶ч檺搴﹀湴鍙戞尌SQL鐨勫姛鑳姐?