package bistu.demo.web.action;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import bistu.demo.bean.Users;
import bistu.demo.dbcon.ConnectionFactory;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private static final long serialVersionUID = -7654893710211643709L;
private Users user;
private List<Users> users;
private String username;
private String password;
private int loginType;
@SuppressWarnings("unchecked")
public String login() throws SQLException{
Connection conn =ConnectionFactory.getConnection();
PreparedStatement pstmt = conn.prepareStatement("select * from area");
ResultSet rs = pstmt.executeQuery();
List<Map<String,String>> columns = new ArrayList<Map<String,String>>();
ResultSetMetaData meta = rs.getMetaData();
for(int i=1; i<=meta.getColumnCount(); i++){
Map<String,String> columnMap = new HashMap<String,String>();
String columnName = meta.getColumnName(i);
String columnTypeName = meta.getColumnTypeName(i);
columnMap.put("columnName", columnName);
columnMap.put("columnTypeName", columnTypeName);
columns.add(columnMap);
}
System.out.println("类数:" + columns.size());
List<Map<String,Object>> result = new ArrayList<Map<String,Object>>();
while(rs.next()){
Map<String,Object> resultMap = new HashMap<String,Object>();
for(int i=0; i<columns.size(); i++){
String columnName = columns.get(i).get("columnName");
String columnTypeName = columns.get(i).get("columnTypeName");
Object columnValue = null;
if(columnTypeName != null && "DATE".equalsIgnoreCase(columnTypeName)){
columnValue = rs.getTimestamp(columnName);
}else{
columnValue = rs.getString(columnName);
}
resultMap.put(columnName, columnValue);
}
result.add(resultMap);
}
System.out.println("记录数:" + result.size());
for(int i=0; i<result.size(); i++){
Map dataMap = (Map)result.get(i);
for(int m=0; m<columns.size(); m++){
Map colMap = (Map)columns.get(m);
if(m == columns.size() - 1){
System.out.println(dataMap.get(colMap.get("columnName")));
}else{
System.out.print(dataMap.get(colMap.get("columnName")) + "****");
}
}
}
System.out.println(ActionContext.getContext().getLocale().getDisplayLanguage());
return "UsersSuccess";
}
public Users getUser() {
return user;
}
public void setUser(Users user) {
this.user = user;
}
public List<Users> getUsers() {
return users;
}
public void setUsers(List<Users> users) {
this.users = users;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getLoginType() {
return loginType;
}
public void setLoginType(int loginType) {
this.loginType = loginType;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}