**

我使用的数据库是mysql,其余数据库方法大致一致,细节注意下即可。

**
今天主要分享的是单个jsp页面如何实现和数据库的交互,包括 增删查改 四个方面。
首先我在dos界面建立了一个数据库

初始化界面是这样的

之后进行代码编写

此处给出全部代码,之后分块解释

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@ page import=“java.sql.*” %>

SQLTest <% Connection con; Statement st; ResultSet rs; PreparedStatement stmt; try{ Class.forName("com.mysql.cj.jdbc.Driver");//获取数据库连对象 }catch(Exception e){ out.println("忘记把mySQL数据库的jdbc数据库驱动程序复制到jdk的扩展目录中 "); }

try{String url="jdbc:mysql://localhost/student?serverTimezone=GMT%2B8&useSSL=false"; //数据库连接字String name="root";String pass="123456";con = DriverManager.getConnection(url,name,pass);//加载并注册驱动程序st = con.createStatement();//statement对象的初始化//增加一行记录无参

/* String sql = “insert into rj1602(Sno,Sname,Snicheng,Scondition,java,os,math) values (?,?,?,?,?,?,?)”;
stmt = con.prepareStatement(sql);
stmt.setString(1,“201616040221”);
stmt.setString(2,“小宝”);
stmt.setString(3,“小白”);
stmt.setString(4,“天真的”);
stmt.setInt(5,45);
stmt.setInt(6,45);
stmt.setInt(7,54);
int n = stmt.executeUpdate();
rs = st.executeQuery(“select * from rj1602”); */

 //增加一行记录有参数

/* String sql = “insert into rj1602(Sno,Sname,Snicheng,Scondition,java,os,math) values (‘201616040220’,‘小胖子’,‘胖子’,‘真胖’,49,48,94)”;
stmt = con.prepareStatement(sql);
rs = st.executeQuery(“select * from rj1602”); */

 //删除一行记录无参数

/* String sql = “delete from rj1602 where Sno=?”;
stmt = con.prepareStatement(sql);
stmt.setString(1, “201616040219”);
int n = stmt.executeUpdate();
rs = st.executeQuery(“select * from rj1602”); */

 //删除一行记录有参数

/* String sql = “delete from rj1602 where Sno=‘201616040221’”;
stmt = con.prepareStatement(sql);
int n = stmt.executeUpdate();
rs = st.executeQuery(“select * from rj1602”); */

 //查询数据

/* String sql = “select * from rj1602 where Sno=‘201616040214’”;
stmt = con.prepareStatement(sql);//先实例化stmt对象,之后再执行sql语句
rs = stmt.executeQuery(sql);
*/

 //修改某个数据

/* String sql = “update rj1602 set Sname=‘小宝贝’ where Sno = ‘201616040221’”;
stmt = con.prepareStatement(sql);
int n = stmt.executeUpdate(sql); //executeUpdate返回一个整形
rs = st.executeQuery(“select * from rj1602”); //executeQuery返回一个结果集 */

 //输出数据库表格out.print("<table border=2>");out.print("<tr>");out.print("<th width = 100>"+"Sno");out.print("<th width = 100>"+"Sname");out.print("<th width = 100>"+"Snicheng");out.print("<th width = 100>"+"Scondition");out.print("<th width = 100>"+"java");out.print("<th width = 100>"+"os");out.print("<th width = 100>"+"math");out.print("</tr>");while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getString(1)+"</td>");out.print("<td>"+rs.getString(2)+"</td>");out.print("<td>"+rs.getString(3)+"</td>");out.print("<td>"+rs.getString(4)+"</td>");out.print("<td>"+rs.getInt("java")+"</td>");out.print("<td>"+rs.getInt("os")+"</td>");out.print("<td>"+rs.getInt("math")+"</td>");out.print("</tr>");}out.print("</table>"); con.close();
}catch(SQLException e){out.print(e);
}

%>

使用eclipse读取数据库表格的初始化表格如下

首先建立Connection,Statement,PreparedStatement,Resultset对象
Connection:数据库连接接口,该接口负责与特定数据库的链接,其中三个方法比较重要

createStatement():创建并返回一个Statement实例,通常在执行无参数的sql语句时创建该实例。
prepareStatement():创建并返回一个Statement实例,通常在执行含参数的sql语句时创建该实例。
close():关闭数据库连接。
Statement:该接口用来执行静态的sql语句,并返回执行结果。

executeQuery(String sql):执行静态的select语句,并返回一个永远不能为null的Result实例。
executeUpdate(String sql):执行静态的insert,update,delete语句,并返回一个int型整数,为同步更新记录的条数。
close():关闭Statement实例。
PreparedStatement:该接口继承与于Statement接口,用来执行动态的sql语句。

executeQuery(String sql):执行前面包含参数的动态select语句,并返回一个永远不能为null的Result实例。
executeUpdate(String sql):执行前面包含参数的动态的insert,update,delete语句,并返回一个int型整数,为同步更新记录的条数。
setXXX():设置指定类型的参数值,下方会有具体代码演示。
close():关闭Statement实例。
Result:该接口类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的相关信息。

其中具体方法可参考:https://blog.csdn.net/CSDN___LYY/article/details/53223844

实例化之后,获取数据库连接对象
Class.forName(“com.mysql.cj.jdbc.Driver”);
加载并注册驱动程序
String url=“jdbc:mysql://localhost/student?serverTimezone=GMT%2B8&useSSL=false”; //数据库连接字
String name=“root”;
String pass=“123456”;
con = DriverManager.getConnection(url,name,pass);//加载并注册驱动程序
增加一行记录,无参数的
//增加一行记录无参
String sql = “insert into rj1602(Sno,Sname,Snicheng,Scondition,java,os,math) values(?,?,?,?,?,?,?)”;
stmt = con.prepareStatement(sql);
stmt.setString(1,“201616040221”);
stmt.setString(2,“小宝”);
stmt.setString(3,“小白”);
stmt.setString(4,“天真的”);
stmt.setInt(5,45);
stmt.setInt(6,45);
stmt.setInt(7,54);
int n = stmt.executeUpdate();
rs = st.executeQuery(“select * from rj1602”);
此处通过?????来进行sql语句的填写,并通过prepareStatement接口的set方法存入值,编号从1递加并第一个?开始。

执行结束后,eclipse返回结果

查询数据
//查询数据
String sql = “select * from rj1602 where Sno=‘201616040214’”;
stmt = con.prepareStatement(sql);//先实例化stmt对象,之后再执行sql语句
rs = stmt.executeQuery(sql);

修改数据
//修改某个数据
String sql = “update rj1602 set Sname=‘小宝贝’ where Sno = ‘201616040221’”;
stmt = con.prepareStatement(sql);
int n = stmt.executeUpdate(sql); //executeUpdate返回一个整形
rs = st.executeQuery(“select * from rj1602”); //executeQuery返回一个结果集 */

删除201616040221这条记录有参的,无参同增加
//删除一行记录有参数
String sql = “delete from rj1602 where Sno=‘201616040221’”;
stmt = con.prepareStatement(sql);
int n = stmt.executeUpdate();
rs = st.executeQuery(“select * from rj1602”);

如有侵权请联系!!!!

javascript连接数据库相关推荐

  1. JavaScript爬取网页并分析

    JavaScript爬取网页并分析 任务分析 爬取三个网站下的新闻数据,这里选择网易新闻网(https://news.163.com/): 提取每条新闻的如下字段:标题,内容,发表日期,网址,关键词, ...

  2. JavaScript 和JSP 连接SqlServer 数据库

    第一种 JavaScript连接数据库: <mce:script language="JavaScript"><!-- // 创建数据库对象 var objdbC ...

  3. access前端连接mysql_用javascript连接access数据库的方法

    刚看到一个朋友写的用javascript连接excel数据库的程序,想把它改成access数据库的,就找到了这两篇文章 ---------------------------------------- ...

  4. 2010 年 博文汇总

    以方便以后查找以往博文. asp.net系列 1:Asp.Net中清空所有textbox的几种方法 (2010-03-04 14:12) 2:Asp.Net Request获取url各种信息的方法 ( ...

  5. 以JavaScript连接mysql数据库为例说明通过ODBC连接数据库的通用方法

    ODBC简介 开放数据库连接(Open Database Connectivity),ODBC是为解决异构数据库间的数据共享而产生的,ODBC 为异构数据库访问提供统一接口,允许应用程序以SQL 为数 ...

  6. ThinkPHP连接数据库

    ThinkPHP连接数据库,刚刚开始搞thinkPHP,对于很多的专有的名词还不是很熟悉,今天找了一个博客,并且搜索了一会,才知道怎样利用php连接数据库 首先我的目录文件是这样的,然后在Applic ...

  7. JDBC连接数据库过程

    JDBC连接数据库过程 时间: 2009-03-03 20:43来源: 作者: 点击: <script src="http://www.topkc.cn/plus/count.php? ...

  8. 核心(Core) Javascript 学习手记

    说明: 一字一句都是俺敲出来的, ^^. 转载请注明出处哦. 前些日子, 发现好些地方需要用到 Js 代码, 以前没怎么系统的学习过, 要用到的时候查一堆一堆的手册, 写得不好不说, 还很浪费时间,  ...

  9. JavaScript基础,Cookies,Sessions

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...

  10. JavaScript高级应用(二)

    //组件是否安装 isComponentInstalled("{6B053A4B-A7EC-4D3D-4567-B8FF8A1A5739}", "componentID& ...

最新文章

  1. 结合Jexus + Kestrel 部署 asp.net core 生产环境
  2. python调用电脑蜂鸣器一直响_电脑开机蜂鸣器一直响,9声滴~,什么问题?怎么处理?...
  3. 高中计算机室名言,高中教室励志标语名言
  4. 虚成员(virtual)
  5. UpdatePanel Repeater内LinkButton造成页面刷新问题
  6. 系统架构设计师 - 单体架构、SOA架构、微服务架构
  7. retryexec.java 94_解决feign调用接口不稳定的问题
  8. ‘grep‘ 不是内部或外部命令,也不是可运行的程序或批处理文件-adb shell ps | grep ***
  9. DSP入门必看(上)
  10. 基于php的超市仓库管理系统
  11. java jdom_Java JDOM解析器
  12. android流光动画和流光字体
  13. 从I到R:人工智能语言简史
  14. Python教你从0搭建微信推送斗鱼直播提醒(单房间简化版)
  15. node命令与切换node版本
  16. javascript ClientId用法
  17. PDF阅读器和编辑器选择
  18. SQL Server DATEADD()实例讲解
  19. uboot usb设备驱动
  20. 确认!贾扬清加盟阿里,任技术副总裁

热门文章

  1. Ubuntu20.04安装ZOOM
  2. ACM题目推荐(刘汝佳书上出现的一些题目)
  3. 华为推出首款折叠屏5G手机;微信“上车”时间已定;社区团购暗潮涌动
  4. #开源的ZYNQ+AD936X SDR软件无线电
  5. c语言二级考试题库及答案,c语言二级考试题库
  6. QC新7大手法全面详解
  7. mac air 分区以后 分区内存消失了
  8. word宏、宏编程以及VBA
  9. 《PMP学习笔记》1.3 五大过程组十大知识领域
  10. teamview centos 配置