Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package asdasd;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.Stack;
- import java.util.TreeMap;
- import javax.sql.DataSource;
- import org.springframework.jdbc.CannotGetJdbcConnectionException;
- import org.springframework.jdbc.core.JdbcTemplate;
- import org.springframework.jdbc.core.RowMapper;
- import org.springframework.jdbc.datasource.DataSourceUtils;
- import org.springframework.jdbc.datasource.DriverManagerDataSource;
- public class Main {
- public static void main(String[] args) throws SQLException, CannotGetJdbcConnectionException
- {
- DriverManagerDataSource dS = new DriverManagerDataSource();
- String userName = "root"; //логин на сервере
- String password = "12345"; //пароль
- String url = "jdbc:mysql://localhost/COREJAVA"; //url подключения
- String clNm = "com.mysql.jdbc.Driver";
- dS.setDriverClassName(clNm);
- dS.setUsername(userName);
- dS.setPassword(password);
- dS.setUrl(url);
- DataSource s = (DataSource) dS;
- JdbcTemplate jdbcTemplate = new JdbcTemplate(s);
- Connection c = null;
- try
- {
- c = DataSourceUtils.getConnection(s);
- System.out.println("Connecting established");
- List<Obj> k = jdbcTemplate.query(
- "SELECT * FROM test ORDER BY PARENT_ID ;",
- new RowMapper<Obj>() {
- public Obj mapRow(ResultSet rs, int rowNum) throws SQLException {
- int id = rs.getInt(1);
- String name = rs.getString(2);
- int parent = rs.getInt(3);
- Obj o = new Obj(name, id, parent);
- ResultSetMetaData rsmd = rs.getMetaData();
- int columnCount = rsmd.getColumnCount();
- for(int i = 1; i <= rsmd.getColumnCount(); i++)
- {
- System.out.println(rsmd.getColumnName(i));
- }
- System.out.println("Число столюцов" + columnCount);
- return o;
- }
- });
- TreeMap<Integer, Obj> m = new TreeMap<Integer, Obj>();
- for(int i = 0; i < k.size(); i++)
- {
- m.put(k.get(i).getId(), k.get(i));
- }
- for(Obj o :m.values())
- {
- int parentId = o.getParentId(); //определяем id предка текущего элемента в TreeMap
- Obj Parent = m.get(parentId); //обращаемся к предку
- if (Parent != null) //если объект сущесвтует
- Parent.addChildObj(o); //добавляем к нему дочерние объекты
- }
- for(Obj o : m.values())
- {
- System.out.println("Узел");
- System.out.println(o.getId() + " " + o.getValue() + o.getParentId());
- System.out.println("Предки");
- for(int i = 0; i < o.getChildren().size(); i++)
- {
- System.out.println(o.getChildren().get(i).getId() + " " + o.getChildren().get(i).getValue()
- + " " + o.getChildren().get(i).getParentId());
- }
- }
- Stack<Obj> st = new Stack<>();
- Stack<Integer> st_lev = new Stack<>();
- Obj o = m.get(1);
- int level = 0; //
- for(int i = 0; i < m.size(); i++)
- {
- for(int j = 0; j < level; j++)
- {
- System.out.print(" ");
- }
- System.out.println(o.getId() +" " + o.getValue());
- int size = o.getChildren().size();
- if (size == 0)
- {
- if( !st.empty())
- {
- o = st.pop();
- }
- if ( !st_lev.empty())
- {
- level = st_lev.pop();
- }
- }
- else
- {
- if (size == 1)
- {
- o = o.getChildren().get(0);
- level++;
- }
- else
- {
- level++;
- for(int x = 1; x < size; x++)
- {
- st.push(o.getChildren().get(x));
- st_lev.push(level);
- }
- o = o.getChildren().get(0);
- }
- }
- }
- } catch (Exception e) {
- System.err.println("Cannot connect to database server"); //вывод сообщения об ошибке
- e.printStackTrace();
- } finally {
- if (c != null) {
- try {
- c.close(); //закрываем подключение
- System.out.println("Database connection terminated");
- } catch (Exception e) {
- }
- }
- }
- }
- }
- class Obj {
- private String value;
- private int id;
- private int parentId;
- private List<Obj> children = new ArrayList<Obj>();
- public Obj(String value, int id, int parentId) {
- this.value = value;
- this.id = id;
- this.parentId = parentId;
- }
- public void addChildObj(Obj o) {
- this.children.add(o);
- }
- public List<Obj> getChildren() {
- return Collections.unmodifiableList(children);
- }
- public int getParentId() {
- return parentId;
- }
- public String getValue() {
- return value;
- }
- public int getId() {
- return id;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement