在JAVA中的SQL语言

在JAVA中的SQL语言,第1张

Transact_SQL小手册

Transact_SQL

--语 句 功 能

--数据 *** 作

SELECT --从数据库表中检索数据行和列

INSERT --向数据库表添加新数据行

DELETE --从数据库表中删除数据行

UPDATE --更新数据库表中的数据

--数据定义

CREATE TABLE --创建一个数据库表

DROP TABLE --从数据库中删除表

ALTER TABLE --修改数据库表结构

CREATE VIEW --创建一个视图

DROP VIEW --从数据库中删除视图

CREATE INDEX --为数据库表创建一个索引

DROP INDEX --从数据库中删除索引

CREATE PROCEDURE --创建一个存储过程

DROP PROCEDURE --从数据库中删除存储过程

CREATE TRIGGER --创建一个触发器

DROP TRIGGER --从数据库中删除触发器

CREATE SCHEMA --向数据库添加一个新模式

DROP SCHEMA --从数据库中删除一个模式

CREATE DOMAIN --创建一个数据值域

ALTER DOMAIN --改变域定义

DROP DOMAIN --从数据库中删除一个域

--数据控制

GRANT --授予用户访问权限

DENY --拒绝用户访问

REVOKE --解除用户访问权限

--事务控制

COMMIT --结束当前事务

ROLLBACK --中止当前事务

SET TRANSACTION --定义当前事务数据访问特征

--程序化SQL

DECLARE --为查询设定游标

EXPLAN --为查询描述数据访问计划

OPEN --检索查询结果打开一个游标

FETCH --检索一行查询结果

CLOSE --关闭游标

PREPARE --为动态执行准备SQL 语句

EXECUTE --动态地执行SQL 语句

DESCRIBE --描述准备好的查询

---局部变量

declare @id char(10)

--set @id = '10010001'

select @id = '10010001'

---全局变量

---必须以开头

--IF ELSE

declare @x int @y int @z int

select @x = 1 @y = 2 @z=3

if @x > @y

print 'x > y' --打印字符串'x > y'

else if @y > @z

print 'y > z'

else print 'z > y'

--CASE

use pangu

update employee

set e_wage =

case

when job_level = ’1’ then e_wage108

when job_level = ’2’ then e_wage107

when job_level = ’3’ then e_wage106

else e_wage105

end

--WHILE CONTINUE BREAK

declare @x int @y int @c int

select @x = 1 @y=1

while @x < 3

begin

print @x --打印变量x 的值

while @y < 3

begin

select @c = 100@x + @y

print @c --打印变量c 的值

select @y = @y + 1

end

select @x = @x + 1

select @y = 1

end

--WAITFOR

--例 等待1 小时2 分零3 秒后才执行SELECT 语句

waitfor delay ’01:02:03’

select from employee

--例 等到晚上11 点零8 分后才执行SELECT 语句

waitfor time ’23:08:00’

select from employee

SELECT

select (列名) from table_name(表名) where column_name operator value

ex:(宿主)

select from stock_information where stockid = str(nid)

stockname = 'str_name'

stockname like '% find this %'

stockname like '[a-zA-Z]%' --------- ([]指定值的范围)

stockname like '[^F-M]%' --------- (^排除指定范围)

--------- 只能在使用like关键字的where子句中使用通配符)

or stockpath = 'stock_path'

or stocknumber < 1000

and stockindex = 24

not stocksex = 'man'

stocknumber between 20 and 100

stocknumber in(10,20,30)

order by stockid desc(asc) --------- 排序,desc-降序,asc-升序

order by 1,2 --------- by列号

stockname = (select stockname from stock_information where stockid = 4)

--------- 子查询

--------- 除非能确保内层select只返回一个行的值,

--------- 否则应在外层where子句中用一个in限定符

select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复

select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name

select stockname , "stocknumber" = count() from table_name group by stockname

--------- group by 将表按行分组,指定列中有相同的值

having count() = 2 --------- having选定指定的组

最近的下一条记录——没明白。

是最近的记录,还是当前记录的下一条记录。

最近的记录:

select

from

(select

from

表名

order

by

时间字段

desc)

where

rownum=1;

当前记录的下一条记录:

((ResultSet)rs)next();

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlStatement;

public class JdbcTest {

/

@param args

@throws Exception

/

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

JdbcTest jdbcTest=new JdbcTest();

jdbcTestconnect();

}

void connect() throws Exception{

ClassforName("commysqljdbcDriver");//数据库的驱动类名

Connection connection= DriverManagergetConnection //打开连接("jdbc:mysql://localhost:3306/Test","root","123456");//Test是你要连接的数据库,root是用户名,123456是密码

Statement st=connectioncreateStatement(); 创建语句

ResultSet rs= stexecuteQuery("select from user");执行语句,查看user表中的内容

while(rsnext()){//循环遍历

Systemoutprintln(rsgetObject(1)+" :"+rsgetObject(2)+" :"+rsgetObject(3));

}

}

}

迅速的给你写了一个jdbc连接mysql的例子,没有优化,上面有注释的。

1、首先preparedstatement是statement的子接口,属于预处理 *** 作,与直接使用statement不同的是,preparedstatement在 *** 作的时候,先在数据表中准备好了一条sql语句,但是sql语句的值暂时不设置,而是之后设置。

2、在使用statement的时候,要执行一条完整的失去了,在执行钱使用connection直接创建的。

3、如何获得preparedstatement,在connection接口中,通过preparedstatement(String sql)得到。

4、最后在日期输入的时候,正常情况都是使用javautildate表示日期,在 preparedStatement中需要使用javasqldate类型,如下图所示就完成了。

给你一个非缓存分页类的简单例子吧(Page类可以视作javabean):

/

@author Administrator

TODO 要更改此生成的类型注释的模板,请转至

窗口 - 首选项 - Java - 代码样式 - 代码模板

/

import javautil;

public class Pager {

private String PageUrl;

private boolean hasNext;

private boolean hasPrevious;

private String previousPage;

private String nextPage;

private int offset;

private int size;

private int length;

private int pagenumber;

public Pager(int offset,int length, int size, String url){

thisoffset=offset;

thislength=length;

thissize=size;

int index=urlindexOf("&pageroffset");

if (index>-1){

thisPageUrl=urlsubstring(0,index);

}else{

thisPageUrl=url;

}

}

public void setoffset(int offset){

thisoffset=offset;

}

public void setPagerUrl(String PagerUrl){

thisPageUrl=PagerUrl;

}

public void setsize(int size){

thissize=size;

}

public void setlength(int length){

thislength=length;

}

public int getoffset(){

return thisoffset;

}

public String getPageUrl(){

return thisPageUrl;

}

public boolean gethasNext(){

if((offset+1)length>=size){

hasNext=false;

}else{

hasNext=true;

}

return hasNext;

}

public boolean gethasPrevious(){

if(offset>=1){

thishasPrevious=true;

}else{

thishasPrevious=false;

}

return hasPrevious;

}

public String getpreviousPage(){

thispreviousPage="";

if (thisgethasPrevious()){

thispreviousPage=thisPageUrl+"&pageroffset="+(offset-1);

}

return previousPage;

}

public String getnextPage(){

thisnextPage="";

if(thisgethasNext()){

thisnextPage=thisPageUrl+"&pageroffset="+(offset+1);

}

return thisnextPage;

}

public int getpagenumber(){

float temppn=(float)size/(float)length;

pagenumber=new Float(temppn)intValue();

if (temppn>pagenumber){

thispagenumber++;

}

return thispagenumber;

}

public static ArrayList FindPageList(int offset,int length,List list){

ArrayList alist=new ArrayList();

for(int i=offsetlength; i<(offsetlength+length)&&i<listsize();i++){

alistadd(listget(i));

}

return alist;

}

}

具体使用:

1、在servlet初始化这个page

List list=DataUtilgetSpecifiedList();//得到整个数据列表

int offset=0;//便宜量

int length=10;//每页数据记录数

String pageOffset=requestgetParameter("pageroffset");

if(pageOffset==null||pageOffsetequals("")){

offset=0;

}else{

offset=IntegerparseInt(pageOffset);

}

String Url=requestgetRequestURL()toString()+""+requestgetQueryString();

Pager pager=new Pager(offset,length,listsize(),Url);

List RsList=PagerFindPageList(offset,length,list);

requestsetAttribute("Pager",pager);

requestsetAttribute("List",RsList);

RequestDispatcher dispatcher= requestgetRequestDispatcher("/UI/someModule/list_displayjsp");

dispatcherforward(request,response);

2、具体jsp中得到分页结果,并显示,并附页面跳转部分:

页面中得到分页结果

<%

List RpList=(List)requestgetAttribute("List");

Pager pager=(Pager)requestgetAttribute("Pager");

%>

<%--用for循环把RpList显示--%>

<!--页面跳转代码,这只是个形式,简化和改变方式的余地很大-->

<form name="pageForm"><%if(pagergethasPrevious()){%><a href="<%= pagergetpreviousPage()%>">prev</a>

<%}%>

<%if( pagergethasNext()){%><a href="<%=pagergetnextPage()%>">next</a><%}%><%if(pagergetpagenumber()>1) {%>第<select name="pager" onchange="windowlocation='<%=pagergetPageUrl()%>&pageroffset='+documentpageFormpagerselectedIndex;"><%for(int i=0;i<pagergetpagenumber();i++){%><option value=<%=i%> <%if(pagergetoffset()==i){ %>selected<%}%>><%=(i+1)%></option><%}%></select>页<%}%> 共<%=pagergetpagenumber()%>页</form>

ps:1、2两部分可以都放在页面类,不过你好像要MVC,所以给你这个代码。

是否可以解决您的问题?

############################################################

public swap(int x, int y) // 用于整型数据的交换

{

int temp;

temp = x;

x = y;

y = temp;

}

public swap(string x, string y) // 用于字符串类型的交换

{

string temp;

temp = x;

x = y;

y = temp;

}

——————————————————————————————

1 这两个方法都没有返回类型。

2 string应该为String。

############################################################

############################################################

string ptr=0,str, url,file;

——————————————————————————————

1 String

2 Strng ptr是要初始化吗?没仔细看,不明白你的意思。要初始化的话,用ptr = ""

############################################################

后面main方法里面的错误太多了,没法改了,比如好多变量没有定义。而且看得出,你是学过c的,对java了解不多,建议你还是多看看java的语法吧,比如对字符串的 *** 作,完全是c的风格,而不是对java String对象的 *** 作。

还有,建议你不要一次性把程序写完再来排错,尽量写一部分就编译一下。

String content = null;

while(rsnext()) {

content = content + rsgetString("学生姓名") + "\t" + rsgetString("xxxx") + "\t" + rsgetString("xxx") + "\n";

}

textAreasetText(content);

按升序那个,直接在sql里面控制就行了

SELECT FROM ORDER BY 学号 ASC

以上就是关于在JAVA中的SQL语言全部的内容,包括:在JAVA中的SQL语言、java中获取数据库中最近的下一条记录、java连接数据库:已知地址、用户名和密码,怎样看到该用户下的所有数据库和表信息,就像Mysql-front等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9706827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存