Java基础开发之JDBC操作数据库增删改查,分页查询实例详解
对数据库的操作无非就是增删改查,其中数查询操作最为复杂,所以将查询单独讲解,我这里用的Mysql数据库
增删改查操作
分页查询操作
1.查询结果以list返回
2.查询结果以jsonArray返回
3.查询总记录条数
先看一下相关的配置信息
publicstaticfinalStringUSER_NAME="root"; publicstaticfinalStringPWD="123456789"; publicstaticfinalStringDRIVER="com.mysql.jdbc.Driver"; publicstaticfinalStringURL="jdbc:mysql://localhost:3306/web_demon"; /**分页查询默认每页记录条数*/ publicstaticfinalintPAGE_SIZE_DEFAULT=10;
增删改操作
获取数据库连接对象
/** *获取数据库连接 *@return数据库连接对象 */ publicConnectiongetConnection(Connectionconn){ if(conn==null){ try{ Class.forName(Config.DRIVER); conn=DriverManager.getConnection(Config.URL,Config.USER_NAME,Config.PWD); }catch(Exceptione){ e.printStackTrace(); } } returnconn; }
封装增删改操作
/** *新增,删除,插入操作 *@paramsql执行的sql语句 *例如:新增语句"insertintouser(name,sex)values(?,?)"; *删除语句"deletefromuserwhereid=?"; *修改语句"updateusersetname=?,sex=?whereid=?andsex=?"; *@paramvalues对应的参数值 *@return影响条数,-1为异常 */ privateintexecute(Stringsql,Object...values){ Connectionconn=null; PreparedStatementpStmt=null; try{ conn=this.getConnection(conn); pStmt=conn.prepareStatement(sql); //设置参数 if(pStmt!=null&&values!=null&&values.length>0){ for(inti=0;i调用方法
//新增 publicstaticvoidinsert(){ Stringsql="insertintouser(name,sex)values(?,?)"; Object[]values=newObject[]{"李四",0}; intres=baseImp.execute(sql,values); System.out.println("insertres="+res); } //删除 publicstaticvoiddelete(){ Stringsql="deletefromuserwhereid=?"; Object[]values=newObject[]{2}; intres=baseImp.execute(sql,values); System.out.println("deleteres="+res); } //更新 publicstaticvoidupdate(){ Stringsql="updateusersetname=?,sex=?whereid=?andsex=?"; Object[]values=newObject[]{"张三",1,1,0}; intres=baseImp.execute(sql,values); System.out.println("updateres="+res); }查询操作
1.查询结果以list返回
/** *查询结果以list返回 *@parampageIndex页数 *@parampageSize每页记录条数 *@paramattachTableName在结果集中是否给key值附加表名,例如:user.id,与id *@paramsql查询语句例如:"selectu.id,u.name,u.sex,u.depart_idASdepartId,d.*fromuseru,departdwhereu.depart_id=d.id" *@paramvalues *@throwsSQLException */ privateList调用list查询
publicstaticvoidqueryList(){ Stringsql="selectu.*,d.*fromuseru,departdwhereu.depart_id=d.id"; try{ List>dataList=baseImp.queryForListAttachTableName(2,2,sql,null); //List >dataList=baseImp.queryForList(2,2,sql,null); for(Map map:dataList){ for(Stringkey:map.keySet()){ System.out.print(key+"="+map.get(key)+""); } System.out.println(); } }catch(SQLExceptione){ e.printStackTrace(); } } 结果
2.查询结果以jsonArray返回
/** *查询结果以ArrayList返回 *@param在结果集中是否给key值附加表名,例如:user.id,与id *@paramsql查询语句例如:"selectu.id,u.name,u.sex,u.depart_idASdepartId,d.*fromuseru,departdwhereu.depart_id=d.id" *@paramvalues *@throwsSQLException */ privateJSONArrayqueryJsonArray(intpageIndex,intpageSize,booleanattachTableName,Stringsql,Object...values)throwsSQLException{ JSONArrayjsonArray=null; Connectionconn=null; PreparedStatementpStmt=null; //校验参数 if(pageIndex<=0){ pageIndex=1; } if(pageSize<=0){ pageSize=Config.PAGE_SIZE_DEFAULT; } conn=this.getConnection(conn); pStmt=conn.prepareStatement(sql); //设置参数 if(pStmt!=null&&values!=null&&values.length>0){ for(inti=0;i调用jsonArray查询
publicstaticvoidqueryJsonArray(){ //Stringsql="select*fromuseru"; Stringsql="selectu.*,d.*fromuseru,departdwhereu.depart_id=d.id"; //Stringsql="selectu.idASuid,u.name,u.sex,u.depart_idASdepartId,d.namefromuseru,departdwhereu.depart_id=d.id"; //Stringsql="selectu.id,u.name,u.sex,u.depart_idASdepartId,d.*fromuseru,departdwhereu.depart_id=d.id"; try{ JSONArrayjsonArray=baseImp.queryForJsonArrayAttachTableName(2,2,sql,null); //JSONArrayjsonArray=baseImp.queryForJsonArray(sql,null); System.out.println(jsonArray.toString()); for(inti=0;iiterator=jsonObject.keys(); Objectkey=null; while(iterator.hasNext()){ key=iterator.next(); System.out.print(key+""+jsonObject.get(key)+""); } System.out.println(); } }catch(SQLExceptione){ e.printStackTrace(); } } 结果
[{"user.id":"4","user.name":"王五","user.sex":"0","user.depart_id":"3","depart.id":"3","depart.name":"研发部","depart.desc":"这是研发部"},{"user.id":"5","user.name":"赵六","user.sex":"1","user.depart_id":"1","depart.id":"1","depart.name":"测试部","depart.desc":"这是测试部"}] user.id4user.name王五user.sex0user.depart_id3depart.id3depart.name研发部depart.desc这是研发部 user.id5user.name赵六user.sex1user.depart_id1depart.id1depart.name测试部depart.desc这是测试部3.查询总记录条数
/** *查询记录条数 *@paramsql例如:"selectcount(*)fromuserwherexxx" *@paramvalues *@throwsSQLException */ publicintqueryCount(Stringsql,Object...values)throwsSQLException{ intcount=-1; Connectionconn=null; PreparedStatementpStmt=null; conn=this.getConnection(conn); pStmt=conn.prepareStatement(sql); //设置参数 if(pStmt!=null&&values!=null&&values.length>0){ for(inti=0;i调用查询总记录条数
publicstaticvoidqueryCount(){ Stringsql="selectcount(*)fromuseru"; try{ System.out.println("count="+baseImp.queryCount(sql,null)); }catch(SQLExceptione){ e.printStackTrace(); } }结果
至此我们介绍完了Java基础开发中JDBC对数据库进行增删改查操作与分页查询,如果想了解更多关于这方面的文章大家可以查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。