本文介绍: 在JSP中可以写Java代码,很明显可以通过Java代码访问数据库。在Java技术系列访问数据库技术叫”JDBC“,它提供了一系列的API,让Java语言编写代码连接数据库,对数据库数据进行增加删除修改查询。与JDBC有的API存放java.sql宝中,主要包括以下类和接口java.sql.Connection: 负责连接数据库java.sql.Statement: 负责执行数据库的sql语句不能参数查询,一般只用其的增删功能)java.sql.: 负责执行数据库的。

1.JDBC简介

2.Statement 和 PreparedStatement 的区别

3.导入连接数据库Jar包

在JSP中连接数据时除了要导入 mysqlconnector-java.jar, 一般还要导入关于JSP的
jspapi.jar

4.JDBC操作

4.1 Statement操作

使用Statement“添加数据
<%@ page import="java.sql.*" %&gt;
<%@ page contentType="text/html;charset=UTF-8" language="java" %&gt;
<html&gt;
<head&gt;
    <title&gt;JSP中通过Statement"添加数据"</title&gt;
</head&gt;
<body&gt;
<%
    //1.加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2,获得连接数据库的Connection对象
    Connection conn = DriverManager.getConnection(url,"root", "root");
    //3.获得操作数据库的Statement对象
    Statement stat = conn.createStatement();
    //sql语句
    String sql = "insert into book(bno,bname,author,publishment) values('1','JavaWeb开发','zhangsan','北京出版社')";
    //4.执行该语句
    int i = stat.executeUpdate(sql);
    out.print("成功添加"+i+"行");
    //5.关闭资源
    stat.close();
    conn.close();
%>
</body>
</html>
使用Statement“删除数据”
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP中通过Statement"删除数据"</title>
</head>
<body>
<%
    //1.通过反射加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    //url
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2.通过connection对象连接数据库
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.通过Statement对象操作数据库
    Statement stat = conn.createStatement();
    String sql = "delete from book where bno ='1'";
    //4.调用方法操作数据库
    int i = stat.executeUpdate(sql);
    out.print("成功删除"+i+"行数据");
    //关闭资源
    stat.close();
    conn.close();
%>
</body>
</html>
使用Statement“修改数据”
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP中通过Statement"修改数据"</title>
</head>
<body>
<%
    //1.通过反射加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    //url
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2.通过connection对象连接数据库
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.通过Statement对象操作数据库
    Statement stat = conn.createStatement(); 
    String sql = "update book set bname = 'JavaJavaJava' where bno = '1'";
    //4.调用方法操作数据库
    int i = stat.executeUpdate(sql);
    out.print("成功修改"+i+"行数据");
    //关闭资源
    stat.close();
    conn.close();
%>
</body>
</html>
使用Statement“查询数据”
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP中通过Statement"查询数据"</title>
</head>
<body>
<%
    //1.通过反射加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    //url
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2.通过connection对象连接数据库
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.通过Statement对象操作数据库
    Statement stat = conn.createStatement(); //Statement : 不能参数化查询
    String sql = "select * from book where bno = 1";
    //4.调用方法操作数据库
    ResultSet rs = stat.executeQuery(sql);
    while (rs.next()) {
        out.print(rs.getString(1));
        out.print(rs.getString(2));
        out.print(rs.getString(3));
        out.print(rs.getString(4));
    }
    //关闭资源
    stat.close();
    conn.close();
%>
</body>
</html>

4.2 PreparedStatement操作

使用PreparedStatement“添加数据”
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>add1.jsp</title>
</head>
<body>
<%
    //1.通过反射连接驱动
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2.获得连接数据库的Connection对象
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.获得操作数据的PreparedStatement对象 (PreparedStatement对象可进行参数化设置)
    String sql = "insert into book values(?,?,?,?)";
    PreparedStatement ps = conn.prepareStatement(sql);
    //设置参数(补充占位符)
    ps.setString(1,"111");
    ps.setString(2,"诗词鉴赏");
    ps.setString(3,"俞平伯");
    ps.setString(4,"陕西师范大学出版社");
    int i = ps.executeUpdate();
    out.print("成功添加"+i+"行数据!");
%>
</body>
</html>
使用PreparedStatement“删除数据”
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>delete1.jsp</title>
</head>
<body>
<%
    //1.通过反射连接驱动
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2.获得连接数据库的Connection对象
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.获得操作数据的PreparedStatement对象 (PreparedStatement对象可进行参数化设置)
    String sql = "delete from book where bno = ?";
    PreparedStatement ps = conn.prepareStatement(sql);
    //设置参数(补充占位符)
    ps.setString(1,"111");
    //4.执行sql操作
    int i = ps.executeUpdate();
    out.print("成功删除"+i+"行数据!");
%>
</body>
</html>
使用PreparedStatement“修改数据”
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>update1.jsp</title>
</head>
<body>
<%
    //1.通过反射连接驱动
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2.获得连接数据库的Connection对象
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.获得操作数据的PreparedStatement对象 (PreparedStatement对象可进行参数化设置)
    String sql = "update book set bname = ? where bno = ?";
    PreparedStatement ps = conn.prepareStatement(sql);
    //设置参数(补充占位符)
    ps.setString(1,"JavaWeb");
    ps.setString(2,"112233");
    //4.执行sql语句
    int i = ps.executeUpdate();
    out.print("成功修改"+i+"行数据!");
%>
</body>
</html>
使用PreparedStatement“查询数据”
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>select1.jsp</title>
</head>
<body>
<%
    //1.通过反射连接驱动
    Class.forName("com.mysql.jdbc.Driver");
    String url = "jdbc:mysql://localhost:3306/a3?useUnicode=true&amp;characterEncoding=UTF-8";
    //2.获得连接数据库的Connection对象
    Connection conn = DriverManager.getConnection(url, "root", "root");
    //3.获得操作数据的PreparedStatement对象 (PreparedStatement对象可进行参数化设置)
    String sql = "select * from book where bno = ?";
    PreparedStatement ps = conn.prepareStatement(sql);
    //设置参数(补充占位符)
    ps.setString(1,"0009999112");
    //4.获得结果集对象
    ResultSet rs = ps.executeQuery(); //返回值为结果集对象
    //5.解析结果集对象
    while (rs.next()) { //如果有数据
        String bno = rs.getString(1);
        String bname = rs.getString(2);
        String author = rs.getString(3);
        String publishment = rs.getString(4);
        out.print(bno+" "+bname+" "+author+" "+publishment);
    }
%>
</body>
</html>

原文地址:https://blog.csdn.net/m0_70720417/article/details/134700729

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_8047.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注