package com.usky.service; import com.usky.utils.ListUtil; import com.usky.utils.MapUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.rowset.SqlRowSet; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author laowo * @version 1.0.0 * @ClassName TestServiceImpl.java * @Description TODO * @createTime 2021/03/13/ 14:25:00 */ @Service public class StartServiceImpl implements StartService { private static Logger logger = LoggerFactory.getLogger(StartServiceImpl.class); @Autowired @Qualifier("jdbcTemplate118") private JdbcTemplate jdbcTemplate118; @Autowired @Qualifier("jdbcTemplate187") private JdbcTemplate jdbcTemplate187; @Override public void start(String tableName) { List> resList = query187Tables(tableName); Boolean aBoolean = creatTable(resList); } public Boolean creatTable(List> resList) { if (ListUtil.isNotBlank(resList)) { Map tablNameMap = resList.get(0); String tableName = (String) tablNameMap.get("Table"); String tableSql = (String) tablNameMap.get("Create Table"); String sql = "show tables like '" + tableName + "'"; List> maps = jdbcTemplate118.queryForList(sql); if (ListUtil.isBlank(maps)) { jdbcTemplate118.execute(tableSql); } String querySql = "select * from " + tableName + " as t where t.acquisition_time <(DATE_ADD(now(),INTERVAL -1 month))"; StringBuffer sb = new StringBuffer(); List> data187 = jdbcTemplate187.queryForList(querySql); for (Map objectMap : data187) { for (String s : objectMap.keySet()) { if (s.equals("id")){ sb.append(objectMap.get(s)); }else { sb.append("'" + objectMap.get(s) + "'"); } sb.append(","); } sb.deleteCharAt(sb.length() - 1); String inSql = "INSERT INTO " + tableName + " VALUES (" + sb.toString() + ")"; int update = jdbcTemplate118.update(inSql); String delSql="delete from "+tableName+" where id= "+objectMap.get("id")+""; int update1 = jdbcTemplate187.update(delSql); sb.setLength(0); int i=0; System.out.println("inSql = " + i++); } } /* String tableName = resList.get(0); String tableSql = resList.get(1); List list = (List) hibernateTemplate118.execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException { return session.createSQLQuery("show tables like '" + tableName + "'").list(); } }); if (ListUtil.isBlank(list)) { int i = getSession118().createSQLQuery(tableSql).executeUpdate(); } List list1 = (List) hibernateTemplate187.execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException { return session.createSQLQuery("select * from " + tableName + " as t where t.acquisition_time <(DATE_ADD(now(),INTERVAL -1 month)) ").list(); } }); for (Object o : list1) { Object[] d = (Object[]) o; StringBuffer sb = new StringBuffer(); for (int i = 0; i < d.length; i++) { sb.append("'" + d[i] + "'"); sb.append(","); } // sb.r sb.deleteCharAt(sb.length() - 1); String inSql = "INSERT INTO " + tableName + " VALUES (" + sb.toString() + ")"; // int i = getSession118().createSQLQuery(inSql).executeUpdate(); Integer i = (Integer) hibernateTemplate118.execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws HibernateException { return session.createSQLQuery(inSql).executeUpdate(); } }); }*/ return true; } public List> query187Tables(String tableName) { List resList = new ArrayList<>(); String sql = "show create table " + tableName + ""; return jdbcTemplate187.queryForList(sql); } }