package com.frameworkset;
import java.io.File;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import javax.transaction.RollbackException;
import com.frameworkset.common.poolman.DBUtil;
import com.frameworkset.common.poolman.PreparedDBUtil;
import com.frameworkset.common.poolman.monitor.AbandonedTraceExt;
import com.frameworkset.orm.transaction.TransactionException;
import com.frameworkset.orm.transaction.TransactionManager;
public class TestPoolman
{
public static void main(String[] args) {
// Framework frameworkinit = new Framework();
// frameworkinit.init("templates/module.xml");
// String path = "d:/tets.x";
// int idx = path.indexOf('/');
// System.out.println(path.substring(0,idx));
// Framework.getInstance();
// for(int i = 0; i < 1; i ++)
// {
// new TestDB(i).start();
//
// }
try {
Connection con = DBUtil.getConection();
Statement smt = con.createStatement();
smt.executeQuery("select 1 from dual");
DBUtil.debugStatus();
List<AbandonedTraceExt> traces = DBUtil.getGoodTraceObjects();
con.close();
smt.close();
DBUtil.debugStatus();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
TransactionManager tm = new TransactionManager();
try {
tm.begin();
tm.getTransaction().getConnection();
tm.destroyTransaction();
} catch (TransactionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
tm.release();
}
// //new TestDB(0).delete();
// new TestDB(0).prepareInsert();
//
}
static class TestDB extends Thread
{
static final int count = 10;
int j = 0;
public TestDB(int i)
{
this.j = i;
// System.out.println(j + "% 2=" +(j % 2));
}
public void run()
{
// int i = j % 6;
// switch(i)
// {
// case 0:
// insert();//break;
// prepareInsertBlob();
// prepareInsertBlob();
// selectBlob();
// this.prepareInsert();
// this.testPreparedInsert();
//// this.testPreparedSelect();
//
// testPreparedPagineSelectFororacle();
// testPreparedPagineSelect();
// testPreparedInsert();
// testPreparedPagineSelectFororacle();
// try
// {
// prepareInsertBlob();
// }
// catch(Exception e)
// {
// e.printStackTrace();
// }
// prepareDefaultInsertBlob();
selectBlob();
// testTableDataCopy();
// while(true)
// {
// try {
// sleep(10);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// System.out.println("locked:" + SQLManager.getInstance().getPool("bspf").getLocked());
// System.out.println("unlocked:" + SQLManager.getInstance().getPool("bspf").getUnlocked());
// }
// case 1:
// selectpagining();break;
// case 2:
// select();break;
// case 3:
// update();break;
// case 4:
// delete();break;
// case 5:
// prepareInsert();break;
// }
}
void insert()
{
String sql = "insert into test(name) values('biaoping.yin')";
for(int i = 0; i < 1;i ++)
{
DBUtil dbUtil = new DBUtil();
try {
dbUtil.executeInsert(sql);
System.out.println("Thread[" + j + "] " + i + " inserted ");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//SQLManager.getInstance().destroyPools();
}
void select()
{
String sql = "select * from test";
for(int i = 0; i < 1000;i ++)
{
DBUtil dbUtil = new DBUtil();
try {
dbUtil.executeSelect("oadx",sql);
System.out.println("Thread[" + j + "] " + i + " dbUtil.size:" + dbUtil.size());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void update()
{
String sql = "update test set name=''";
for(int i = 0; i < 1000;i ++)
{
DBUtil dbUtil = new DBUtil();
try {
dbUtil.executeUpdate("oadx",sql);
System.out.println("Thread[" + j + "] " + i + " dbUtil.size:" + dbUtil.size());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void delete()
{
String sql = "delete from test";
for(int i = 0; i < 1000;i ++)
{
DBUtil dbUtil = new DBUtil();
try {
dbUtil.executeUpdate("oadx",sql);
System.out.println("Thread[" + j + "] " + i + " dbUtil.size:" + dbUtil.size());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void prepareInsert()
{
for(int i = 0; i < 100; i ++)
{
PreparedDBUtil p = new PreparedDBUtil();
try {
p.setBatchDBName("bspf");
for(int j = 0; j < 10; j ++)
{
p.addBatch("insert into test(name) values('biaoping.yin')");
}
p.executeBatch();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void prepareInsertBlob()
{
for(int i = 0; i < 1; i ++)
{
PreparedDBUtil p = new PreparedDBUtil();
try {
p.preparedInsert("query","insert into test(name,content) values(?,?)");
// p.setString(1,"biaoping.yin");
p.setPrimaryKey(1,"biaoping.yin1","name");
p.setBlob(2,new File("D:/workspace/shark-1.1-2.src.zip"),"content");
// p.setBlob(2,"asdfasdf".getBytes(),"content");
// p.setClob(2,"","content");
// p.getString(1,"content");
// p.getFile(2,"content",new File(""));
// p.getBlob(2,"content");
p.executePrepared();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void prepareDefaultInsertBlob()
{
for(int i = 0; i < 1; i ++)
{
PreparedDBUtil p = new PreparedDBUtil();
try {
p.preparedInsert("insert into test(name,content) values(?,?)");
// p.setString(1,"biaoping.yin");
p.setPrimaryKey(1,"biaoping.yin1","name");
p.setBlob(2,new File("D:/workspace/shark-1.1-2.src.zip"),"content");
// p.setBlob(2,"asdfasdf".getBytes(),"content");
// p.setClob(2,"","content");
// p.getString(1,"content");
// p.getFile(2,"content",new File(""));
// p.getBlob(2,"content");
p.executePrepared();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void testTableDataCopy()
{
DBUtil dbUtil = new DBUtil();
String insert = "insert into test1(name) select * from test";
dbUtil.setBatchDBName("bspf");
String insert1 = "insert into test1 select * from test";
String insert2 = "INSERT INTO " +
"(SELECT name FROM test1) " +
"select name from test where name like 'biaoping%'";
String insert3 = "INSERT ALL " +
"WHEN name = 'biaoping.yin1' THEN " +
"INTO test2 " +
"WHEN name = 'biaoping.yin2' THEN " +
"INTO test3 " +
"ELSE " +
"INTO test4 " +
"SELECT name " +
"FROM test";
try {
dbUtil.executeInsert(insert3);
// dbUtil.executeInsert(insert1);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void testPreparedInsert()
{
TransactionManager tm = new TransactionManager();
try
{
tm.begin();
for(int i = 0; i < 10; i ++)
{
PreparedDBUtil p = new PreparedDBUtil();
p.preparedInsert("insert into test(name) values(?)");
// p.setString(1,"biaoping.yin");
p.setString(1,"biaoping.yin" + i);
// p.setBlob(2,"asdfasdf".getBytes(),"content");
// p.setClob(2,"","content");
// p.getString(1,"content");
// p.getFile(2,"content",new File(""));
// p.getBlob(2,"content");
p.executePrepared();
}
tm.commit();
} catch (SQLException e) {
try {
tm.rollback();
} catch (RollbackException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
try {
tm.rollback();
} catch (RollbackException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void testPreparedSelect()
{
String sql = "select name from test where name=?";
PreparedDBUtil pdb = new PreparedDBUtil();
try {
pdb.preparedSelect(sql);
pdb.setString(1,"biaoping.yin1");
pdb.executePrepared();
System.out.println(pdb.size());
System.out.println(pdb.getString(0,"name"));
} catch (SQLException e) {
e.printStackTrace();
}
}
void testPreparedPagineSelect()
{
String sql = "select name from test where name=? order by name";
PreparedDBUtil pdb = new PreparedDBUtil();
try {
long time = System.currentTimeMillis();
pdb.preparedSelect(sql,1,2);
pdb.setString(1,"biaoping.yin1");
pdb.executePrepared();
long end = System.currentTimeMillis();
System.out.println("common total times:" + (end - time));
System.out.println(pdb.size());
System.out.println(pdb.getLongTotalSize());
System.out.println(pdb.getString(0,"name"));
} catch (SQLException e) {
e.printStackTrace();
}
}
void testPreparedPagineSelectFororacle()
{
String sql = "select name ,row_number() over (order by name) rownum_ from test where name=?";
PreparedDBUtil pdb = new PreparedDBUtil();
try {
long time = System.currentTimeMillis();
pdb.preparedSelect(sql,1,2,"rownum_");
pdb.setString(1,"biaoping.yin1");
pdb.executePrepared();
long end = System.currentTimeMillis();
System.out.println("oracle total times:" + (end - time));
System.out.println(pdb.size());
System.out.println(pdb.getLongTotalSize());
System.out.println(pdb.getString(0,"name"));
} catch (SQLException e) {
e.printStackTrace();
}
}
void selectBlob()
{
for(int i = 0; i < 1; i ++)
{
PreparedDBUtil p = new PreparedDBUtil();
try {
p.executeSelect("select content,name from test where name='biaoping.yin1'");
String[] fields = p.getFields();
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>." + fields[0] + ":" + fields[1]);
File shark = new File("d:/workspace/shark-222.zip");
p.getFile(0,"content", shark);
// p.preparedInsert("insert into test(name,content) values(?,?)");
// p.setPrimaryKey(1,"biaoping.yin1","name");
// p.setBlob(2,new File("D:/workspace/shark-1.1-2.src.zip"),"content");
//
// p.executePrepared();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
void selectpagining()
{
String sql = "select * from test";
for(int i = 0; i < 1000;i ++)
{
DBUtil dbUtil = new DBUtil();
try {
dbUtil.executeSelect("oadx",sql,0,10);
System.out.println("Thread[" + j + "] " + i + " dbUtil.size:" + dbUtil.size());
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}