
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编程中如何连接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)