How to get elements from Java ArrayList
•
Java
I have a basic question I have this ArrayList:
@Named("AccountProfileController")
@ViewScoped
public class AccountProfile implements Serializable
{
@Resource(name = "jdbc/Oracle")
private DataSource ds;
private int id;
// Constructor
public AccountProfile()
{
// get the ID value
try
{
this.id = Integer.parseInt((String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id"));
}
catch (Exception e)
{
this.id = 0;
}
}
// Create List to store user data
public ArrayList<userdata> dataList = new ArrayList<>();
public class userdata
{
int userid;
int groupid;
String specialnumber;
String username;
String passwd;
Date datetochangepasswd;
String address;
String stateregion;
String country;
String userstatus;
String telephone;
Date dateuseradded;
Date userexpiredate;
Date dateuserlocked;
String city;
String email;
String description;
public userdata(int userid,int groupid,String specialnumber,String username,String passwd,Date datetochangepasswd,String address,String stateregion,String country,String userstatus,String telephone,Date dateuseradded,Date userexpiredate,Date dateuserlocked,String city,String email,String description)
{
this.userid = userid;
this.groupid = groupid;
this.specialnumber = specialnumber;
this.username = username;
this.passwd = passwd;
this.datetochangepasswd = datetochangepasswd;
this.address = address;
this.stateregion = stateregion;
this.country = country;
this.userstatus = userstatus;
this.telephone = telephone;
this.dateuseradded = dateuseradded;
this.userexpiredate = userexpiredate;
this.dateuserlocked = dateuserlocked;
this.city = city;
this.email = email;
this.description = description;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
public String getCity()
{
return city;
}
public void setCity(String city)
{
this.city = city;
}
public String getCountry()
{
return country;
}
public void setCountry(String country)
{
this.country = country;
}
public Date getDatetochangepasswd()
{
return datetochangepasswd;
}
public void setDatetochangepasswd(Date datetochangepasswd)
{
this.datetochangepasswd = datetochangepasswd;
}
public Date getDateuseradded()
{
return dateuseradded;
}
public void setDateuseradded(Date dateuseradded)
{
this.dateuseradded = dateuseradded;
}
public Date getDateuserlocked()
{
return dateuserlocked;
}
public void setDateuserlocked(Date dateuserlocked)
{
this.dateuserlocked = dateuserlocked;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public String getEmail()
{
return email;
}
public void setEmail(String email)
{
this.email = email;
}
public int getGroupid()
{
return groupid;
}
public void setGroupid(int groupid)
{
this.groupid = groupid;
}
public String getpasswd()
{
return passwd;
}
public void setPasswd(String passwd)
{
this.passwd = passwd;
}
public String getSpecialnumber()
{
return specialnumber;
}
public void setSpecialnumber(String specialnumber)
{
this.specialnumber = specialnumber;
}
public String getStateregion()
{
return stateregion;
}
public void setStateregion(String stateregion)
{
this.stateregion = stateregion;
}
public String getTelephone()
{
return telephone;
}
public void setTelephone(String telephone)
{
this.telephone = telephone;
}
public Date getUserexpiredate()
{
return userexpiredate;
}
public void setUserexpiredate(Date userexpiredate)
{
this.userexpiredate = userexpiredate;
}
public int getUserid()
{
return userid;
}
public void setUserid(int userid)
{
this.userid = userid;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getUserstatus()
{
return userstatus;
}
public void setUserstatus(String userstatus)
{
this.userstatus = userstatus;
}
}
// Getter for the data list
public ArrayList<userdata> getuserdata()
{
return dataList;
}
@postconstruct
public void initData() throws sqlException
{
// settingsMap = new HashMap<String,String>();
if (ds == null)
{
throw new sqlException("Can't get data source");
}
// Initialize a connection to Oracle
Connection conn = ds.getConnection();
if (conn == null)
{
throw new sqlException("Can't get database connection");
}
// With sql statement get all settings and values
PreparedStatement ps = conn.prepareStatement("SELECT * from USERS where USERID = ?");
ps.setInt(1,id);
try
{
//get data from database
ResultSet result = ps.executeQuery();
while (result.next())
{
// Put the the data from Oracle into Array List
dataList.add(new userdata(result.getInt("USERID"),result.getInt("GROUPID"),result.getString("SPECIALNUMBER"),result.getString("USERNAME"),result.getString("PASSWD"),toDate(result.getString("DATEtochANGEPASSWD")),result.getString("ADDRESS"),result.getString("STATEREGION"),result.getString("COUNTRY"),result.getString("USERSTATUS"),result.getString("TELEPHONE"),toDate(result.getString("DATEUSERADDED")),toDate(result.getString("USEREXPIREDATE")),toDate(result.getString("DATEUSERLOCKED")),result.getString("CITY"),result.getString("EMAIL"),result.getString("DESCRIPTION")));
}
}
finally
{
ps.close();
conn.close();
}
}
// Call Crypto library for password convert into SHA hash
@Inject
@OSGiService(dynamic = true,waitTimeout = 5)
transient CryptoSHA SHA;
// Convert Password String into SHA hash
public String passwdConvert(String password) throws NoSuchAlgorithmException
{
return SHA.ShaEncryptHash(password);
}
// Insert the data into Oracle
public void saveData() throws sqlException,java.text.ParseException,NoSuchAlgorithmException
{
String sqlStatement = null;
if (ds == null)
{
throw new sqlException();
}
Connection conn = ds.getConnection();
if (conn == null)
{
throw new sqlException();
}
PreparedStatement ps = null;
try
{
conn.setAutoCommit(false);
boolean committed = false;
try
{ /*
* insert into Oracle the default system(Linux) time
*/
sqlStatement = "UPDATE USERS "
+ "SET "
+ "USERID = ?,"
+ "GROUPID = ?,"
+ "SPECIALNUMBER = ?,"
+ "USERNAME = ?,"
+ "PASSWD = ?,"
+ "DATEtochANGEPASSWD = ?,"
+ "ADDRESS = ?,"
+ "STATEREGION = ?,"
+ "COUNTRY = ?,"
+ "USERSTATUS = ?,"
+ "TELEPHONE = ?,"
+ "DATEUSERADDED = ?,"
+ "USEREXPIREDATE = ?,"
+ "DATEUSERLOCKED = ?,"
+ "CITY = ?,"
+ "EMAIL = ?,"
+ "DESCRIPTION = ? "
+ "WHERE USERID = " + id;
ps = conn.prepareStatement(sqlStatement);
ps.setInt(1,dataList.get(userid));
ps.setInt(2,dataList.get(groupid));
ps.setString(3,dataList.get(specialnumber));
ps.setString(4,dataList.get(username));
ps.setString(5,passwdConvert(dataList.get(passwd)));
ps.setDate(6,toDate(dataList.get(datetochangepasswd)));
ps.setString(7,dataList.get(address));
ps.setString(8,dataList.get(stateregion));
ps.setString(9,dataList.get(country));
ps.setString(10,dataList.get(userstatus));
ps.setString(11,dataList.get(telephone));
ps.setDate(12,toDate(dataList.get(dateuseradded)));
ps.setDate(13,toDate(dataList.get(userexpiredate)));
ps.setDate(14,toDate(dataList.get(dateuserlocked)));
ps.setString(15,dataList.get(city));
ps.setString(16,dataList.get(email));
ps.setString(17,dataList.get(description));
ps.executeUpdate();
conn.commit();
committed = true;
}
finally
{
if (!committed)
{
conn.rollback();
}
}
}
finally
{
/*
* Release the resources
*/
ps.close();
conn.close();
}
}
//!!!! https://stackoverflow.com/questions/11135675/unparseable-date-30-jun-12
// Convert the Date format
public Date toDate(String s)
{
Date d = null;
if (s == null || s.trim().isEmpty())
{
return d;
}
try
{
d = Date.valueOf(s);
}
catch (Exception x)
{
x.printStackTrace();
}
return d;
}
}
I tried to use this java code to get the element:
ps.setInt(1,dataList.get(userid)); ps.setInt(2,dataList.get(groupid)); ps.setString(3,dataList.get(specialnumber)); ps.setString(4,dataList.get(username)); ps.setString(5,passwdConvert(dataList.get(passwd))); ps.setDate(6,toDate(dataList.get(datetochangepasswd))); ps.setString(7,dataList.get(address)); ps.setString(8,dataList.get(stateregion)); ps.setString(9,dataList.get(country)); ps.setString(10,dataList.get(userstatus)); ps.setString(11,dataList.get(telephone)); ps.setDate(12,toDate(dataList.get(dateuseradded))); ps.setDate(13,toDate(dataList.get(userexpiredate))); ps.setDate(14,toDate(dataList.get(dateuserlocked))); ps.setString(15,dataList.get(city)); ps.setString(16,dataList.get(email)); ps.setString(17,dataList.get(description));
But I encountered an error in NetBeans Can you tell me the correct way to get elements from ArrayList?
Best wishes
Solution
Use a for each loop, which is optimized
for(userdata obj : dataList){
System.out.println("User ID :: " + obj.userid);
System.out.println("Group ID :: " + obj.groupid);
.
.
.
}
Using the for loop
for(int i =0;i<datalist.size();i++){
userdate obj=datalist.get(i);
System.out.println("User ID :: " + obj.userid);
System.out.println("Group ID :: " + obj.groupid);
.
.
.
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
