文章目录

  • JDBC 访问数据库的步骤
  • 使用 JDBC 访问数据库的演示代码
    • 使用 PreparedStatement 对象
      • 查询
      • 插入
      • 更新
      • 删除
    • 使用 Statement 对象
      • 查询
      • 删除

JDBC 访问数据库的步骤

  1. 将 jdbc 驱劢程序相关的 jar 包 copy 到 WEB-INF/lib 下
  2. 在 servlet 代码当中,使用 jdbc 访问数据库,要注意如何处理异常
  3. 配置错误处理页面

使用 JDBC 访问数据库的演示代码

使用 PreparedStatement 对象

查询

public class LoadEmpServlet extends HttpServlet { public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {long id = Long.parseLong(request.getParameter("id"));// 访问数据库 Connection conn = null; try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jd1109db2", "root","root");PreparedStatement prep = conn.prepareStatement("select * from t_emp where id = ?");prep.setLong(1, id);ResultSet rst = prep.executeQuery(); response.setContentType("text/ htm l;charset=utf-8"); PrintWriter out = response.getWriter();if (rst.next()) {String name = rst.getString("name");double salary = rst.getDouble("salary");int age = rst.getInt("age");out.println("<form action='modify?id=" + id + "' method='post'>");out.println("id:" + id + "<br/>");out.println("姓名:<input name='name' value='" +name + "'/><br/>"); out.println("薪水:<input name='salary' value='" +salary + "'/><br/>"); out.println("年龄:<input name='age' value='" + age + "'/><br/>");out.println("<input type='submit' " + "value='确认'/>");out.println( "</form>");out.close();} } catch (Exception e) {e.printStackTrace();throw new ServletException(e); } finally {if(conn!=null) { try {conn.close();} catch (SQLException e) {e.printStackTrace(); }} }}
}

插入

public class AddEmpServlet extends HttpServlet {public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { //这行代码要放在 getParameter()执行之前request.setCharacterEncoding("utf-8");String name = request.getParameter("name");double salary = Double.parseDouble(request.getParameter("salary"));int age = Integer.parseInt(request.getParameter("age")); System.out.println("name:" + name);System.out.println("salary:" + salary); System.out.println("age:" + age);//访问数据库 Connection conn = null; try {Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jd1109db2", "root","root");PreparedStatement prep = conn.prepareStatement("insert into t_emp(name,salary,age) values(?,?,?)");prep.setString(1, name);prep.setDouble(2, salary); prep.setInt(3, age); prep.executeUpdate();response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter(); out.println( "添加雇员成功");out.close();} catch (Exception e) {e.printStackTrace();throw new ServletException(e); } finally {if(conn!=null) { try {conn.close();} catch (SQLException e) {e.printStackTrace();} }}}
}

更新

public class ModifyEmpServlet extends HttpServlet { public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {       request.setCharacterEncoding("utf-8"); long id = Long.parseLong(request.getParameter("id")); String name = request.getParameter("name"); double salary = Double.parseDouble(request.getParameter("salary"));int age = Integer.parseInt(request.getParameter("age"));// 访问数据库Connection conn = null; try {Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/jd1109db2","root","root");PreparedStatement prep = conn.prepareStatement("update t_emp " +"set name=?,salary=?,age=? " + "where id=?");prep.setString(1, name);prep.setDouble(2, salary); prep.setLong(3, age); prep.setLong(4, id); prep.executeUpdate();response.sendRedirect("list"); } catch (Exception e) {e.printStackTrace();throw new ServletException(e); } finally {if(conn!=nul l) { try {conn.close();} catch (SQLException e) { e.printStackTrace();}} }}}

删除

public class DelEmpServlet extends HttpServlet {public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {long id = Long.parseLong(request.getParameter("id"));Connection conn = null;// 访问数据库try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager .getConnection("jdbc:mysql://localhost:3306/jd1109db2","root","root");PreparedStatement prep = conn.prepareStatement("delete from t_emp where id = ?"); prep.setLong(1, id);prep.executeUpdate();//重定向 response.sendRedirect("list");} catch (Exception e) { //step1 先记录日志e.printStackTrace(); //step2 抛出throw new ServletException(e); } finally {if(conn!=nul l) { try {conn.close();} catch (SQLException e) { e.printStackTrace();}} }}}

使用 Statement 对象

查询

利用 JDBC 访问数据库 , 显示所有雇员信息

public class ListEmpServlet extends HttpServlet{public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {//访问数据库 Connection conn = null; try {Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jd1109db2","root","root"); Statement stat = conn.createStatement();ResultSet rst = stat.executeQuery("select * from t_emp");//使用查询得到的结果,生成一个表格 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<table border='1' " + "width='60%' " +"cellpadding='0' " +"cellspacing='0'>");out.println("<tr>" +"<td>id</td>" + "<td>姓名</td>" +"<td>薪水</td>" + "<td>年龄</td></tr>");while (rst.next()) {long id = rst.getLong("id");String name = rst.getString("name");double salary = rst.getDouble("salary");int age = rst.getInt("age");out.println("<tr><td>" + id + "</td><td> " + name + "</td><td>" + salary + "</td><td> " + age + "</td></tr>");}out.println( "</table>");out.close();} catch (Exception e) { e.printStackTrace();throw new ServletException(e);} finally { if(conn!=nul l) {try {conn.close();} catch (SQLException e) {e.printStackTrace(); }} }}}

删除

待续

使用JDBC连接数据库(MySQL)的源代码相关推荐

  1. jsp之JDBC连接数据库MySQL

    在web project项目中,使用jdbc连接数据库时,需要先导入mysql-connector-java-5.1.7-bin.jar 这个包,即将该文件复制到WEB-INF/lib文件夹下. 该j ...

  2. jdbc连接数据库mysql的问题_JDBC连接Mysql数据库出现的问题汇总

    最近安装了一个 mysql 8.0 版本的数据库,在程序中连接的时候可谓是状况不断.之前也会遇到一些问题,这里就对使用 JDBC 连接 mysql 会出现的问题做一个汇总. 在此之前说明一下环境: 开 ...

  3. 在MySql数据库中创建数据库dbjava,数据表book,字段包括bno,bname,price,count(编号、书名、单价、数量)。 利用JDBC连接数据库dbjava,实现数据表的增删 改查

    题目 1.在MySql数据库中创建数据库dbjava,数据表book,字段包括bno,bname,price,count(编号.书名.单价.数量). 2.利用JDBC连接数据库dbjava,实现数据表 ...

  4. jdbc mysql 报错 ssl_Mybatis使用JDBC连接数据库报错及解决方案

    Mybatis中,首先需要在主配置文件SqlMapConfig.xml中配置好数据库的连接参数,主要是四个参数:driver.url.username和password. 1.PNG 在配置和测试的过 ...

  5. 利用JDBC连接数据库(MySQL)

    1 在eclipse中创建一个maven项目(在Java模式下,不要在JavaEE模式下) 1.1 file  -->> new  -->> project 2 下载数据库驱动 ...

  6. jdbc连接mysql的配置文件_如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码)...

    本篇文章给大家带来的内容是关于如何实现jdbc连接数据库并通过配置文件调用数据的方法(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Dbutil类 package com. ...

  7. Java中JDBC连接数据库(MySQL)

     JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一个功能都放 ...

  8. jdbc连接mysql正规方法_JDBC基础篇(MYSQL)——通过JDBC连接数据库的三种方式

    package day01_jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManage ...

  9. jdbc连接mysql驱动包_jdbc连接数据库驱动包

    FineReport如何用JDBC连接阿里云ADS数据库 在使用FineReport连接阿里云的ADS(AnalyticDB)数据库,很多时候在测试连接时就失败了.此时,该如何连接ADS数据库呢? 我 ...

  10. JDBC连接MySQL数据库,访问数据库信息完成登录功能——保姆级详细教程(附所有java和jsp源代码)

    目录 前言 JDBC的介绍 通过JDBC连接MySQL数据库 导入mysql驱动 连接数据库 连接数据库 判断连接是否成功 使用数据库实现登录 获取前端表单的用户输入 判断用户名和密码为空 查询表 判 ...

最新文章

  1. 赠票 | 重磅揭晓Flink Forward Asia 2019完整议程!
  2. java中的数据库事务处理
  3. Arcface demo
  4. CodeForces 447C DZY Loves Sequences DP
  5. 一个比较完整的短信接口帮助类参考
  6. Mujoco-一阶单摆建模与控制
  7. 从设计的角度,浅谈艾尔登法环给我带来的游玩感受
  8. shell打开wifi命令_android adb shell 中怎么开启wifi 热点?
  9. python泰坦尼克号数据预测_泰坦尼克号幸存者预测 python 详解
  10. Win 10 忘记密码不用U盘就可解决
  11. uniapp 微信小程序 map自定义气泡customCallout
  12. 华为服务器bmc怎么传文件,华为服务器bmc配置
  13. 图示电路中的等效电阻rab_例求图示电路中ab两点间的等效电阻Rab.ppt
  14. 追尾事故降发生:超低功耗滴滴桔视ADAS落地实践
  15. 什么是内测分发?怎么样进行内测分发?
  16. 解析H264的SPS信息
  17. 算法笔记【归并排序】:逆序对
  18. android 编译mupdf,Android mupdf在Ubuntu下的编译教程(最详细的教程)
  19. 解析手机游戏制胜10大关键因素
  20. STM32按键的检测IO口上拉下拉电阻

热门文章

  1. oracle 容器运行_Oracle应用容器云的自由
  2. aws高额账单_取消堆放以提高延迟并减少AWS账单
  3. 使用所有对象共有的方法
  4. OAuth 2.0 Java指南:5分钟保护您的应用程序安全
  5. PostgreSQL开放自由
  6. Amazon Glacier的Scala客户端
  7. 可视化Java 9模块关系
  8. 从战中反弹:将Git提交信息作为JSON返回
  9. Apache TomEE + JMS。 这从未如此简单。
  10. Spring Batch作为Wildfly模块