package day18; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import com.mysql.jdbc.Connection; import day17.DBManager; public class TestStatement { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { //method1(); //method2(); method3(); } public static void method3() throws Exception { // TODO Auto-generated method stub //模拟web开发环境 String username=null;//request.getParameter("username"); String sex=null; String zhuanye=null; DBManager dbManager=null; Connection conn=null; Statement stmt=null; ResultSet rs=null; //注册驱动 dbManager=new DBManager(); //获取连接 conn=dbManager.getConnection(); //增加查询条件 //username="zhang"; username=null; sex="女"; zhuanye="计算机"; //处理页面提交的数据,不要出现空值null,但可以使用"" /*客户端提交过来的数据有以下几种情况: * 获取的值为null,不作为查询条件 * 获取的值为”“,不作为查询条件 * 不是以上2种情况,作为查询条件 */ //组织SQL语句 String whereSql=""; boolean whereFlag=false;//是否增加where的标志;false表示没有where,true存在where if(username!=null&&!"".equals(username.trim())){ whereSql=whereSql+" and 姓名 like '%"+username.trim()+"%'"; } if(sex!=null&&!"".equals(sex.trim())){ whereSql=whereSql+" and sex = '"+sex.trim()+"'"; } if(zhuanye!=null&&!"".equals(zhuanye.trim())){ whereSql=whereSql+" and 专业 = '"+zhuanye.trim()+"'"; } //组织SQL语句 String sql="select id,姓名,sex,专业 from students where 1=1 "; sql=sql+whereSql; System.out.println(sql); stmt=conn.createStatement(); rs=stmt.executeQuery(sql);//rs永远不为空 while(rs.next()){ System.out.println(rs.getString(1)+" "+ rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4)); } dbManager.closeResource(conn,stmt,rs); } public static void method2() throws Exception { // TODO Auto-generated method stub //模拟web开发环境 String username=null;//request.getParameter("username"); String sex=null; String zhuanye=null; DBManager dbManager=null; Connection conn=null; Statement stmt=null; ResultSet rs=null; //注册驱动 dbManager=new DBManager(); //获取连接 conn=dbManager.getConnection(); //增加查询条件 //username="zhang"; username=null; sex="女"; zhuanye="计算机"; //处理页面提交的数据,不要出现空值null,但可以使用"" /*客户端提交过来的数据有以下几种情况: * 获取的值为null,不作为查询条件 * 获取的值为”“,不作为查询条件 * 不是以上2种情况,作为查询条件 */ //组织SQL语句 String whereSql=""; boolean whereFlag=false;//是否增加where的标志;false表示没有where,true存在where if(username!=null&&!"".equals(username.trim())){ if(!whereFlag){ whereSql=whereSql+" where 姓名 like '%"+username.trim()+"%'"; whereFlag=true; }else{ whereSql=whereSql+" and 姓名 like '%"+username.trim()+"%'"; } } if(sex!=null&&!"".equals(sex.trim())){ if(!whereFlag){ whereSql=whereSql+" where sex = '"+sex.trim()+"'"; whereFlag=true; }else{ whereSql=whereSql+" and sex = '"+sex.trim()+"'"; } } if(zhuanye!=null&&!"".equals(zhuanye.trim())){ if(!whereFlag){ whereSql=whereSql+" where 专业 ='"+zhuanye.trim()+"'"; whereFlag=true; }else{ whereSql=whereSql+" and 专业 = '"+zhuanye.trim()+"'"; } } //组织SQL语句 String sql="select id,姓名,sex,专业 from students "; sql=sql+whereSql; System.out.println(sql); stmt=conn.createStatement(); rs=stmt.executeQuery(sql);//rs永远不为空 while(rs.next()){ System.out.println(rs.getString(1)+" "+ rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4)); } dbManager.closeResource(conn,stmt,rs); } public static void method1() throws Exception { //模拟web开发环境 String username=null;//request.getParameter("username"); String sex=null; String zhuanye=null; DBManager dbManager=null; Connection conn=null; Statement stmt=null; ResultSet rs=null; //注册驱动 dbManager=new DBManager(); //获取连接 conn=dbManager.getConnection(); //增加查询条件 //username="zhang"; username=null; sex="女"; zhuanye="计算机"; //处理页面提交的数据,不要出现空值null,但可以使用"" /*客户端提交过来的数据有以下几种情况: * 获取的值为null,不作为查询条件 * 获取的值为”“,不作为查询条件 * 不是以上2种情况,作为查询条件 */ if(username==null||"".equals(username.trim())){ username=""; } if(sex==null||"".equals(sex.trim())){ sex=""; } if(zhuanye==null||"".equals(zhuanye.trim())){ zhuanye=""; } //组织SQL语句 String sql="select id,姓名,sex,专业 from students where "+ "姓名 like '%"+username+"%' and sex like '%"+sex+"%' and 专业 like '%"+zhuanye+"%'"; System.out.println(sql); stmt=conn.createStatement(); rs=stmt.executeQuery(sql);//rs永远不为空 while(rs.next()){ System.out.println(rs.getString(1)+" "+ rs.getString(2)+" "+rs.getString(3)+" "+rs.getString(4)); } dbManager.closeResource(conn,stmt,rs); } }