如何用一张JSP页面连接数据库,实现查询,修改 *** 作

如何用一张JSP页面连接数据库,实现查询,修改 *** 作,第1张

1通过jdbc连接上数据,并从中获取一个连接。(建议由一个工具类提供)

2创建一个jsp页面、一个servlet类和一个service业务逻辑类。

3当点击查询按钮时调用servlet并把文本框中的参数传递过去。

4在servlet中获取页面传递过来的参数,并调用service中方法(此方法负责条件查询并返回list集合)

5servlet中把查询集合放到request作用域并转发到jsp页面进行迭代,把数据取出展示即可。

直接将你要的连接封装成一个数据库的连接类,在这个类中值完成数据库的连接和关闭不做任何事情,要用的时候直接调用就是了,你说的<jsp:useBean id="db" class "beanConnDB" scope="session"/>

JavaBean是一种符合特定规范的Java对象,在JavaBean中定义了一系列的属性(也就是成员变量),并提供了访问和设置这些属性的公共方法(也就是getXXX和setXXX方法)。JavaBean可以作为共享数据存放在page、request、session和application范围内。在JSP文件中,可以通过专门的标签来定义或访问JavaBean。例如:<jsp:useBean id="uuwoxin" scopo="page/request/session/application" class="BaiduUser">(--使用BaiduUser类实例化一个对象uuwoxin,相当于BaiduUser uuwoxin=new BaiduUser();--)

输出一个JavaBean的某个属性到页面上的时候,可以使用<jsp:getProperty name="uuwoxin" property="password">(--相当于uuwoxingetPassword();--)

设置一个JavaBean的某个属性,可以使用<jsp:setProperty name="uuwoxin" property="password" value="uuwoxin_password">(--相当于uuwoxinsetPassword("uuwoxin_password");--)

用于实例化JavaBean对象的类是写在后台的,比如Tomcat站点中WEB-INF/classes文件夹下,并且需要编译成字节码文件(class)。

struts框架中的ActionForm Bean就是一种典型的JavaBean。

深入了解JavaBean可以访问:>

用JDBC技术

创建数据库连接,分为以下几步:

1装载并注册数据库的JDBC驱动程序

2取得数据库连接

3建立Statement 对象

4准备并执行调用SQL语句

5处理ResultSet中的记录集

6释放资源

第一步

加载驱动程序

try{ //装载MySQL数据库驱动

ClassforName("commysqljdbcDriver");

}

catch(ClassNotFoundException e)

{

eprintStackTrace();

}

注意:在使用JDBC之前,要在文件前导入有关SQL的类即

import javasql

第二步

取得数据库连接

try{

String url="jdbc:mysql://localhost:3306/student;

String user="root";

String password="1234";

con=DriverManagergetConnection(url,user,password);

}

catch(SQLException e)

{

eprintStackTrace();

}

第三步

建立Statement 对象

try{

Statement sql=concreateStatement();

}

catch(SQLException e)

{

eprintStackTrace();

}

第四步

执行各种SQL语句

try{

ResultSet rs=sqlexecuteQuery(

"select from student");

}

catch(SQLException e)

{

eprintStackTrace();

}

第五步

获取查询结果

ResultSet rs=sqlexecuteQuery(

"select from student");

while(rsnext())

{

rsgetString(2)或者是rsgetString("name");

rsgetInt(3)或者是rsgetInt("age");

}

注意

只有select语句才会有结果集返回;

ResultSet对象一次只能看到一个数据行

使用next()方法走到下一数据行

获得一行数据后,ResultSet对象可以使用getXxx()方法获得字段值,将位置索引或字段名传递给get第六步

关闭创建的各个对象(后打开的先关)

rsclose();

sqlclose();

conclose();Xxx方法()即可。

首先是数据库连接代码类:

然后在你的jsp页面写上调用数据连接类的增删改查就可以了。

不懂hi我

jsp页面中

<%

String sqlgetServiceId="select eid from eip_service e where eservice_name_en='"+serviceNamesubstring(serviceNamelastIndexOf("_")+1)+"' and eservice_version=10";

int sid=BaseDBqueryId(sqlgetServiceId, null);

%>

BaseDBjava

import javasqlConnection;

import javasqlDriverManager;

import javasqlPreparedStatement;

import javasqlResultSet;

import javasqlSQLException;

import javautilregexMatcher;

import javautilregexPattern;

public class BaseDB {

public static String URL = "jdbc:oracle:thin:@192168174189:1521:soadb"; //版本管理ERP数据库配置

public static String NAME = "SVMDEV";//用户名

public static String PWD = "SVMPWD";//密码

public static PreparedStatement ps =null;

public static ResultSet rs =null;

public static Connection connection=null;

//获取数据库连接信息

public static Connection getConnection() {

try {

ClassforName("oraclejdbcOracleDriver");

if (connection==null) {

connection=DriverManagergetConnection(URL, NAME, PWD);

}

} catch (ClassNotFoundException e) {

eprintStackTrace();

} catch (SQLException e) {

eprintStackTrace();

}

return connection;

}

//查询数据,根据相关信息查询得到当前服务的某个需要的id

public static int queryId(String sql,String parameter[] ) {

int getId=0;

try {

connection=getConnection();

ps=connectionprepareStatement(sql);

if (parameter!=null) {

for (int i = 1; i <=parameterlength; i++) {

pssetString(i,parameter[i-1]);

}

}

rs=psexecuteQuery();

if(rsnext()&&rs!=null){

getId=rsgetInt(1);

}

} catch (SQLException e) {

eprintStackTrace();

}finally{

closeAll(ps, rs, connection);

}

return getId;

}

//修改数据

public static int updateData(String sql,String parameter[] ) {

int count=0;

try {

connection=getConnection();

ps=connectionprepareStatement(sql);

if (parameter!=null) {

for (int i = 1; i <=parameterlength; i++) {

pssetString(i,parameter[i-1]);

}

}

count=psexecuteUpdate();

} catch (SQLException e) {

eprintStackTrace();

}finally{

closeAll(ps, rs, connection);

}

return count;

}

//插入数据

public static int insertData(String sql,String parameter[]) {

int num=0;

try {

connection=getConnection();

ps=connectionprepareStatement(sql);

if (parameter!=null) {

for (int i = 0; i <parameterlength; i++) {

pssetString(i+1,parameter[i]);

}

}

num=psexecuteUpdate();

} catch (Exception e) {

eprintStackTrace();

}finally{

closeAll(ps,null,connection);

}

return num;

}

//关闭所有

public static void closeAll(PreparedStatement ps,ResultSet rs,Connection connection) {

try {

if (ps!=null) {

psclose();

}

} catch (Exception e2) {

try {

if (rs!=null) {

rsclose();

rs=null;

}

} catch (Exception e3) {

try {

if (connection!=null) {

//connectionclose();

//connection=null;

}

} catch (Exception e4) {

e4printStackTrace();

}

}

}

}

}

实际开发中以MVC设计模式为主,强制性地使应用程序的输入、处理和输出分开。

现在的JSP页面中的代码已经减少了很多,只是简单地完成了输出,实际上在开发中,JSP中最好只包含一下3中类型的代码:

•接收属性:接收从Servlet传递过来的属性。

•判断语句:判断传递到JSP中的属性是否存在。

•输出内容:使用迭代或者VO进行输出。

在JSP页面中唯一允许导入的包只能是javautil包,值要能把握住这一点,即可开发出一个简洁、清晰的JSP页面。

访问数据库要用到jdbc技术。

首先加载驱动:ClassforName("驱动包类名称");

然后获得连接:Connection conn = DriverManagergetConnection("连接路径,端口,数据库名","数据库用户名","密码");

然后获得PreparedStatement:PreparedStatement pstmt = connprepareStatement("sql语句");

之后就按照检索和增删改的区别分别执行不同的代码。

(1)把mysql的驱动放到tomcat的lib中

(2)建一个很简单的表person就两个字段username和password,数据库名和数据库密码换成你的就是了

create database ibatis;--创建数据库

use ibatis;--使用数据库,以下表在该数据库中

create table person(username varchar(20),password varchar(20));--创建person表

(3)创建indexjsp和registjsp

1:

indexjsp 提交表单页面

<%@ page pageEncoding="GBK"%>

<html>

<head>

</head>

<body>

<form action="registjsp" method="post">

username :<input type = "text" name="name"/>

password :<input type = "password" name="password"/>

<input type = "submit" value="提交"/>

</form>

</body>

</html>

2:registjsp //用户注册同时显示所有用户

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="javasql"%>

<body>

<center>

<%

requestsetCharacterEncoding("GBK");

String uname=requestgetParameter("name"); //从表单获得

String pwd=requestgetParameter("password"); //从表单获得

String driver="commysqljdbcDriver"; //我用的是mysql官方驱动你自己换一下就是了 在这里有

String url="jdbc:mysql://localhost:3306/ibatisuser=root&password=yanghao"; //这是数据库连接地址Ibatis是数据库名称,user是用户password就是你的用户名,根据实际情况你修改

String sql="INSERT INTO person (username,password) VALUES('"+uname+"','"+pwd+"')"; //把indexjsp提交的两个数据插进数据库的数据库语句

Connection conn=null; //数据库连接

Statement stmt=null;

ResultSet rs = null; //查询结果

%>

<%

ClassforName(driver); //加载驱动

conn=DriverManagergetConnection(url); //获得连接

stmt=conncreateStatement();

stmtexecute(sql);//存入数据库

rs=stmtexecuteQuery("select from person"); //查询所有person语句

%>

<%

if(rs!=null){ //判断以下

while(rsnext()){

String username=rsgetString(1);

String password=rsgetString(2);

%>

<table>

<tr>

<td><%=username %></td>

<td><%=password %></td>

</tr>

</table>

<%

//关闭数据库连接,和开始的顺序是反的

rsclose();//关闭结果集

stmtclose();//关闭Statement

connclose();//关闭数据库连接

//ok完成了插入和查询 *** 作

}

}

%>

</center>

</body>

这也是我从网上找了一个例子,大概流程就是这样,慢慢来。

以上就是关于如何用一张JSP页面连接数据库,实现查询,修改 *** 作全部的内容,包括:如何用一张JSP页面连接数据库,实现查询,修改 *** 作、JSP对数据库的基本 *** 作、在jsp编程中如何连接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9546433.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存