BaseJDBC和CRUDDAO的写法实例代码
我们首先看下BASEJDBC的写法实例:
packagecom.dao;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importcom.mysql.jdbc.Driver;
publicclassBaseJDBC{
//表示你要操作的是哪种类型的数据库
privatefinalStringDRIVER="com.mysql.jdbc.Driver";
//表示你要连接的是哪一台电脑的服务器端口号是多少数据库的名字是什么
privatefinalStringURL="jdbc:mysql://localhost:3306/zzy";//有时这里需要加上字符集
//登录数据库的用户名
privatefinalStringUSERNMAE="root";
//登录数据库的密码
privatefinalStringPASSWORD="root";
/**
*注册驱动获取连接
*
*@return
*/
publicConnectiongetConnection(){
try{
//Driverd=newDriver();
//注册驱动:反射(是一项很高深的技术)
Class.forName(DRIVER);
//由连接大管家创建连接对象
returnDriverManager.getConnection(URL,USERNMAE,PASSWORD);
}catch(ClassNotFoundExceptione){
//e.printStackTrace("数据库的驱动文件没有找到");
}catch(SQLExceptione){
//数据库的连接错误
e.printStackTrace();
}
returnnull;
}
/**
*关闭连接释放资源
*@paramcon
*@paramst
*@paramrt
*/
publicvoidcloseAll(Connectioncon,Statementst,ResultSetrt){
try{
if(rt!=null){
rt.close();
rt=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
try{
if(st!=null){
st.close();
st=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
try{
if(con!=null){
con.close();
con=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
CRUDDAO写法代码实例:
packagecom.dao; importjava.lang.reflect.Field; importjava.lang.reflect.Method; importjava.sql.*; importjava.util.*; importjava.util.Map.Entry; /** * *@authorzzy * *2016年12月1日下午1:49:49 */ publicclassCRUDDAOextendsBaseJDBC{ privateConnectioncon=null; privatePreparedStatementpt=null; privateStatementst=null; privateResultSetrt=null; privateClass c; publicCRUDDAO(){ } publicCRUDDAO(Class c){ this.c=c; } /** *查询操作要改造的地方第一:参数必须抽象第二:返回类型必须抽象 * *@param *@param * *@returnMap > */ publicMap >selectAll(Map m){ intindex=0; Map >map=newLinkedHashMap >(); List list=null; try{ con=super.getConnection(); if(con!=null){ Set >set=m.entrySet(); for(Entry entry:set){ list=newArrayList (); pt=con.prepareStatement(entry.getKey()); this.bind(entry.getValue()); rt=pt.executeQuery(); while(rt.next()){ list.add(this.toBean2()); } map.put(++index,list); } }else{ System.out.println("数据库连接失败"); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ super.closeAll(con,pt,rt); } returnmap; } /** *将数据库查询到的数据进行封装封装成实体类之后再返回给调用者 * *@return */ privateTtoBean(){ Tt=null; try{ t=c.newInstance(); Method[]m=c.getMethods(); ResultSetMetaDatarmt=rt.getMetaData(); for(inti=1,count=rmt.getColumnCount();i<=count;i++){ StringcolumName=rmt.getColumnName(i); columName="set"+columName.substring(0,1).toUpperCase() +columName.substring(1); for(intj=0;j map){ int[]row=newint[map.size()]; intindex=0; interror=0; try{ con=super.getConnection(); if(con!=null){ Set >set=map.entrySet(); //关闭连接对象的自动提交的功能 con.setAutoCommit(false); for(Entry entry:set){ pt=con.prepareStatement(entry.getKey()); this.bind(entry.getValue()); row[index]=pt.executeUpdate(); if(row[index]==0){ thrownewException("修改失败,数据回滚!"); } index++; } }else{ System.out.println("数据库连接失败"); } }catch(Exceptione){ error++; e.printStackTrace(); }finally{ if(error>0){ try{ //将前面已经执行的命令回滚 con.rollback(); }catch(SQLExceptione){ e.printStackTrace(); } }else{ try{ //全部提交 con.commit(); }catch(SQLExceptione){ e.printStackTrace(); } } super.closeAll(con,st,null); } returnrow; } }
总结
以上就是本文关于BaseJDBC和CRUDDAO的写法实例代码的全部内容,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!