ORACLEコマンド大全(2)
53770 ワード
:
DBMS_OUTPUT PL/SQL
DBMS_LOB LOB
DBMS_XMLQUERY XML
DBMS_RANDOM
UTL_FILE
===============================================================
Create or REPLACE TRIGGER biu_emp_deptno
BEFORE Insert or Update OF deptno
ON emp
FOR EACH ROW
WHEN (New.deptno <> 40)
BEGIN
:New.comm := 0;
END;
/
===============================================================
----
Create VIEW ord_view AS
Select order_master.orderno, order_master.ostatus,
order_detail.qty_deld, order_detail.qty_ord
FROM order_master, order_detail
Where order_master.orderno = order_detail.orderno;
Create or REPLACE TRIGGER order_mast_insert
INSTEAD OF Insert ON ord_view
REFERENCING NEW AS n
FOR EACH ROW
DECLARE
CURSOR ecur IS Select * FROM order_master
Where order_master.orderno = :n.orderno;
CURSOR dcur IS Select * FROM order_detail
Where order_detail.orderno = :n.orderno;
a ecur%rowtype;
b dcur%rowtype;
BEGIN
OPEN ecur;
OPEN dcur;
FETCH ecur into a;
FETCH dcur into b;
IF dcur%notfound THEN
Insert INTO order_master(orderno,ostatus)
VALUES(:n.orderno, :n.ostatus);
ELSE
Update order_master SET order_master.ostatus = :n.ostatus
Where order_master.orderno = :n.orderno;
END IF;
IF ecur%notfound THEN
Insert INTO order_detail(qty_ord,qty_deld,orderno)
VALUES(:n.qty_ord, :n.qty_deld, :n.orderno);
ELSE
Update order_detail
SET order_detail.qty_ord = :n.qty_ord,
order_detail.qty_deld = :n.qty_deld
Where order_detail.orderno = :n.orderno;
END IF;
CLOSE ecur;
CLOSE dcur;
END;
/
===============================================================
Create TABLE dropped_obj
(
obj_name VARCHAR2(30),
obj_type VARCHAR2(20),
drop_date DATE
);
Create or REPLACE TRIGGER log_drop_obj
AFTER Drop ON SCHEMA
BEGIN
Insert INTO dropped_obj
VALUES (ORA_DICT_OBJ_NAME, orA_DICT_OBJ_TYPE, SYSDATE);
END;
/
Alter TRIGGER biu_emp_deptno DISABLE;
Alter TRIGGER biu_emp_deptno ENABLE;
Drop TRIGGER biu_emp_deptno;
DESC USER_TRIGGERS;
===============================================================
DECLARE
l_num NUMBER;
counter NUMBER;
BEGIN
counter:=1;
WHILE counter <= 10
LOOP
l_num := ABS((DBMS_RANDOM.RANDOM MOD 100)) + 1;
DBMS_OUTPUT.PUT_LINE(l_num);
counter := counter + 1;
END LOOP;
END;
/
40
4
35
52
68
5
94
38
49
51
PL/SQL 。
===============================================================
===============================================================
--- xml
-- SYSTEM
Create DIRECTORY TEST_DIR AS 'C:\DEVELOP';
GRANT READ, WRITE ON DIRECTORY TEST_DIR TO SCOTT;
-- SCOTT
DECLARE
src CLOB;
xmlfile UTL_FILE.FILE_TYPE;
length INTEGER;
buffer VARCHAR2(16384);
BEGIN
src := DBMS_XMLQuery.getXml('select * from emp');
length := DBMS_LOB.GETLENGTH(src);
DBMS_LOB.READ(src, length, 1, buffer);
xmlfile := UTL_FILE.FOPEN('TEST_DIR', 'employees.xml', 'w');
UTL_FILE.PUT(xmlfile, buffer);
UTL_FILE.FCLOSE(xmlfile);
END;
/
===============================================================
------- xml
UTL_FILE
、 、
UTL_FILE DIRECTORY
1.Create DIRECTORY TEST_DIR AS 'C:\DEVELOP';
2.GRANT READ, WRITE ON DIRECTORY TEST_DIR TO SCOTT
SET SERVEROUT ON FORMAT WRAPPED
DECLARE
input_file UTL_FILE.FILE_TYPE;
input_buffer VARCHAR2(4000);
BEGIN
input_file := UTL_FILE.FOPEN('TEST_DIR', 'employees.xml', 'r');
FOR I IN 1..11 LOOP
UTL_FILE.GET_LINE(input_file, input_buffer);
DBMS_OUTPUT.PUT_LINE(input_buffer);
END LOOP;
UTL_FILE.FCLOSE(input_file);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('------------------');
END;
===============================================================
oracle $rman
oracle :
===============================================================
oracle 4
1.
SQL 。 SQL ,
2.
。
3.
oracle
,
4.
,
===============================================================
oracle
1.
2.
3.
4.
===============================================================
USERID
BUFFER ,
FILE , .dmp
FULL ,
OWNER
HELP
ROWS
TABLES ,
PARFILE
TABLESPACES ,
exp scott/tiger@tsinghua file=scott_back owner=scott
exp scott/tiger@tsinghua tables=(emp, dept) file=scott_back_tab
exp system/zl@tsinghua tablespaces=(users) file=tbs_users
exp system/zl parfile='C:\parameters.txt'
===============================================================
USERID
BUFFER ,
COMMIT ( BUFFER )
FILE
FROMUSER
TOUSER 。FROMUSER TOUSER
FULL
TABLES
ROWS
PARFILE ,
IGNORE , N
TABLESPACES ,
imp tsinghua/tsinghua@tsinghua file=item_back.dmp ignore=y full=y
scott martin
imp system/zl@tsinghua file=scott_back fromuser=scott touser=martin tables=(emp,dept)
imp system/oracle parfile='C:\parameters.txt'
===============================================================
:
===============================================================
:
, 。 , .
, .
===============================================================
:
1. ,
2.
3. Oracle
4.
5. ,
===============================================================
oracle xml .txt
SQL> conn sys/sys as sysdba
。
SQL> drop directory test_dir
2 /
。
SQL> Create DIRECTORY TEST_DIR AS 'C:\';
。
SQL> GRANT READ, WRITE ON DIRECTORY TEST_DIR TO rbb;
。
SQL> conn rbb/rbb
。
SQL> ed
afiedt.buf
1 DECLARE
2 src CLOB;
3 xmlfile UTL_FILE.FILE_TYPE;
4 length INTEGER;
5 buffer VARCHAR2(16384);
6 BEGIN
7 src := DBMS_XMLQuery.getXml('select * from liuxing');
8 length := DBMS_LOB.GETLENGTH(src);
9 DBMS_LOB.READ(src, length, 1, buffer);
10 xmlfile := UTL_FILE.FOPEN('TEST_DIR', 'emp.xml', 'w');
11 UTL_FILE.PUT(xmlfile, buffer);
12 UTL_FILE.FCLOSE(xmlfile);
13* END;
SQL> /
PL/SQL 。
===============================================================
SQL> ed
afiedt.buf
1 declare
2 lname number;
3 counter number;
4 begin
5 counter:=1;
6 while counter<=10
7 loop
8 lname:=dbms_random.random;
9 dbms_output.put_line(lname);
10 counter:=counter+1;
11 end loop;
12* end;
SQL> /
277652640
-479979827
-1049652647
-1006595853
1252280346
196435204
466478280
-85782435
-1489036577
-927786638
PL/SQL 。
: 00: 00: 00.00
===============================================================
alter table old_table_name rename to new_table_name;
===============================================================
SQL I/O
SQL>SET AUTOTRACE ON ;
SQL>Select * FROM TABLE;
or
SQL>Select * FROM v$filestat ;
===============================================================
SQL>Select * FROM V$INSTANCE;
===============================================================
SQL>select * from all_tables;
===============================================================
SQL
SQL>set timing on ;
===============================================================
select event,sum(decode(wait_Time,0,0,1)) "Prev",
sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"
from v$session_Wait
group by event order by 4;
===============================================================
select name, waits, gets, waits/gets "Ratio"
from v$rollstat C, v$rollname D
where C.usn = D.usn;
===============================================================
I/O
select B.tablespace_name name,B.file_name "file",A.phyrds pyr,
A.phyblkrd pbr,A.phywrts pyw, A.phyblkwrt pbw
from v$filestat A, dba_data_files B
where A.file# = B.file_id
order by B.tablespace_name;
===============================================================
I/O
select substr(C.file#,1,2) "#", substr(C.name,1,30) "Name",
C.status, C.bytes, D.phyrds, D.phywrts
from v$datafile C, v$filestat D
where C.file# = D.file#;
===============================================================
select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name
from user_ind_columns, user_indexes
where user_ind_columns.index_name = user_indexes.index_name
and user_ind_columns.table_name = user_indexes.table_name
order by user_indexes.table_type, user_indexes.table_name,
user_indexes.index_name, column_position;
===============================================================
SGA
select a.value + b.value "logical_reads", c.value "phys_reads",
round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"
from v$sysstat a, v$sysstat b, v$sysstat c
where a.statistic# = 38 and b.statistic# = 39
and c.statistic# = 40;
===============================================================
SGA
select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio",
(1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio"
from v$rowcache
where gets+getmisses <>0
group by parameter, gets, getmisses;
===============================================================
SGA , 1%
select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
sum(reloads)/sum(pins) *100 libcache
from v$librarycache;
select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins) "reload percent"
from v$librarycache;
===============================================================
select count(name) num_instances ,type ,sum(source_size) source_size ,
sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size) error_size,
sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size) size_required
from dba_object_size
group by type order by 2;
===============================================================
SGA , 1%
Select name, gets, misses, immediate_gets, immediate_misses,
Decode(gets,0,0,misses/gets*100) ratio1,
Decode(immediate_gets+immediate_misses,0,0,
immediate_misses/(immediate_gets+immediate_misses)*100) ratio2
FROM v$latch Where name IN ('redo allocation', 'redo copy');
===============================================================
, .10, sort_area_size
Select name, value FROM v$sysstat Where name IN ('sorts (memory)', 'sorts (disk)');
===============================================================
SQL
Select osuser, username, sql_text from v$session a, v$sqltext b
where a.sql_address =b.address order by address, piece;
===============================================================
Select (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
Select (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;
Select SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM V$LIBRARYCACHE;
===============================================================
, 1%, 0% 。
Select SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
FROM V$ROWCACHE
===============================================================
MTS
select busy/(busy+idle) "shared servers busy" from v$dispatcher;
0.5 ,
select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where type='dispatcher';
select count(*) from v$dispatcher;
select servers_highwater from v$mts;
servers_highwater mts_max_servers ,
===============================================================
ID
SQL>SHOW USER;
or
SQL>select user from dual;
===============================================================
Select segment_name table_name , COUNT(*) extents
FROM dba_segments Where owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name
HAVING COUNT(*) = (Select MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);
===============================================================
select segment_name,sum(bytes),count(*) ext_quan from dba_extents where
tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;
===============================================================
select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner'
group by segment_name;
===============================================================
CPU session 11 cpu used by this session
select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc;
===============================================================
**************************************************SQLServer ***********************************************************
SQL :
DDL— (Create,Alter,Drop,DECLARE)
DML— (Select,Delete,Update,Insert)
DCL— (GRANT,REVOKE,COMMIT,ROLLBACK)
, :
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
1、 :
Create DATABASE database-name
create database database
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
2、 :
drop database database
drop database dbname
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
3、 : sql server
--- device
user pubs
exec database 'disk'
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
---
backup database pubs to testback
BACKUP DATABASE pubs TO testBack
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
4、 :
create table tabname(name nvchar(20) primary key,password nvchar(16))
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
:
A:create table tab_new like tab_old ( )
B:create table tab_new as select col1,col2… from tab_old definition only
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
5、 :
:drop table tabname
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
6、 :
:Alter table tabname add column col type
alter table tabanme add column col
: 。DB2 , varchar 。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
7、 :
:Alter table tabname add primary key(col)
:
:Alter table tabname drop primary key(col)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
8、 :
:create [unique] index idxname on tabname(col….)
:drop index idxname
: , 。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
9、 :
:create view viewname as select statement
:drop view viewname
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
10、 : sql
:select * from table1 where
:insert into table1(field1,field2) values(value1,value2)
:delete from table1 where
:update table1 set field1=value1 where
:select * from table1 where field1 like ’%value1%’ ---like , !
:select * from table1 order by field1,field2 [desc]
:select count * as totalcount from table1
:select sum(field1) as sumvalue from table1
:select avg(field1) as avgvalue from table1
:select max(field1) as maxvalue from table1
:select min(field1) as minvalue from table1
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
11、 :
STAFF 20 , 。
Create VIEW STAFF_ONLY
AS Select ID, NAME, DEPT, JOB, YEARS
FROM STAFF
Where JOB <> 'Mgr' AND DEPT=20
, :
Select * FROM STAFF_ONLY
A: UNION union
UNION ( TABLE1 TABLE2) 。 ALL UNION ( UNION ALL), 。 , TABLE1 TABLE2。
B: EXCEPT except
EXCEPT TABLE1 TABLE2 。 ALL EXCEPT (EXCEPT ALL), 。
C: INTERSECT intersect
INTERSECT TABLE1 TABLE2 。 ALL INTERSECT (INTERSECT ALL), 。
: 。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
12、 :
A、left outer join:
( ): , 。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
( ): , 。
C:full outer join:
: , 。
, sql
1、 : ( , :a :b) (Access )
:select * into b from a where 1<>1
:select top 0 * into b from a
2、 : ( , :a :b) (Access )
insert into b(a, b, c) select d,e,f from b;
3、 : ( ) (Access )
insert into b(a, b, c) select d,e,f from b in ‘ ’ where
:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4、 : ( 1:a 2:b)
select a,b,c from a where a IN (select d from b ) : select a,b,c from a where a IN (1,2,3)
5、 : 、
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、 : ( 1:a 2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、 : ( 1:a )
select * from (Select a,b,c FROM a) T where t.a > 1;
8、 :between ,between ,not between
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 1 and 2
9、 :in
select * from table1 where a [not] in (‘ 1’,’ 2’,’ 4’,’ 6’)
10、 : ,
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、 : :
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12、 :
SQL: select * from where datediff('minute',f ,getdate())>5
13、 : sql
select top 10 b.* from (select top 20 , from order by desc) a, b where b. = a. order by a.
14、 : 10
select top 10 * form table1 where
15、 : b a ( , , , .)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16、 : TableA TableB TableC
(select a from tableA ) except (select a from tableB) except (select a from tableC)
17、 : 10
select top 10 * from tablename order by newid()
18、 :
select newid()
19、 :
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
20、 :
select name from sysobjects where type='U'
21、 :
select name from syscolumns where id=object_id('TableName')
22、 : type、vender、pcs , type ,case , select case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
:
type vender pcs
A 1
A 1
B 2
A 2
B 3
C 3
23、 : table1
TRUNCATE TABLE table1
24、 : 10 15
select top 5 * from (select top 15 * from table order by id asc) table_ order by id desc
( Randomize , SQL )
, , 。 ASP“ ” 。 :
Randomize
RNumber = Int(Rnd*499) +1
While Not objRec.EOF
If objRec("ID") = RNumber THEN
... ...
end if
objRec.MoveNext
Wend
。 , 1 500 ( 500 )。 , ID 、 RNumber。 THEN 。 RNumber 495, 。 500 , , 。 ?
SQL, recordset, :
Randomize
RNumber = Int(Rnd*499) + 1
SQL = "Select * FROM Customers Where ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
RNumber ID, 。 , “ ” 。Recordset , 。
Random , 。 Random SQL 。
recordset , , :
SQL = "Select * FROM Customers Where ID = " & RNumber & " or ID = " & RNumber2 & " or ID = " & RNumber3
10 ( 10 ), BETWEEN 。 , Select ( ID ):
SQL = "Select * FROM Customers Where ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
: 9 。
,
Access :Select top 10 * From orDER BY Rnd(id)
Sql server:select top n * from order by newid()
mysql select * From order By rand() Limit n
Access ( ,Access , Access SQL , , )
select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...
SQL ...
:
SQL :select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename
Access :Select iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
Conn.Execute
Execute
SQL 。 SQL , :
1. SQL , 。 :
Set = .Execute("SQL ")
Execute , , , Set , , 。
2. SQL , 。 :
.Execute "SQL " [, RecordAffected][, Option]
·RecordAffected , ,SQL , 。 , SQL 。
·Option , adCMDText, ADO, Execute 。 , 。
·BeginTrans、RollbackTrans、CommitTrans
。BeginTrans ;RollbackTrans ;CommitTrans , 。
, , ; , , 。
BeginTrans CommitTrans , , 。 , Error , Error 0, , 。Error Error , 。
*************************************** **********************************************************************
==================TestSQLServer.java SQLServer====================================
import java.sql.*;
import java.util.*;
public class TestSQLServer{
public static void main (String args[]){
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=testdb";
String user ="sa";
String password = "sa";
Connection conn = DriverManager.getConnection(url,user,password);
Statement stat = conn.createStatement();
ResultSet result = stat.executeQuery("Select * FROM users");
result.next();
System.out.println(result.getString(1));
System.out.println(result.getString(2));
System.out.println(result.getString(3));
result.close();
stat.close();
conn.close();
}catch(ClassNotFoundException en){
System.out.println(" !");
en.printStackTrace();
}catch(SQLException ex) {
while (ex != null) {
ex.printStackTrace();
ex = ex.getNextException();
}
}catch(Exception e){
System.out.println(" !");
e.printStackTrace();
}
}
}
=================TestMysql.java mysql =======================================
package org.binbo.dom;
import java.sql.*;
public class TestMysql{
public static void main (String args[]){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/binbo";
String user ="root";
String password = "binbo";
Connection conn = DriverManager.getConnection(url,user,password);
Statement stat = conn.createStatement();
ResultSet result = stat.executeQuery("Select * FROM testxml");
result.next();
System.out.println(result.getString(1));
System.out.println(result.getString(2));
System.out.println(result.getString(3));
result.close();
stat.close();
conn.close();
}catch(ClassNotFoundException en){
System.out.println(" !");
en.printStackTrace();
}catch(SQLException ex) {
while (ex != null) {
ex.printStackTrace();
ex = ex.getNextException();
}
}catch(Exception e){
System.out.println(" !");
e.printStackTrace();
}
}
}
=================TestOracle.java oracle ==================================
package org.binbo.dom;
import java.sql.*;
public class TestOracle{
public static void main (String args[]){
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@localhost:1521:binbo";
String user ="scott";
String password = "tiger";
Connection conn = DriverManager.getConnection(url,user,password);
Statement stat = conn.createStatement();
ResultSet result = stat.executeQuery("Select * FROM test");
result.next();
System.out.println(result.getString(1));
System.out.println(result.getString(2));
System.out.println(result.getString(3));
result.close();
stat.close();
conn.close();
}catch(ClassNotFoundException en){
System.out.println(" !");
en.printStackTrace();
}catch(SQLException ex) {
while (ex != null) {
ex.printStackTrace();
ex = ex.getNextException();
}
}catch(Exception e){
System.out.println(" !");
e.printStackTrace();
}
}
}
===============XML =====================================================
da.xml
<?xml version="1.0" encoding="UTF-8"?>
<PEOPLE><!--
<PERSON PERSONID="E01">
<className>com.microsoft.jdbc.sqlserver.SQLServerDriver</className>
<url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=binbo</url>
<user>sa</user>
<password>sa</password>
</PERSON>
--><PERSON PERSONID="E02">
<className>com.mysql.jdbc.Driver</className>
<url>jdbc:mysql://localhost:3306/binbo</url>
<user>root</user>
<password>binbo</password>
</PERSON><!--
<PERSON PERSONID="E03">
<className>oracle.jdbc.driver.OracleDriver</className>
<url>jdbc:oracle:thin:@localhost:1521:binbo</url>
<user>scott</user>
<password>tiger</password>
</PERSON>
--></PEOPLE>
--------------------------------------------
content.java
package org.binbo.dom;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class Content {
public static Connection getConnection(){
Connection conn =null;
try {
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc=builder.parse("da.xml");
NodeList nl=doc.getElementsByTagName("PERSON");
Element node=(Element) nl.item(0);
String className =node.getElementsByTagName("className").item(0).getFirstChild().getNodeValue();
String url =node.getElementsByTagName("url").item(0).getFirstChild().getNodeValue();
String user =node.getElementsByTagName("user").item(0).getFirstChild().getNodeValue();
String pwd =node.getElementsByTagName("password").item(0).getFirstChild().getNodeValue();
Class.forName(className);
conn =DriverManager.getConnection(url,user,pwd);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
--------------------------------------------
Domtest.java
package org.binbo.dom;
import java.io.FileOutputStream;
import java.sql.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Domtest {
public static void main(String[] args){
try{
Connection conn =Content.getConnection();
PreparedStatement ps=conn.prepareStatement("select * from testxml");
ResultSet rs =ps.executeQuery();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element Stu = doc.createElement("binboxml");
Element uname = doc.createElement("username");
Element nameid = doc.createElement("userid");
Element pass = doc.createElement("password");
while(rs.next()){
String id=rs.getString(1);
String name=rs.getString(2);
String pwd=rs.getString(3);
System.out.print(rs.getString(1));
System.out.print(rs.getString(2));
System.out.print(rs.getString(3));
System.out.print(" !");
nameid.appendChild(doc.createTextNode(id));
uname.appendChild(doc.createTextNode(name));
pass.appendChild(doc.createTextNode(pwd));
}
Stu.appendChild(nameid);
Stu.appendChild(uname);
Stu.appendChild(pass);
doc.appendChild(Stu);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer tr = tf.newTransformer();
tr.transform(new DOMSource(doc), new StreamResult(
new FileOutputStream("Binbo.xml")));
rs.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
===================== =====================================
tomcat server.xml
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<Context path="/myjsp" docBase="myjsp"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/myjsp"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/myjsp">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jsp</value>
</parameter>
</ResourceParams>
</Context>
-----------------------------------------------------------------------
DBPool.java
package com.binbo.dbo;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.naming.Context;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBPool {
public static synchronized Connection getConnection()throws Exception{
DataSource ds = null;
try{
Context ininCtx = new javax.naming.InitialContext();
Context envCtx = (Context)ininCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/myjsp");
}catch(NamingException e){
e.printStackTrace();
}
Connection conn = ds.getConnection();
return conn;
}
}
-----------------------------------------------------------
package com.binbo.dbo;
import java.sql.*;
import com.binbo.javabean.BreakBean;
import com.binbo.javabean.OpenBean;
public class DataBaseClass {
private Statement sta = null;
private ResultSet rs = null;
Connection conn = null;
private int count;
public DataBaseClass() throws Exception {
//
conn = DBPool.getConnection();
sta = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
public void getExecute(String sql) {
try {
System.out.println(sql);
sta.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
/*
* sql
*/
public ResultSet getQuery(String sql) {
try {
System.out.println(sql);
rs = sta.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
*
public int getCount(ResultSet rs2) {
try {
rs2.next();
count = rs2.getRow();
} catch (SQLException e) {
e.printStackTrace();
}
return count;
}
// !
public void getRegister(OpenBean open) {
String sql = "insert into f_info(nam,email,titl,content,tem,mid)values(?,?,?,?,?,?)";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, open.getNam());
ps.setString(2, open.getEmail());
ps.setString(3, open.getTitl());
ps.setString(4, open.getContent());
ps.setString(5, open.getTem());
ps.setString(6, open.getDepa());
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
//
public void getRealys(OpenBean real) {
try {
String sql = "delete from departments where id=?";
PreparedStatement ppt = conn.prepareStatement(sql);
ppt.setString(1, real.getUnam());
ppt.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
//
public void getRealy(OpenBean hg) {
try {
String sql = "select * from departments where id=?";
PreparedStatement ppg = conn.prepareStatement(sql);
ppg.setString(1, hg.getUnam());
ppg.execute();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
============================hibernate ====================================
package com.binbo.hibernate.xml;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class PersonOperate {
private Session session = null ;
public PersonOperate()
{
Configuration config = new Configuration().configure() ;
SessionFactory factory = config.buildSessionFactory() ;
this.session = factory.openSession() ;
}
//
public void insert(Person p)
{
Transaction tran = this.session.beginTransaction() ;
this.session.save(p) ;
tran.commit() ;
this.session.close() ;
}
------------------------------------------
LinOperate po = new LinOperate();
Lin p = new Lin();
p.setLname(lname);
p.setLmonery(lmonery);
p.setLmain(lmain);
p.setLtime(ltime);
LinOperate po = new LinOperate();
po.insert(p);
errors.add("success", new ActionMessage("xiangxi"));
request.setAttribute("org.apache.struts.action.ERROR", errors);
return mapping.findForward("jinru");
------------------------------------------
//
public void update(Person p)
{
Transaction tran = this.session.beginTransaction() ;
this.session.update(p) ;
tran.commit() ;
this.session.close() ;
}
//
public boolean queryById(Person person)
{
boolean flag = false;
String hql = "from Person as p where p.id=? and p.password=?" ;
Query q = this.session.createQuery(hql) ;
q.setString(0,person.getId()) ;
q.setString(1,person.getPassword());
Iterator iter = q.list().iterator();
if (iter.hasNext()) {
flag = true;
person.setName(((Person) iter.next()).getName());
}
this.session.close() ;
return flag;
}
//
public boolean queryC(Person person)
{
boolean flag = false;
String hql = "from Person as p where p.name=?" ;
Query q = this.session.createQuery(hql) ;
q.setString(0,person.getName()) ;
Iterator iter = q.list().iterator();
if (iter.hasNext()) {
flag = true;
}
this.session.close() ;
return flag;
}
//
public Person queryZliao(String id)
{
Person p = null ;
String hql = "from Person as p where p.id=?" ;
Query q = this.session.createQuery(hql) ;
q.setString(0,id) ;
List l = q.list() ;
Iterator iter = l.iterator() ;
if(iter.hasNext())
{
p = (Person)iter.next() ;
}
return p ;
}
//
public void delete(Person p)
{
Transaction tran = this.session.beginTransaction() ;
this.session.delete(p) ;
tran.commit() ;
}
//
public void delete(String name)
{
String hql = "delete Person where name=?" ;
Query q = this.session.createQuery(hql) ;
q.setString(0,name) ;
q.executeUpdate() ;
this.session.beginTransaction().commit() ;
}
//
public List queryAll()
{
List l = null ;
String hql = "from Person as p" ;
Query q = this.session.createQuery(hql) ;
l = q.list() ;
return l ;
}
-------------------------------
(
LinOperate po = new LinOperate();
List l = po.queryAll();
Iterator iter = l.iterator();
ArrayList lus = new ArrayList();
while (iter.hasNext()) {
Lin p = (Lin) iter.next();
Luser lu = new Luser();
lu.setName(p.getLname());
lu.setChange(p.getLmonery());
lu.setMainn(p.getLmain());
lu.setLtime(p.getLtime());
lus.add(lu);
System.out.print(p.getLname() + " ");
request.setAttribute("lus", lus);
)
------------------------
//
public List queryByLike(String cond)
{
List l = null ;
String hql = "from Person as p where p.name like ?" ;
Query q = this.session.createQuery(hql) ;
q.setString(0,"%"+cond+"%") ;
l = q.list() ;
return l ;
}
}