package com.cks.hibernatetryout;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Date;
import java.sql.Time;
import java.util.List;
import java.util.Random;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.omg.PortableServer.LIFESPAN_POLICY_ID;
import com.cks.hibernatetryout.entity.EntityDemo;
public class Tester {
@SuppressWarnings("deprecation")
public static void main(String[] args) throws IOException {
//读取配置文件
Configuration cfg = new Configuration().configure();
//建立SessionFactory,然后就可以访问mysql了
SessionFactory factory = cfg.buildSessionFactory();
Session session=null;
System.out.println("输入In添加随机数据;\r\n输入Dl删除数据;\r\n输入Ud修改数据;\r\n输入Li列出当前所有数据;\r\n输入Ex退出程序。\r\n");
while (true) {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("输入命令:");
String command=reader.readLine();
Random rd=new Random();
switch (command.toUpperCase()) {
case "IN":
EntityDemo newEntity=new EntityDemo();
newEntity.setBoolDemo(rd.nextBoolean());
newEntity.setDateDemo(new Date(System.currentTimeMillis()));
newEntity.setFloatDemo(rd.nextFloat());
newEntity.setIntDemo(rd.nextInt());
newEntity.setStringDemo(rd.toString()+"产生了"+rd.nextFloat());
newEntity.setTimeDemo(new Time(System.currentTimeMillis()));
session=factory.openSession();
session.beginTransaction();
session.save(newEntity);
session.getTransaction().commit();
session.close();
break;
case "DL":
System.out.print("输入要删的Id:");
int idd=Integer.parseInt(reader.readLine());
session=factory.openSession();
session.beginTransaction();
session.delete(session.load(EntityDemo.class, idd));
session.getTransaction().commit();
session.close();
break;
case "UD":
System.out.print("输入要修改为随机数据的Id:");
int idu=Integer.parseInt(reader.readLine());
session=factory.openSession();
session.beginTransaction();
EntityDemo record=(EntityDemo) session.load(EntityDemo.class, idu);
record.setBoolDemo(rd.nextBoolean());
record.setDateDemo(new Date(System.currentTimeMillis()));
record.setFloatDemo(rd.nextFloat());
record.setIntDemo(rd.nextInt());
record.setStringDemo(rd.toString()+"产生了"+rd.nextFloat());
record.setTimeDemo(new Time(System.currentTimeMillis()));
session.getTransaction().commit();
session.close();
break;
case "LI":
session=factory.openSession();
List<EntityDemo> records=session.createCriteria(EntityDemo.class).list();
session.close();
for (EntityDemo rcd : records) {
System.out.println(rcd.toString());
}
break;
case "EX":
System.exit(0);
break;
default:
break;
}
System.out.println("");
}
}
}