java jdbc标签jsp_JDBC结合JSP使用(1)

1. 添加数据

在jsp页面中添加数据,和在serv中添加数据相似。获得页面中提交的数据以后,把数据保存到数据库表中,JSP的代码如下:

add.jsp

String path=request.getContextPath();

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'add.jsp' starting page

请输入部门信息:

部门号:

部门名:

部门人数:

地址:

PreparedStatement ps= null;try{

Class.forName("com.mysql.jdbc.Driver");

System.out.println("创建数据库驱动成功!");

conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/bank","root","1234");

System.out.println("数据库连接成功!");

String sql= "insert into dept(id,d_name,address,empnumber) values(?,?,?,?)";

ps=conn.prepareStatement(sql);

String id= request.getParameter("id");

String d_name= request.getParameter("d_name");

String address= request.getParameter("address");int empnumber = Integer.parseInt(request.getParameter("empnumber"));

ps.setString(1,id);

ps.setString(2,d_name);

ps.setString(3,address);

ps.setInt(4,empnumber);int result =ps.executeUpdate();if(result == 1)

out.print("插入数据成功!");elseout.print("插入数据失败,请重新插入!");

}catch(Exception e){

out.println("无法连接数据库,请检查数据库连接是否正确!");

}%>

2. 显示全部数据

在页面中显示全部数据,也就是要把数据库中的全部数据查询出来,要实现这个功能,需要用到实体类,即数据库和实体对象的映射类。实体类代码如下:

DeptVo.java

packagecom.cn.vo;public classDeptVo {privateString id;privateString address;private intempnumber;privateString d_name;private intd_id;publicString getId() {returnid;

}public voidsetId(String id) {this.id =id;

}publicString getAddress() {returnaddress;

}public voidsetAddress(String address) {this.address =address;

}public intgetEmpnumber() {returnempnumber;

}public void setEmpnumber(intempnumber) {this.empnumber =empnumber;

}publicString getD_name() {returnd_name;

}public voidsetD_name(String dName) {

d_name=dName;

}public intgetD_id() {returnd_id;

}public void setD_id(intdId) {

d_id=dId;

}

}

编写好实体类型后,就可以在页面中调用该类,在JSP页面中编写JDBC,连接数据库和查询数据,再用JSTL标签库中的c标签遍历输出数据,使用EL表达式取值。JSP中的代码如下:

showAll.jsp

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'showAll.jsp' starting page

list = new ArrayList();try{

Class.forName("com.mysql.jdbc.Driver");

Connection con= DriverManager.getConnection("jdbc:mysql://localhost:3306/bank","root","1234");

Statement stmt=con.createStatement();

ResultSet rs= stmt.executeQuery("SELECT * FROM dept");while(rs.next()){

DeptVo deptVo= newDeptVo();

deptVo.setId(rs.getString("id"));

deptVo.setAddress(rs.getString("address"));

deptVo.setD_id(rs.getInt("d_id"));

deptVo.setD_name(rs.getString("d_name"));

deptVo.setEmpnumber(rs.getInt("empnumber"));

list.add(deptVo);

}

request.setAttribute("list",list); //把list集合放入request对象中

}catch(Exception e){

e.printStackTrace();

}%>

部门编号部门地址部门人数部门名称部门id
${list.id }${list.address }${list.empnumber }${list.d_name }${list.d_id }

3. 显示单条数据信息

显示单条信息就是根据数据的唯一标示符来查询出单条数据的详细信息。在dept表中,主键d_id的值是自动增长的,不会有重复,可以根据d_id查询出单条数据信息。首先要在页面中输入要查询的d_id值,然后根据d_id来查询数据的详细信息。输入查询条件的JSP文件代码如下:

item.jsp

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'item.jsp' starting page

请输入部门id:

显示在同一页面中的ShowById.jsp文件的代码如下:

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'ShowById.jsp' starting page

int d_id = Integer.parseInt(request.getParameter("d_id"));

Connection con= null;

PreparedStatement pstmt= null;

ResultSet rs= null;try{

Class.forName("com.mysql.jdbc.Driver");

System.out.println("创建驱动成功!");

con= DriverManager.getConnection("jdbc:mysql://localhost:3306/bank","root","1234");

System.out.println("数据库连接成功!");

String sql= "select * from dept where d_id =?";

pstmt=con.prepareStatement(sql);

pstmt.setInt(1,d_id);

rs=pstmt.executeQuery();while(rs.next()){

DeptVo deptVo= newDeptVo();

deptVo.setId(rs.getString("id"));

deptVo.setAddress(rs.getString("address"));

deptVo.setD_id(rs.getInt("d_id"));

deptVo.setD_name(rs.getString("d_name"));

deptVo.setEmpnumber(rs.getInt("empnumber"));

request.setAttribute("deptVo",deptVo);

System.out.println(deptVo.getD_id());

}

}catch(Exception e){

e.printStackTrace();

}%>


d_id值为的数据详细信息

部门编号部门地址部门人数部门名称部门id
${deptVo.id }${deptVo.address }${deptVo.empnumber }${deptVo.d_name }${deptVo.d_id }

4. 修改数据

修改数据的时候,要把修改的数据信息显示到页面中,然后在页面中根据实际情况来修改数据,修改数据成功后,数据库会保存修改后的数据。

先编写输入修改数据条件的页面,代码如下:

updateItem.jsp

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'updateItem.jsp' starting page

请输入部门id:

上述代码中,form表单的action值是queryToUpdate.jsp,当提交查询时,会打开queryToUpdate.jsp页面,在queryToUpdate.jsp页面中查询出的d_id指向的数据信息,并显示到页面中。queryToUpdate.jsp页面代码如下:

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'queryToUpdate.jsp' starting page

request.setCharacterEncoding("gb2312");

Connection con= null;

PreparedStatement ps= null;

ResultSet rs= null;try{int d_id = Integer.parseInt(request.getParameter("d_id"));

Class.forName("com.mysql.jdbc.Driver");

System.out.println("创建驱动成功!");

con= DriverManager.getConnection("jdbc:mysql://localhost:3306/bank","root","1234");

System.out.println("数据库连接成功!");

String sql= "select * from dept where d_id=?";

ps=con.prepareStatement(sql);

ps.setInt(1,d_id);

rs=ps.executeQuery();while(rs.next()){

DeptVo deptVo= newDeptVo();

deptVo.setAddress(rs.getString("address"));

deptVo.setD_id(rs.getInt("d_id"));

deptVo.setD_name(rs.getString("d_name"));

deptVo.setEmpnumber(rs.getInt("empnumber"));

deptVo.setId(rs.getString("id"));

request.setAttribute("deptVo",deptVo);

System.out.println(deptVo.getD_id());

}

}catch(Exception e){

e.printStackTrace();

}%>

请输入部门信息:

部门号:

部门名:

部门人数:

地址:

部门id:

页面效果如下所示:

5d5618b59702cfdad38685411d13fcf9.png

在上面的页面中提交修改后,会打开form表单action指定的update.jsp页面,在该页面中处理数据修改,并包含了输入修改条件的页面。update.jsp代码如下:

String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

My JSP 'update.jsp' starting page

request.setCharacterEncoding("gb2312");

Connection con= null;

PreparedStatement ps= null;

String id= request.getParameter("id");

String address= request.getParameter("address");int empnumber = Integer.parseInt(request.getParameter("empnumber"));

String d_name= request.getParameter("d_name");int d_id = Integer.parseInt(request.getParameter("d_id"));try{

Class.forName("com.mysql.jdbc.Driver");

System.out.println("数据库驱动创建成功!");

con= DriverManager.getConnection("jdbc:mysql://localhost:3306/bank","root","1234");

System.out.println("数据库连接成功!");

String sql= "update dept set id=?,address=?,empnumber=?,d_name=?,d_id=? where d_id=?";

ps=con.prepareStatement(sql);

ps.setString(1,id);

ps.setString(2,address);

ps.setInt(3,empnumber);

ps.setString(4,d_name);

ps.setInt(5,d_id);

ps.setInt(6,d_id);

ps.executeUpdate();

out.println("

修改成功!

");

}catch(Exception e){

e.printStackTrace();

}%>

程序运行后界面如下:

7c78eec9b9bd4d11961f60373112302e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是一个最简单,也是学习jsp必须会的一个入门实验----通过jdbc连接数据库。 采用jsp+access数据库实现,同时使用javabean通过jdbc连接数据库。运行结果将显示从数据库查询出的图书。里面包含了javabean的源代码及解释。 提示:如果是要下jsp图书管理系统的朋友,请下载我上传的另一个资源----jsp+access图书管理系统。就不要再下本资源了,本资源只是做了一个图书的表,用以连接数据库查询图书,并没有对图书的增、删、改功能。 javabean源代码: package sjob; import java.sql.*; public class connBook { private Statement state=null; private Connection conn = null; ResultSet results=null; public connBook() { } public void openConn()throws Exception //连接数据库 { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:book"; conn=DriverManager.getConnection(url,"",""); //数据库、用户名、密码 ,创建连接对象 } catch(SQLException e) //异常处理 { System.err.println("Data.executeQuery: " +e.getMessage()); } } public ResultSet queryResult(String query) { results = null; try { state=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //创建访问数据库的对象 results=state.executeQuery(query); //查询并返回结果 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } return results; } public void closeState() { try { state.close(); //关闭访问数据库的对象 } catch(SQLException e) { System.err.println("Date.executeQuery: " + e.getMessage()); } } public void closeConn() { try { conn.close(); //断开连接 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值