锘??xml version="1.0" encoding="utf-8" standalone="yes"?> http://www.navicat.com/涓嬭澆Navicate for oracle 鎴栬?/span> http://www.navicat.com/en/products/navicat_oracle/oracle_overview.html 娉ㄥ唽淇℃伅 涓嬭澆瀹㈡埛绔?img src="http://www.tkk7.com/images/blogjava_net/hyljava/鍥劇墖1.png" alt="" /> 鐐瑰嚮瀹夎錛?/span> 瀹屾垚鍚庯紝鍙兘榪樹笉鑳界敤錛屼絾鏄牴鎹粰鐨勮繛鎺ュ埌緗戠珯涓婃寚瀹氫綅緗慨鏀瑰嵆鍙?/span> ORA-12541:TNS:鏃犵洃鍚▼搴忕殑閿欒, 濡備綍鍚姩oracle鐨勭洃鍚?/span>銆?/span> 銆銆1.鎵撳紑Net Configuration Assistant 銆銆2.閫夋嫨鐩戝惉紼嬪簭閰嶇疆錛屼笅涓姝?/span> 銆銆3.閫夋嫨閲嶆柊閰嶇疆錛屼笅涓姝?/span> 銆銆4.閫夋嫨鐩戝惉紼嬪簭錛岄粯璁わ紝涓嬩竴姝?/span> 銆銆娉細濡傛灉浣犵殑鐩戝惉宸插惎鍔紝鍒欏嚭鐜版彁紺烘錛岄夋嫨鏄?/span> 銆銆5.閫夋嫨鍗忚錛屼嬌鐢ㄩ粯璁ょ殑TCP鍗忚錛屼笅涓姝?/span> 銆銆6.閫夋嫨绔彛鍙鳳紝浣跨敤鏍囧噯绔彛鍙?521錛屼笅涓姝?br /> 銆銆7.涓嶉厤緗彟涓涓洃鍚▼搴忥紝閫夋嫨鍚︼紝涓嬩竴姝?/span> 銆銆8.鐩戝惉紼嬪簭閰嶇疆瀹屾垚錛屼笅涓姝?/span> 鍒版鍩烘湰灝卞彲浠ヨ繍琛屼簡錛屼綘閲嶆柊寮鍚?/span>oracle鐨勬湇鍔★紝嫻嬭瘯鐪嬭兘鍚﹁繛涓妏lsql 銆銆閲嶉厤鏈嶅姟鍚嶏紝嫻嬭瘯榪炴帴 銆銆1.閫夋嫨Net鏈嶅姟鍣ㄩ厤緗紝涓嬩竴姝?/span> 銆銆2.閫夋嫨閲嶆柊閰嶇疆錛屼笅涓姝?/span> 銆銆3.閫夋嫨鏁版嵁搴撳悕錛屼笅涓姝?/span> 銆銆4.濉啓鏈嶅姟鍚嶏紝涔熷氨鏄綘鍒涘緩鏁版嵁搴撴椂鐨勫叏鏁版嵁搴撳悕錛屼笅涓姝?/span> 銆銆5.閫夋嫨TCP鍗忚錛屼笅涓姝?/span> 銆銆6.濉啓涓繪満鍚?鍙~鍐欎綘鐨処P鍦板潃錛屼篃鍙~鍐欎綘鐨勪富鏈哄悕)錛屼嬌鐢ㄦ爣鍑嗙鍙e彿1521錛屼笅涓姝?/span> 銆銆7.榪涜嫻嬭瘯錛屼笅涓姝?/span> 銆銆8.閫夋嫨鏇存敼鐧誨綍 銆銆9.濉啓鐢ㄦ埛鍚嶅拰鍙d護錛岀‘瀹?/span> 銆銆10.嫻嬭瘯榪炴帴鎴愬姛錛屼笅涓姝?/span> 銆銆11.緗戠粶鏈嶅姟鍚嶏紝榛樿(鍜屼箣鍓嶇殑鏁版嵁搴撳悕涓鏍?錛屼笅涓姝?/span> 銆銆12.涓嶉厤緗彟涓涓狽et鏈嶅姟鍚嶏紝閫夋嫨鍚︼紝涓嬩竴姝?/span> 銆銆13.Net鏈嶅姟鍚嶉厤緗畬姣曪紝涓嬩竴姝ワ紝瀹屾垚 銆銆鍚姩PL/SQLDeveloper錛岃緭鍏ョ敤鎴峰悕鍜屽彛浠わ紝鐧誨綍鎴愬姛 銆銆灝忕粨錛氬緢澶氶敊璇兘鏈夊緢鏄庢樉鐨勬彁紺猴紝瑕佹牴鎹彁紺哄幓鎵劇浉鍏崇殑瑙e喅鍔炴硶銆?/span>
http://fd.itedu-g.cn/login.php
]]>NavicateForOracle瀹夎榪囩▼
name:www.pc6.com
organization:www.pc6.com
key:NAVB-2WQC-4UWV-5XXW
]]>
]]>
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* 鐢ㄦ埛鏁版嵁搴撹闂殑綾?br /> *@浣滆匒dministrator
*@createTime 2011-12-5 涓婂崍11:55:18
*@version 1.0
*/
public class DButil1 {
private Connection conn;
private Statement st;
private PreparedStatement pps;
private ResultSet rs;
public String url="jdbc:oracle:thin:@localhost:1521:orcl";
private String user="hyl";
private String password="hyl";
//鍔犺澆椹卞姩銆佹斁鍦ㄩ潤鎬佷唬鐮佸潡涓紝淇濊瘉椹卞姩鍦ㄦ暣涓」鐩腑鍙姞杞戒竴嬈★紝鎻愰珮鏁堢巼
static{
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 鑾峰彇榪炴帴鐨勬柟娉?br /> * @return Connection 涓涓湁鏁堢殑鏁版嵁搴撹繛鎺?br /> */
public Connection getConnection()
{
try {
//娉ㄦ剰閾炬帴鏃訛紝瑕佹崲鎴愯嚜宸辯殑鏁版嵁搴撳悕錛屾暟鎹簱鐢ㄦ埛鍚嶅強瀵嗙爜
Connection con=DriverManager.getConnection(url,user,password);
return con;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 鐢ㄤ簬鎵ц鏇存柊鐨勬柟娉?鍖呮嫭錛坕nsert delete update錛夋搷浣?br /> * @param sql String 綾誨瀷鐨凷QL璇彞
* @return Integer 琛ㄧず鍙楀獎鍝嶇殑琛屾暟
*/
public int update(String sql)
{
//瀹氫箟鍙橀噺鐢ㄦ潵鍒ゆ柇鏇存柊鎿嶄綔鏄惁鎴愬姛錛屽鏋滆繑鍥?1璇存槑娌℃湁褰卞搷鍒版洿鏂版搷浣滅殑鏁版嵁搴撹褰曟潯鏁幫紝鍗蟲洿鏂版搷浣滃け璐?br /> int row=-1;
try {
//濡傛灉鏁版嵁搴撻摼鎺ヨ鍏抽棴浜嗭紝灝辮鏃㈠緱涓涓柊鐨勯摼鎺?br /> if(conn==null||conn.isClosed()){
conn=getConnection();
}
//浣跨敤Connection瀵硅薄conn鐨刢reateStatement()鍒涘緩Statement錛堟暟鎹簱璇彞瀵硅薄錛塻t
st=conn.createStatement();
//鎵ц鏇存柊鎿嶄綔錛岃繑鍥炲獎鍝嶇殑璁板綍鏉℃暟row
row=st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
finally{
close();
}
return row;
}
/**
* 鍩轟簬PreparedStatement鐨勪慨鏀規柟娉?PreparedStatement:琛ㄧず棰勭紪璇戠殑 SQL 璇彞鐨勫璞?br /> * @param sql String 綾誨瀷鐨凷QL璇彞錛坕nsert delete update錛?br /> * @param obj 瀛樻斁鍔ㄦ佸弬鏁扮殑鏁扮粍
* @return Integer 琛ㄧず鍙楀獎鍝嶇殑琛屾暟
*/
public int update(String sql,Object ...obj)
{
try {
//鑾峰彇閾炬帴
if(conn==null||conn.isClosed()){
conn=getConnection();
}
//鍒涘緩棰勭紪璇戠殑 SQL 璇彞瀵硅薄
pps=conn.prepareStatement(sql);
//瀹氫箟鍙橀噺length浠h〃鏁扮粍闀垮害錛屼篃灝辨槸棰勫鐞嗙殑sql璇彞涓殑鍙傛暟涓暟
int length=0;
//ParameterMetaData錛氱敤浜庤幏鍙栧叧浜?PreparedStatement 瀵硅薄涓瘡涓弬鏁扮殑綾誨瀷鍜屽睘鎬т俊鎭殑瀵硅薄
ParameterMetaData pmd=pps.getParameterMetaData();
length=pmd.getParameterCount();
//寰幆灝唖ql璇彞涓殑?璁劇疆涓簅bj鏁扮粍涓搴旂殑鍊鹼紝娉ㄦ剰浠?寮濮嬶紝鎵浠瑕佸姞1
for(int i=0;i<length;i++)
{
pps.setObject(i+1, obj[i]);
}
//鎵ц鏇存柊鎿嶄綔
return pps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally{
close();
}
return -1;
}
/**
* 鑾峰彇涓鏉¤褰曠殑鏂規硶錛岃渚濊禆浜庝笅闈㈢殑queryToList鏂規硶錛屾敞鎰忔硾鍨嬬殑浣跨敤
* @param sql
* @return銆Map<String,Object>
*/
public Map<String,Object> getOneRow(String sql)
{
//鎵ц涓嬮潰鐨剄ueryToList鏂規硶
List<Map<String,Object>> list=queryToList(sql);
//涓夌洰榪愮畻錛屾煡璇㈢粨鏋渓ist涓嶄負絀鴻繑鍥瀕ist涓涓涓璞?鍚﹀垯榪斿洖null
return list.size()>0?list.get(0):null;
}
/**
* 榪斿洖鏌ヨ緇撴灉鍒楄〃錛屽艦濡傦細[{TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}, {TEST_NAME=bbb, TEST_NO=3, TEST_PWD=bbb}...]
* @param sql
* @return List<Map<String,Object>>
*/
public List<Map<String,Object>> queryToList(String sql)
{
//鍒涘緩闆嗗悎鍒楄〃鐢ㄤ互淇濆瓨鎵鏈夋煡璇㈠埌鐨勮褰?br /> List<Map<String, Object>> list=new LinkedList<Map<String, Object>>();
try {
if(conn==null||conn.isClosed()){
conn=getConnection();
}
st=conn.createStatement();
rs=st.executeQuery(sql);
//ResultSetMetaData 鏄粨鏋滈泦鍏冩暟鎹紝鍙幏鍙栧叧浜?ResultSet 瀵硅薄涓垪鐨勭被鍨嬪拰灞炴т俊鎭殑瀵硅薄 渚嬪錛氱粨鏋滈泦涓叡鍖呮嫭澶氬皯鍒楋紝姣忓垪鐨勫悕縐板拰綾誨瀷絳変俊鎭?br /> ResultSetMetaData rsmd=rs.getMetaData();
//鑾峰彇緇撴灉闆嗕腑鐨勫垪鏁?br /> int columncount=rsmd.getColumnCount();
//while鏉′歡鎴愮珛琛ㄦ槑緇撴灉闆嗕腑瀛樺湪鏁版嵁
while(rs.next())
{
//鍒涘緩涓涓狧ashMap鐢ㄤ簬瀛樺偍涓鏉℃暟鎹?br /> HashMap<String, Object> onerow=new HashMap<String, Object>();
//寰幆鑾峰彇緇撴灉闆嗕腑鐨勫垪鍚嶅強鍒楀悕鎵瀵瑰簲鐨勫鹼紝姣忔寰幆閮藉緱鍒頒竴涓璞★紝褰㈠錛歿TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}
for(int i=0;i<columncount;i++)
{
//鑾峰彇鎸囧畾鍒楃殑鍚嶇О錛屾敞鎰弌rcle涓垪鍚嶇殑澶у皬鍐?br /> String columnName=rsmd.getColumnName(i+1);
onerow.put(columnName, rs.getObject(i+1));
}
//灝嗚幏鍙栧埌鐨勫璞newrow={TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}鏀懼埌闆嗗悎鍒楄〃涓?br /> list.add(onerow);
}
}catch (SQLException e) {
e.printStackTrace();
}
finally{
close();
}
return list;
}
/**
* 榪斿洖鏌ヨ緇撴灉鍒楄〃,浣跨敤鐨勬槸棰勭紪緇嶴QL 璇彞瀵硅薄PreparedStatement
* 褰㈠錛歔{TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}, {TEST_NAME=bbb, TEST_NO=3, TEST_PWD=bbb}]
* @param sql
* @param paramValues
* @return List<Map<String,Object>>
*/
public List<Map<String,Object>> queryWithParam(String sql,Object ...paramValues){
//鍒涘緩闆嗗悎鍒楄〃鐢ㄤ互淇濆瓨鎵鏈夋煡璇㈠埌鐨勮褰?br /> List<Map<String, Object>> list=new LinkedList<Map<String, Object>>();
try {
if(conn==null||conn.isClosed()){
conn=getConnection();
}
pps = conn.prepareStatement(sql);
for (int i = 0; i < paramValues.length; i++) {
pps.setObject(i + 1, paramValues[i]);
}
rs = pps.executeQuery();
//ResultSetMetaData 鏄粨鏋滈泦鍏冩暟鎹紝鍙幏鍙栧叧浜?ResultSet 瀵硅薄涓垪鐨勭被鍨嬪拰灞炴т俊鎭殑瀵硅薄 渚嬪錛氱粨鏋滈泦涓叡鍖呮嫭澶氬皯鍒楋紝姣忓垪鐨勫悕縐板拰綾誨瀷絳変俊鎭?br /> ResultSetMetaData rsmd=rs.getMetaData();
//鑾峰彇緇撴灉闆嗕腑鐨勫垪鏁?br /> int columncount=rsmd.getColumnCount();
//while鏉′歡鎴愮珛琛ㄦ槑緇撴灉闆嗕腑瀛樺湪鏁版嵁
while (rs.next()) {
//鍒涘緩涓涓狧ashMap鐢ㄤ簬瀛樺偍涓鏉℃暟鎹?br /> HashMap<String, Object> onerow=new HashMap<String, Object>();
//寰幆鑾峰彇緇撴灉闆嗕腑鐨勫垪鍚嶅強鍒楀悕鎵瀵瑰簲鐨勫鹼紝姣忔寰幆閮藉緱鍒頒竴涓璞★紝褰㈠錛歿TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}
for(int i=0;i<columncount;i++)
{
//鑾峰彇鎸囧畾鍒楃殑鍚嶇О錛屾敞鎰弌rcle涓垪鍚嶇殑澶у皬鍐?br /> String columnName=rsmd.getColumnName(i+1);
onerow.put(columnName, rs.getObject(i+1));
}
//灝嗚幏鍙栧埌鐨勫璞newrow={TEST_NAME=aaa, TEST_NO=2, TEST_PWD=aaa}鏀懼埌闆嗗悎鍒楄〃涓?br /> list.add(onerow);
}
}catch (SQLException e) {
e.printStackTrace();
}
finally{
close();
}
return list;
}
/**
* 瀹炵幇oracle鍒嗛〉鍔熻兘
* @param sql
* @param pagesize
* @param pagenow
* @return PageBean
*/
public PageBean getPage(String sql,int pagesize,int pagenow)
{
PageBean pb=new PageBean();
int end=pagenow*pagesize;
int start=end-pagesize+1;
String exesql="select a.* from (select t.*,rownum as rowindex from ("+sql+") t where rownum<="+end+" ) a where a.rowindex>="+start;
String countsql="select count(*) as rowcount from ("+sql+")";
pb.setResult(queryToList(exesql));
pb.setPagenow(pagenow);
pb.setPagesize(pagesize);
Map<String,Object> map=this.getOneRow(countsql);
int rows=Integer.parseInt(map.get("ROWCOUNT").toString());
pb.setRows(rows);
int pages=rows%pagesize==0?rows/pagesize:rows/pagesize+1;
pb.setPages(pages);
pb.setSql(sql);
return pb;
}
/**
* 鍏抽棴鏁版嵁搴撳悇縐嶈祫婧怌onnection Statement PreparedStatement ResultSet鐨勬柟娉?br /> */
private void close()
{
if(rs!=null)
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(st!=null)
{
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(pps!=null){
try {
pps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
try {
if(conn!=null&&!conn.isClosed())
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}