核心知识
1.创建statement对象
statement对象代表一条发送到数据库执行的SQL语句,由已创建的Connection对象调用createStatement()方法来创建Statement对象,代码如下:
Statement st = con.createStatement();
2.执行 SQL语句
创建statement对象后,可以用statement对象调用executeUpdate(String sql)、executeQuery(String sql)等方法来执行SQL语句。
executeUpdate(String sql)方法主要用于执行INSERT、UPDATE、DELETE语句以及SQL DDL语句。
executeQuery(String sql)方法是用于执行SELECT等查询数据库的SQL语句,该方法返回ResultSet对象,代表查询结果。
3.处理返回的ResultSet对象
ResultSet对象是executeQuery(String sql)方法的返回值,被称为结果集,它代表符合SQL语句条件的所有行。ResultSet对象调用next()方法移动到下一个数据行。获得一行数据后,ResultSet对象可以使用getXXX的方法获得该字段值。
·实例代码
实例一代码如下(实现向数据库中的表添加数据的功能):
本程序共分为三个文件,add.jsp、show.jsp、Bean.java(封装在bean包中),add.jsp、show.jsp分别实现的功能是添加信息页面、输出全部信息页面,
add.jsp文件代码如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html> <head> <title>addGoods.jsp</title> </head> <body> <h4>课程号是主键,不能重复,每个信息都必须输入!</h4> <form action="show.jsp" method="post"> <table border="1"> <tr> <td>课程号:</td> <td><input type="text" name="CNo"/></td> </tr> <tr> <td>课程名称:</td> <td><input type="text" name="CN"/></td> </tr> <tr> <td>教师姓名:</td> <td><input type="text" name="TN"/></td> </tr> <tr> <td>开课学期:</td> <td><input type="text" name="KKXQ"/></td> </tr> <tr> <td>课程学时:</td> <td><input type="text" name="CT"/></td> </tr> <tr> <td>课程学分:</td> <td><input type="text" name="SC"/></td> </tr> <tr> <td><input type="submit" value="添加"></td> <td><input type="reset" value="重置"></td> </tr> </table> </form> </body> </html>
show.jsp文件代码如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ page import="bean.Bean" %> <html> <head> <title>show.jsp</title> </head> <body> <% request.setCharacterEncoding("GBK"); %> <jsp:useBean id="goods" class="bean.Bean" scope="page"></jsp:useBean> <jsp:setProperty property="*" name="goods"/> <% goods.addGoods(); %> <jsp:getProperty property="queryResult" name="goods"/><!-- 获得查询结果 --> </body> </html>
Bean.java(封装在bean包中)文件代码如下:
package bean; import java.sql.*; public class Bean { int CNo; String CN; String TN; int KKXQ; int CT; int SC; StringBuffer queryResult;//查询所有数据 StringBuffer queryResultBy;//根据条件查询所有数据 public Bean(){ } public int getCNo() { return CNo; } public void setCNo(int CNo) { this.CNo = CNo; } public String getCN() { return CN; } public void setCN(String CN) { this.CN = CN; } public String getTN() { return TN; } public void setTN(String TN) { this.TN = TN; } public int getKKXQ() { return KKXQ; } public void setKKXQ(int KKXQ) { this.KKXQ = KKXQ; } public int getCT() { return CT; } public void setCT(int CT) { this.CT = CT; } public int getSC() { return SC; } public void setSC(int SC) { this.SC = SC; } //添加数据 public void addGoods(){ Connection con = null; Statement st = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Teach","sa","数据库密码"); st=con.createStatement(); String addSql="insert into KC values("+CNo+",'"+CN+"','"+TN+"',"+KKXQ+","+CT+","+SC+")"; st.executeUpdate(addSql); }catch (SQLException e) { e.printStackTrace(); }finally{ try{ if(st!=null){ st.close(); } if(con!=null){ con.close(); } }catch (SQLException e) { e.printStackTrace(); } } } //获得所有数据信息 public StringBuffer getQueryResult(){ queryResult=new StringBuffer(); Connection con = null; Statement st = null; ResultSet rs=null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Teach","sa","数据库密码"); st=con.createStatement(); //String selectSql="select * from KC where CN='计算机原理'"; String selectSql="select * from KC"; rs=st.executeQuery(selectSql); queryResult.append("<table border=1>"); queryResult.append("<tr>"); queryResult.append("<th>CNo</th>"); queryResult.append("<th>CN</th>"); queryResult.append("<th>TN</th>"); queryResult.append("<th>KKXQ</th>"); queryResult.append("<th>CT</th>"); queryResult.append("<th>SC</th>"); queryResult.append("</tr>"); while(rs.next()){ queryResult.append("<tr>"); queryResult.append("<td>"+rs.getString(1)+"</td>"); queryResult.append("<td>"+rs.getString(2)+"</td>"); queryResult.append("<td>"+rs.getString(3)+"</td>"); queryResult.append("<td>"+rs.getString(4)+"</td>"); queryResult.append("<td>"+rs.getString(5)+"</td>"); queryResult.append("<td>"+rs.getString(6)+"</td>"); queryResult.append("</tr>"); } queryResult.append("</table>"); }catch (SQLException e) { e.printStackTrace(); }finally{ try{ if(rs!=null){ rs.close(); } if(st!=null){ st.close(); } if(con!=null){ con.close(); } }catch (SQLException e) { e.printStackTrace(); } } return queryResult; } //实现条件查询功能 public StringBuffer getQueryResultBy(){ queryResultBy=new StringBuffer(); Connection con = null; Statement st = null; ResultSet rs=null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Teach","sa","数据库密码"); st=con.createStatement(); String selectSql="select * from KC where 1=1 "; if(CN!=null&&CN.length()>0){ selectSql=selectSql+" and CN='"+CN+"' "; } if(CT>0){ selectSql=selectSql+" and CT>"+CT+" "; } if(TN!=null&&TN.length()>0){ selectSql=selectSql+" and TN='"+TN+"' "; } rs=st.executeQuery(selectSql); queryResultBy.append("<table border=1 >"); queryResultBy.append("<table bgcolor=\"#ffffdd\" border=\"auto\"width=\"auto\" >"); queryResultBy.append("<tr>"); queryResultBy.append("<th>CNo</th>"); queryResultBy.append("<th>CN</th>"); queryResultBy.append("<th>TN</th>"); queryResultBy.append("<th>KKXQ</th>"); queryResultBy.append("<th>CT</th>"); queryResultBy.append("<th>SC</th>"); queryResultBy.append("</tr>"); while(rs.next()){ queryResultBy.append("<tr>"); queryResultBy.append("<td>"+rs.getString(1)+"</td>"); queryResultBy.append("<td>"+rs.getString(2)+"</td>"); queryResultBy.append("<td>"+rs.getString(3)+"</td>"); queryResultBy.append("<td>"+rs.getString(4)+"</td>"); queryResultBy.append("<td>"+rs.getString(5)+"</td>"); queryResultBy.append("<td>"+rs.getString(6)+"</td>"); queryResultBy.append("</tr>"); } queryResultBy.append("</table >"); }catch (SQLException e) { e.printStackTrace(); }finally{ try{ if(rs!=null){ rs.close(); } if(st!=null){ st.close(); } if(con!=null){ con.close(); } }catch (SQLException e) { e.printStackTrace(); } } return queryResultBy; } }
页面运行效果:
在addGoods页面输入添加的信息:
点击“添加”按钮后,页面跳转到show.jsp页面输出全部数据信息:
实例二代码如下(实现条件查询数据库中的表数据的功能):
本程序共分为三个文件,inputQuery.jsp、showin.jsp、Bean.java(封装在bean包中),inputQuery.jsp、showin.jsp分别实现的功能是输入查询信息页面、输出查询结果页面,
inputQuery.jsp文件代码如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html> <head> <title>inputQuery.jsp</title> </head> <body bgcolor="LightCyan"> <h4>输入查询条件!</h4> <form action="showin.jsp" method="post"> <table border="1"> <tr> <td>教师姓名:</td> <td><input type="text" name="TN"/></td> </tr> <tr> <td>课程学时大于:</td> <td><input type="text" name="CT"/></td> </tr> <tr> <td>课程名称:</td> <td><input type="text" name="CN"/></td> </tr> <tr> <td><input type="submit" value="查询"></td> <td><input type="reset" value="重置"></td> </tr> </table> </form> </body> </html>
showin.jsp文件代码如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ page import="bean.Bean" %> <html> <head> <title>showGoods.jsp</title> </head> <body> <% request.setCharacterEncoding("GBK"); %> <jsp:useBean id="goods" class="bean.Bean" scope="page"></jsp:useBean> <jsp:setProperty property="*" name="goods"/> <jsp:getProperty property="queryResultBy" name="goods"/><!-- 获得查询结果 --> </body> </html>
Bean.java(封装在bean包中)文件与实例一中相同,其中实现功能的函数是getQueryResultBy();
页面运行效果:
输入查询条件:教师姓名-‘涛哥’:
点击“查询”按钮后,页面跳转到showin.jsp页面输出查询结果: