遍历数据库,怎么一行一行的遍历数据库中的所有行
大家好,关于遍历数据库很多朋友都还不太明白,今天小编就来为大家分享关于怎么一行一行的遍历数据库中的所有行的知识,希望对各位有所帮助!
如何使用 sql 语句 遍历 数据库里的表
---找出这个表中所有类型为varchar型的字段
---不知道你的str型需要对应哪几种类型,只以varchar型为例,其他类型可以查找systypes
---将所需要的type添加到最后的type筛选语句中
select t2.name from
(
---找到主键为aaa,并且与表中aaa字段的外键相对应的表
select b.id
from
(
---找出表1中aaa外键所对应的主表和主键
select rkeyid,rkey
from
(
---找出表1中的所有外键
select a.id,b.* from sysobjects a inner join sysforeignkeys b
on a.id=b.fkeyid
where xtype='U' and name='表1'
)c
inner join
(
---找出aaa字段所在的所有表
select id from syscolumns
where name='aaa'
)d
on c.id=d.id
)a
inner join
(
---找出aaa字段所在的所有表
select id from syscolumns
where name='aaa'
)b
on a.rkeyid=b.id
)t1
inner join syscolumns t2
on t1.id=t2.id
where t2.type=39
回答修改:
根据需求,修改如下
declare@name varchar(255)
---找出主表的名字
set@name=
(select t2.name from
(---找出SampleDetails中的lngYyGlAID外键所对应的主表
---有可能SampleDetails中不只有一个外键
---如果确定只有一个外键,不用和d相交
select rkeyid
from
(
---找出SampleDetails中的所有外键
select a.id,b.* from sysobjects a inner join sysforeignkeys b
on a.id=b.fkeyid
where xtype='U' and name='SampleDetails'
)c
inner join
(
---找出lngYyGlAID字段所在的所有表
select id from syscolumns
where name='lngYyGlAID'
)d
on c.id=d.id)t1
inner join
sysobjects t2
on t1.rkeyid=t2.id)
---从主表中查出strcode字段的所有信息
declare@sql varchar(255)
set@sql='select strCode from'+@name
exec(@sql)
jsp页面如何遍历数据库的表
从JSP页面开始讲起,在此用的是
<s:iterator var="word" value="#wordList>//其中wordList是与Action中context.put("wordList", wordList);里的list集合相对应的,list装的是数据库东西,word只是个变量名
<s:property value="#word.details"/>//用<s:property取出wordList元素中的details属性,即数据库中的details字段
</s:iterator>
现在来到action
private String time;
private String details;
public String getTime(){
return time;
}
public void setTime(String time){
this.time= time;
}
public String getDetails(){
return details;
}
public void setDetails(String details){
this.details= details;
}
public String showWordList()throws Exception{
ActionContext context=ActionContext.getContext();
List<Word> wordList=WordDao.getWordList();//List集合接收的是从Dao层传来的数据库内容
context.put("wordList", wordList);
return"word";
}
然后就是Dao层
public static List<Word> getWordList()
{
Session session=HibernateSessionFactory.getSession();
try{
Criteria criteria=session.createCriteria(Word.class);
List<Word> word=criteria.list();//获取数据库里的表装到List集合中
session.close();
return word;//返回list集合
} catch(Exception e){
e.printStackTrace();
}
return null;
}
接着就是model层
public class Word implements java.io.Serializable{
private static final long serialVersionUID= 1L;
private Integer id;
private String time;
private String details;
public Word(){
}
//重载构造方法
public Word(String time, String details){
this.time= time;
this.details= details;
}
...下面省略各个成员的set,get方法
}
现在是hbm.xml,与hibernate.cfg.xml相关文件的配置
//以下是hbm.xml
<hibernate-mapping>
<!--映射数据库的word表-->
<class name="com.model.Word" table="word" catalog="se">
<!--映射id字段-->
<id name="id" type="java.lang.Integer">
<column name="id"/>
<generator class="identity"/>
</id>
<!--映射name字段-->
<property name="time" type="java.lang.String">
<column name="time" length="30" not-null="true"/>
</property>
<!--映射pwd字段-->
<property name="details" type="java.lang.String">
<column name="details" length="2000" not-null="true"/>
</property>
</class>
</hibernate-mapping>
//以下是cfg.xml
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<!--链接地址-->
<property name="connection.url">
jdbc:mysql://localhost:3306/se?useUnicode=true&characterEncoding=UTF-8
</property>
<!--数据库user-->
<property name="connection.username">root</property>
<!--数据库user密码-->
<property name="connection.password">root</property>
<!--连接driver-->
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">
com.mysql.jdbc.Driver
</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!--映射文件-->
<mapping resource="com/model/Word.hbm.xml"/>
</session-factory>
</hibernate-configuration>
接着是struts.xml的配置
<action name="wordpage" class="com.action.WordAction">
<result name="word">/user/word.jsp</result>
</action>
jsp页面如何遍历数据库的表
标签:cto密码propertystackjspcatalognamecharorm
怎么一行一行的遍历数据库中的所有行
使用【游标】可以辅助实现一行一行地遍历某个数据库表中的所有行。
例如在Oracle数据库中:
declare
sname varchar2( 20);--声明变量
cursor student_cursor is select sname from student;--声明指向表student的【游标】
begin
open student_cursor;--打开游标
fetch student_cursor into sname;--获取游标的当前指向值,使游标指针往下移动
while student_cursor%found--判断游标指针是否指向某行记录,即是否已遍历完全表
loop--循环遍历
dbms_output.put_line('学生姓名'||sname);--输出当前遍历访问的行记录信息
fetch student_cursor into sname;--获取游标的当前指向值,使游标指针往下移动
end loop;--循环体结束
close student_cursor;--关闭游标,对应前面open操作
end;
关于遍历数据库,怎么一行一行的遍历数据库中的所有行的介绍到此结束,希望对大家有所帮助。