package mypack; import java.lang.reflect.*; import java.sql.*; import com.mysql.jdbc.Driver; public class PersistenceManager{ private String dbUrl ="jdbc:mysql://localhost:3306/SAMPLEDB"; private String dbUser="root"; private String dbPwd="1234"; public PersistenceManager() throws Exception{ //加载MySQL数据库驱动程序 Class.forName("com.mysql.jdbc.Driver"); DriverManager.registerDriver(new com.mysql.jdbc.Driver()); } public Connection getConnection()throws Exception{ //获得一个数据库连接 return java.sql.DriverManager.getConnection(dbUrl,dbUser,dbPwd); } public void save(Object object) throws Exception { Connection con=null; PreparedStatement stmt=null; try { con=getConnection(); //获得数据库连接 //开始一个数据库事务 con.setAutoCommit(false); ObjectMapper om=new ObjectMapper(object); stmt=om.getInsertStatement(con); stmt.execute(); //提交数据库事务 con.commit(); }catch(Exception e){ e.printStackTrace(); try{//如果出现异常,撤销整个事务 con.rollback(); }catch(SQLException sqlex){ sqlex.printStackTrace(System.out); } throw e; }finally{ try{ stmt.close(); con.close(); }catch(Exception e){ e.printStackTrace(); } } } public Object load(Class classType,long id) throws Exception { Connection con=null; PreparedStatement stmt=null; ResultSet rs=null; try { con=getConnection(); //获得数据库连接 ObjectMapper om=new ObjectMapper(classType); om.setId(new Long(id)); stmt=om.getSelectStatement(con); rs=stmt.executeQuery(); Object object=om.parseResultSet(rs); return object; }finally{ try{ rs.close(); stmt.close(); con.close(); }catch(Exception e){ e.printStackTrace(); } } } public void test()throws Exception{ Customer customer=new Customer("Tom",21); save(customer); customer=(Customer)load(Customer.class,1); System.out.println(customer.getId()+" "+customer.getName()+" "+customer.getAge()); } public static void main(String args[])throws Exception{ new PersistenceManager().test(); } }
最近下载更多
maqiang2020 LV1
2020年6月20日
cz206616 LV10
2020年6月4日
dengjunjun LV15
2020年4月13日
caozhou LV14
2019年3月11日
beihai98 LV1
2018年11月1日
zhaolihuiziyu LV1
2018年9月7日
1792312911 LV17
2018年6月26日
hongzhangzhao LV1
2017年11月17日
lwf626888 LV16
2017年9月19日
jason0943 LV11
2017年6月21日
最近浏览更多
liang85 LV1
2023年6月30日
微信网友_6186189978783744
2022年10月22日
暂无贡献等级
gxlgxl LV4
2022年7月7日
SHUFONG LV2
2021年12月16日
chinawind1990 LV5
2021年11月25日
blueskyroof LV9
2021年1月12日
lt33333 LV7
2020年10月29日
南方者
2020年9月7日
暂无贡献等级
maqiang2020 LV1
2020年6月20日
cz206616 LV10
2020年6月4日