A. java list用法
这样很合理,现在主流也都是这样做的
一般是将数据封装到对象里面,如你返回的是学生信息,则这个list里面放的就是一个个的student对象
还有一种是存的map对象,这个map里面存的是相应数据库的字段名和内容的映射
B. java怎么把数据库的东西导入LIST中
本例使用 mysql 数据库,演示将数据库 test 的 tb_users 表中的用户信息存储到 List 中
代码如下:
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjava.util.ArrayList;
importjava.util.List;
//用户类,存储单个用户信息
classUser{
privateintid;
privateStringname;
publicUser(intid,Stringname){
this.id=id;
this.name=name;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
@Override
publicStringtoString(){
return"User[id="+id+",name="+name+"]";
}
}
publicclassDemo1{
publicstaticvoidmain(String[]args)throwsClassNotFoundException,SQLException{
//本例使用mysql数据库,演示将数据库test的tb_users表中的用户信息
//放到List中
//加载数据驱动
Class.forName("com.mysql.jdbc.Driver");
//数据库连接字符串,此例数据库为test
Stringurl="jdbc:mysql://localhost:3306/test";
Stringuser="root"; //数据库用户名
Stringpassword=""; //数据库密码
//打开一个数据连接
Connectionconn=DriverManager.getConnection(url,user,password);
Statementstmt=conn.createStatement();
//获取表tb_users所有用户信息到结果集中
ResultSetrs=stmt.executeQuery("SELECTid,nameFROMtb_users");
//定义一个存放用户信息的List
List<User>users=newArrayList<>();
//提取用户信息,并将用户信息放入List
while(rs.next()){
//获取用户ID
intid=rs.getInt(1);
//获取用户名
Stringname=rs.getString(2);
users.add(newUser(id,name));
}
rs.close();
stmt.close();
conn.close();
//显示用户信息
for(Useru:users){
System.out.println(u);
}
}
}
C. java 数据库操作 list
不知道你的数据库连接是怎么实现的。如果是使用hibernate实现的话,可以建两个hibernate文件,每个都对应不用的数据库。然后在hibernate的 sessionfactory里面配置就可以了。在类里面根据需求去sessionfactory里面根据名字调用。 package com.alpha.util;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;public class HibernateSessionFactory { private static SessionFactory jsprun;
private static SessionFactory mylegist;
static {
jsprun = new Configuration().configure("hbn-jsprun.cfg.xml").buildSessionFactory();
mylegist = new Configuration().configure("/hbn-mylegist.cfg.xml").buildSessionFactory();
} /**根据DBName判断调用哪个sessionFactory的openSession()方法*/
public static Session getSessionByDB(String DBName) {
Session s = null; if (DBName == "mylegist") {
if (!mylegist.isClosed())
s = mylegist.openSession();
} else if (DBName == "jsprun") {
if (!jsprun.isClosed())
s = jsprun.openSession();
} else {
System.out.println("错误的 DBName!");
} return s;
} /**根据DBName判断调用哪个sessionFactory的close()方法*/
public static void closeSessionFactoryByDB(String DBName) { if (DBName == "mylegist") {
if (!mylegist.isClosed()) {
mylegist.close();
}
} else if (DBName == "jsprun") {
if (!jsprun.isClosed()) {
jsprun.close();
}
} else {
System.out.println("错误的 DBName!");
}
}
}
D. java 怎么往内存里存放 list
最简单的方法建一个类,里边定义一个静态的list成员变量,每次去list时检查,如果list为null就数据库查询,如果list已经存在,就直接返回存在的list就行了,高级点的,加个时间比较,超过一定的时间间隔获取list就去数据库查询后获得,如果没有超时的就直接返回保存的list。
如果有需要可以自己写一个缓存管理器,用来把需要的
数据缓存
在内存中,并且在根据自定义的时间间隔或事件触发自动更新缓存。
E. java读数据库存入list
你存入到list里面的是以个对象,所以打印出来的是LDF@1c6f579 这种形式的内存地址,
而rs.getString(1);是结果集里的一个数据(sql语句查询对应的字段)当然可以 。
System.out.println(it.next()); 这句里面的it.next() 是一个对象 你要的是对象里的属性 你说怎么能打印出来。
可以这样写LDF ldf =(LDF)it.next(); system.out.print(ldf.getA()+ldf.getB()+ldf.getC());不知道这样写你能不能明白
F. java 数据库操作 list使用
创建一个vo对象类,其中属性有class_No,student_Name,teacher_Name,st_No
list使用泛型存储创建的对象类。
将jdbc得到的值通过set属性方法给创建的对象赋值然后存放在list中。
再使用的时候遍历list拿到对象,通过get属性方法即可。
G. java中访问一个数据库把读取的结果保存为list
代码不好写
首先得有一个数据结构
就是一条记录的class
class
xx{
string
field=null;
//field的
set
和
get方法
}
新建一个list
然后遍历一个表所有行
初始化一个
xx类
每行中的变量
付给xx的字段
list中加入一个xx
这样就形成一个list
希望有点帮助
H. 关于java中的List的问题
while(it.hasNext())这句是正序.这句意思就是从第一个开始,有下一个的话继续遍历.
while(it2.hasPrevious())这句是倒序遍历.这句就是从最后一个开始,有上一个的话继续遍历.
previous跟next不觉得很熟悉么,这俩就是上一个跟下一个的意思.
I. java 用返回的list去查询数据库,返回list
分析你的逻辑应该如下:
1、查询表1中符合条件的信息,获取一个结果集合1;
2、基于结果集合1循环,检索表2,获取结果集合2。
如此,如果表1、表2间存在直接关联关系(即直接使用结果集合1中的部分信息作为表2查询的条件),那么完全可以在后台将两张表关联查询,这样避免了通过java进行循环,在大数量级情况下会严重占用内存。
如果表1,表2间没有直接的关联关系(即通过循环表1,判断其中条件后按照其它的特定对照值去查询表2),那么仍然建议使用后台表关联查询,及将表1查询的结果集按照不同的条件获取的值转换成对应的映射值后作为一个基准集合,然后将这个集合与表2关联查询即可。具体的sql语句,得根据你使用的数据库和具体场景去编写。
总之,此类情况,完全可以交由数据库搞定,如果使用你现在的逻辑(即查询表1,循环结果集1,然后查询表2,获取结果集2),虽然原则上没有错,但会增加很多内存开销,在大数据量级的情况下,非常容易出现内存溢出的异常,并不作为合理的编码方式。
J. java中 如何从LIST 查找指定元素的位置
//先用contains判断是否有该元素
if(list集合.contains(对象)){
list集合.indexOf(对象名);
}
因为List 是一个元素有序的、可以重复、可以为 null的集合;
所以;
indexOf可以获取元素出现的第一个位置的引索,与之相反的是lastlndexOf获取元素最后出现的位置引索,如果集合中没有该元素则返回-1,其原理都是利用equals方法配合历遍来判断。
C++中list用法详解
.1list中的构造函数:
list() 声明一个空列表;
list(n) 声明一个有n个元素的列表,每个元素都是由其默认构造函数T()构造出来的
list(n,val) 声明一个由n个元素的列表,每个元素都是由其复制构造函数T(val)得来的
list(n,val) 声明一个和上面一样的列表
list(first,last) 声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素