package com.activesession.tests;
import java.io.ObjectInputStream.GetField;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.persistence.Column;
import com.mysql.jdbc.UpdatableResultSet;
public class Test {
public static String makeQuery(List<String> listOfColumnsNames, List<Object> listOfParameters, String tableName){
StringBuilder columns = new StringBuilder();
StringBuilder parameters = new StringBuilder();
String query = null;
for(String string : listOfColumnsNames){
columns.append(string + ",");
}
for(Object object : listOfParameters){
parameters.append ("'" + object + "'" + ",");
}
parameters.deleteCharAt(parameters.length() - 1);
columns.deleteCharAt(columns.length() - 1);
query = "INSERT " + "INTO " + tableName + " ( " + columns.toString() + " ) " + " VALUES " + "( " + parameters.toString() + " )" ;
return query;
}
public static List<Object> getData(){
java.sql.Connection connect = null;
java.sql.PreparedStatement prepareteState = null;
ResultSet resultSet = null;
java.sql.Statement statement = null;
List<Object> listOfData = new ArrayList<Object>();
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
String query = "SELECT * FROM T_PERSON WHERE ID = 2";
prepareteState = connect.prepareStatement(query);
resultSet = prepareteState.executeQuery();
int i = 0;
while(resultSet.next()){
listOfData.add(resultSet.getInt(1));
listOfData.add(resultSet.getString(2));
listOfData.add(resultSet.getString(3));
}
} catch (Exception e) {
// TODO: handle exception
}
return listOfData;
}
public static String updateQuery(List<String> listOfColumnNames, List<Object> listOfParameters, String TableName){
String query = null;
StringBuilder queryBuilder = new StringBuilder();
String id = null;
if(TableName != null && listOfColumnNames != null && listOfParameters != null){
if(listOfColumnNames.size() != 0 && listOfParameters.size() != 0){
for(int i =0; i<=listOfColumnNames.size() -1; i++){
if(listOfColumnNames.get(i).equals("ID")){
id = listOfColumnNames.get(i) + " = " + listOfParameters.get(i);
}else{
queryBuilder.append(listOfColumnNames.get(i) + " = " + listOfParameters.get(i) + ",");
}
}
queryBuilder.deleteCharAt(queryBuilder.length() - 1);
if(id != null){
query = "UPDATE " + TableName + " SET " + queryBuilder.toString() + " WHERE " + id ;
}
}
}
return query;
}
<T> T find (Class<T> entityClass, Object primaryKey){
T t = null;
try {
t = entityClass.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return t;
}
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SecurityException, NoSuchFieldException {
StringBuilder getBuilder = new StringBuilder();
StringBuilder setBuilder = new StringBuilder();
List<String> getMethods = new ArrayList<String>();
List<String> columnNames = new ArrayList<String>();
HashMap<String, String> methodNameAndFieldName = new HashMap<String, String>();
HashMap<String, String> fieldNameAndColumnName = new HashMap<String, String>();
HashMap<String, Object> data = new HashMap<String, Object>();
data.put("ADDRESS", "mladost2");
data.put("NAME", "koki");
data.put("ID", 1);
Class c = Person.class;
Class columnClass = Class.forName("javax.persistence.Column");
Class col = Class.forName(c.getName());
Method m[] = c.getDeclaredMethods();
Field f[] = c.getDeclaredFields();
Person p = (Person) c.newInstance();
for(int i =0; i<=f.length - 1 ; i++){
// System.out.println(f[i].getName());
String cs = Character.toUpperCase(f[i].getName().charAt(0)) + f[i].getName().substring(1);
getBuilder.append("get");
getBuilder.append(cs);
//System.out.println(getBuilder.toString());
getMethods.add(getBuilder.toString());
methodNameAndFieldName.put(getBuilder.toString(), f[i].getName());
getBuilder.delete(0, getBuilder.length());
}
for(int y = 0; y<= m.length-1; y++){
for(String string : getMethods){
if(m[y].getName().equals(string)){
System.out.println(m[y].getName() + " " + string);
Column column = (Column) m[y].getAnnotation(columnClass);
columnNames.add(column.name());
if(methodNameAndFieldName.get(string) != null){
fieldNameAndColumnName.put(methodNameAndFieldName.get(string), column.name());
}
}
}
}
Person scs = (Person) c.newInstance();
for(int x = 0; x<=f.length-1; x++ ){
Field field = c.getDeclaredField(f[x].getName());
field.setAccessible(true);
field.set(scs ,data.get(fieldNameAndColumnName.get(f[x].getName())));
}
}
}