『壹』 java中的sql語句
是的,用的是oracle的序列,oracle特有的序列 SEQUENCE 。
在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。
1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE許可權,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加幾個
START WITH 1 -- 從1開始計數
NOMAXVALUE -- 不設置最大值
NOCYCLE -- 一直累加,不循環
CACHE 10;
一旦定義了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的當前值
NEXTVAL=增加sequence的值,然後返回 sequence 值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL
可以使用sequence的地方:
- 不包含子查詢、snapshot、VIEW的 SELECT 語句
- INSERT語句的子查詢中
- NSERT語句的VALUES中
- UPDATE 的 SET中
可以看如下例子:
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
SELECT empseq.currval FROM DUAL;
但是要注意的是:
- 第一次NEXTVAL返回的是初始值;隨後的NEXTVAL會自動增加你定義的INCREMENT BY值,然後返回增加後的值。CURRVAL 總是返回當前SEQUENCE的值,但是在第一次NEXTVAL初始化之後才能使用CURRVAL,否則會出錯。一次NEXTVAL會增加一次SEQUENCE的值,所以如果你在同一個語句裡面使用多個NEXTVAL,其值就是不一樣的。明白?
- 如果指定CACHE值,ORACLE就可以預先在內存裡面放置一些sequence,這樣存取的快些。cache裡面的取完後,oracle自動再取一組到cache。 使用cache或許會跳號, 比如資料庫突然不正常down掉(shutdown abort),cache中的sequence就會丟失. 所以可以在create sequence的時候用nocache防止這種情況。
2、Alter Sequence
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 許可權才能改動sequence. 可以alter除start至以外的所有sequence參數.如果想要改變start值,必須 drop sequence 再 re-create .
Alter sequence 的例子
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000後從頭開始
NOCACHE ;
影響Sequence的初始化參數:
SEQUENCE_CACHE_ENTRIES =設置能同時被cache的sequence數目。
可以很簡單的Drop Sequence
DROP SEQUENCE order_seq;
『貳』 java 中如何使用sql插入語句
?"Insert Into room Values('"
+ jTRoomNum.getText().trim() + "','"
+ jStandard.getSelectedItem().toString() + ",'"
+ jRoomKind.getSelectedItem().toString()
+ "0,'"
+ jTARemark.getText()+ ",?,?)'") 前面你加了單引號,後面沒有結束的單引號。看標出粗體,後面也一樣。
『叄』 java的sql語句問題
commit是提交一個事務(什麼是事務,可以搜索一下),如果發生了錯誤,可以在finally裡面rollback,rollback可以把之前提交的操作撤銷。
mysql除了innoDB引擎,其他的到mysql5開始才支持事務吧(如果我沒有記錯:))。
也許你用的是低版本的mysql。
『肆』 java如何執行sql語句
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class xxxx {
public static void main(String[] args) {
Connection con = null ;
Statement stmt = null ;
try {
Class.forName("com.mysql.jdbc.Driver"); //mysql為例 不一樣的資料庫所需的驅動包不一樣 連接語句略有不同
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/資料庫名", "root", "密碼");
stmt = con.createStatement();
String sql = "insert into info values ('用戶', 'mima', 'piapiapia~')";
stmt.executeUpdate(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(stmt != null) {
stmt.close();
stmt = null;
}
if (con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
『伍』 java中執行sql插入語句怎麼弄
1、Connection conn = DriverManager.getConnection(URL,資料庫登錄名,資料庫登錄密碼);//獲得資料庫連接。
2、Statement statement = con.createStatement(); //訪問資料庫。
3、ResultSet resultSet = statement.executeQuery(sql);//執行SQL語句。
『陸』 Java語言中sql語句
import java.sql.* ;
public class testDB
{
public static void main(String []args)
{
String DBDRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
String DBURL = "jdbc:odbc:ttt";
String sql = "CREATE TABLE aTable(colum1 varchar(20) ,colum2 integer);" ;
PreparedStatement pstmt = null ;
Connection conn = null ;
try
{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL) ;
pstmt = conn.prepareStatement(sql) ;
pstmt.execute() ;
pstmt.close() ;
conn.close() ;
}
catch (Exception e)
{}
}
};
『柒』 java中操作sql語句的方法
對類進行加鎖,表示除了當前線程外的其他線程在該類中所有操作不能進行,包括靜態變數和靜態方法,實際上,對於含有靜態方法和靜態變數的代碼塊的同步,我們通常用此來加鎖。
我想這里用之所以用這個,是為了防止不同用戶(或程序)同時對數據進行更新引起數據混亂吧。
『捌』 java 中使用sql語句
題目題設完全沒表示清楚。
你是需要java裡面使用還是sql裡面使用啊!
如果是java的話,使用JDBC
連接資料庫。
在ResultSet中得到值即可。
如果是sql的話,寫存儲過程即可。
『玖』 java 執行sql語句
select username as '用戶名',(case when sex=0 then '男' else '女' end) as '性別' from student;
『拾』 java 的SQL語句
SQL語句沒錯,不過你的rs = db.getResult(strSQL);中的rs沒定義,你定義的ResultSet的對象是re而不是rs!
改改吧!!!