package com.jackson.db.test; import com.jackson.db.SqlUtil; import com.jackson.db.dao.UrlDao; import com.jackson.db.po.Url; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.ArrayList; import java.util.List; /** * Created by Jackson on 2016/11/6. */ public class UrlDaoTest { private static Logger logger = LogManager.getLogger(UrlDaoTest.class.getName()); private static String urlName = "`urltest`"; @org.junit.Test public void createTable(){ SqlSession sqlSession = getSqlSession(); UrlDao mapper = sqlSession.getMapper(UrlDao.class); mapper.createTable(urlName); sqlSession.commit(); } @org.junit.Test public synchronized void insertUrls(){ SqlSession sqlSession = null; try{ long startTime = System.currentTimeMillis(); sqlSession = getSqlSession(); UrlDao mapper = sqlSession.getMapper(UrlDao.class); mapper.insertUrls(urlName,getUrlList(0,100)); sqlSession.commit(); long endTime = System.currentTimeMillis(); System.out.println("useTime:"+(endTime-startTime)); }catch (Exception e){ logger.error(e.toString()); }finally { sqlSession.close(); } } @org.junit.Test public synchronized void findUrls(){ SqlSession sqlSession = getSqlSession(); UrlDao mapper = sqlSession.getMapper(UrlDao.class); List<Url> freeMaxPriority = mapper.findUrls("`url3`",80); System.out.print(freeMaxPriority.size()); sqlSession.commit(); sqlSession.close(); } @org.junit.Test public void updateUrlsToComplete(){ SqlSession sqlSession = getSqlSession(); UrlDao mapper = sqlSession.getMapper(UrlDao.class); mapper.updateUrlsToComplete("`url`",getUrlList(1,10)); sqlSession.commit(); } @org.junit.Test public void updateUrlsToFree(){ SqlSession sqlSession = getSqlSession(); UrlDao mapper = sqlSession.getMapper(UrlDao.class); //mapper.updateUrlsToFree("`url`",getUrlList(1,10)); sqlSession.commit(); } @org.junit.Test public void threadTest(){ start(0); start(5001); start(10001); start(15001); } @org.junit.Test public void setTakeState2Free(){ SqlSession sqlSession = getSqlSession(); UrlDao mapper = sqlSession.getMapper(UrlDao.class); mapper.setTakeState2Free("`url`"); sqlSession.commit(); } @org.junit.Test public void updateUrlsToTakenOut(){ SqlSession sqlSession = getSqlSession(); UrlDao mapper = sqlSession.getMapper(UrlDao.class); mapper.updateUrlsToTakenOut("`url`",getUrlList(10,10)); sqlSession.commit(); } private Url getUrl(){ Url url = Url.newHttpGetUrl("UrlDaoTest"); url.setCreateTime(124000000); url.setState(33); url.setPriority(10); return url; } private Url getUrl(int i){ Url url = Url.newHttpGetUrl("UrlDaoTest"); // url.setId((long) i); url.setCreateTime(124000000); url.setState(0); url.setPriority(10); url.setRequestState(Url.REQUEST_STATE_GET); url.setProtocolState(Url.PROTOCOL_STATE_HTTPS); url.setUrl("DaoTesTestDaoTesTestDaoTesTestDaoTesTestDaoTesTestDaoTesTestDaoTesTestDaoTe"+i); return url; } private List<Url> getUrlList(int start,int size){ ArrayList<Url> arr = new ArrayList<>(); for(int i=0;i<size;i++){ arr.add(getUrl(start+i)); } return arr; } private SqlSession getSqlSession() { SqlSessionFactory factory = SqlUtil.getFactory(); return factory.openSession(); } private void start(final int start){ new Thread(){ @Override public void run() { // insertsIgnore(); } }.start(); } }