import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class SqlCache
{
public static void main(String[] args) throws Exception
{
File of=new File("clist.csof");//cache serializable object file
List<Category> clist=new ArrayList<Category>();
if(of.exists())//读取缓存
{
System.out.println("file");
ObjectInputStream in=new ObjectInputStream(new FileInputStream("clist.csof"));
clist=(List<Category>)in.readObject();
in.close();
}
else//读取数据库生成缓存
{
System.out.println("sql");
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","jack");
Statement statement=con.createStatement();
ResultSet result=statement.executeQuery("SELECT * FROM help_category");
while(result.next())
{
Category category=new Category();
category.setName(result.getString("name"));
category.setHelp_category_id(result.getInt("help_category_id"));
category.setParent_category_id(result.getInt("parent_category_id"));
category.setUrl(result.getString("url"));
clist.add(category);
}
ObjectOutputStream obj=new ObjectOutputStream(new FileOutputStream("clist.csof"));
obj.writeObject(clist);
obj.writeObject("x");
obj.close();
result.close();
statement.close();
con.close();
}
for(Category c:clist)
{
System.out.println(c.getHelp_category_id()+" "+c.getName()+" "+c.getParent_category_id()+" "+c.getUrl());
}
}
}