jsp怎么连接数据库

jsp怎么连接数据库,第1张

1、jsp是java服务端动态网页技术,主要应用于网页构建,理论上讲不应该在页面中直接连数据。合理的做法是先构建一个java后端,然后在JAVA后端中通过jdbc连接sqlserver。

2、如果一定要在jsp页面中连数据库也是可以的。jsp中有专门的sql标签可以连接数据库进行 *** 作,这是jstl的内容,需要导入相应的数据库驱动包。

3、jsp的内容相对来说技术难度都不算特别高,学习起来还是比较容易的。

4、希望对你有帮助。祝你学有所得。

用JDBC技术

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

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

2.取得数据库连接

3.建立Statement 对象

4.准备并执行调用SQL语句

5.处理ResultSet中的记录集

6.释放资源

第一步

加载驱动程序

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

Class.forName("com.mysql.jdbc.Driver")

}

catch(ClassNotFoundException e)

{

e.printStackTrace()

}

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

import java.sql.*

第二步

取得数据库连接

try{

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

String user="root"

String password="1234"

con=DriverManager.getConnection(url,user,password)

}

catch(SQLException e)

{

e.printStackTrace()

}

第三步

建立Statement 对象

try{

Statement sql=con.createStatement()

}

catch(SQLException e)

{

e.printStackTrace()

}

第四步

执行各种SQL语句

try{

ResultSet rs=sql.executeQuery(

"select * from student")

}

catch(SQLException e)

{

e.printStackTrace()

}

第五步

获取查询结果

ResultSet rs=sql.executeQuery(

"select * from student")

while(rs.next())

{

rs.getString(2)或者是rs.getString("name")

rs.getInt(3)或者是rs.getInt("age")

}

注意

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

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

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

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

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

rs.close()

sql.close()

con.close()Xxx方法()即可。

留言板要实现的功能是:浏览的人能留言并能分页的查看留言,管理员能对留言进行处理!

这个留言板由9个小程序组成,分别是:board.jspmessage.htmlopendata.jspmanager.jsppassword.jspcheck.jspdelete.jspconvert.jsp

现在说第一个:board.jsp

他的任务是整个留言板的主程序,让使用者留言,并提供分页功能!

在开始之前,我们必须在mysql数据库建立一个mydate的数据库,在mudate中建立名为message的表:

mysql>create table message( name char(20),email char(40 ),subject char(60),time char(60),sex char(10),memo text,id int not null auto_increment,primary key(id))

board.jsp代码:

<html>

<head>

<title>流言板</title>

</head>

<body>

<%@ page import="java.sql.*"%>

<%@ page contenttype="text/htmlcharset=gb2312"%>

<%@ include file="opendata.jsp"%>

<%

int count=0,lastp,numf,numl,prep,nextp,pageno

if(request.getparameter("pageno")==null) //pageno:代表页码

pageno=0

else

pageno=integer.parseint(request.getparameter("pageno"))

sql="select * from message"

rs=smt.executequery(sql)

while(rs.next())

count++<%-- count:多少留言--%>

lastp=(int)math.ceil((double)count/5)

<%--用来计算此表中有几页留言:ceil返回大于等于其数字参数的最小整数。

math.ceil(number)

必选项number 参数是数值表达式。

说明

返回值为大于等于其数字参数的最小整数。 --%>

if(pageno==0||pageno>lastp)

pageno=lastp

numf=pageno*5-4<%--显示留言的第一笔数据的编号_id--%>

numl=numf+4<%--numl:此页的最后的一笔数据编号id--%>

if(pageno==1)

prep=1<%-- prep:上一页--%>

else

prep=pageno-1

if(pageno==lastp)

nextp=lastp

else

nextp=pageno+1

sql="select * from message where id between "+numf+" and "+numl

rs=smt.executequery(sql)

%>

<font size=7 color=green>留言板</font>

<hr>

<center>

<form action=board.jsp method=post>

<table boder=0>

<tr>

<td>目前的页次<font color=red><%=pageno%></font>/<font color=blue><%=lastp%></font></td>

<td><a href=board.jsp?pageno=<%=prep%>>[上一页]</a></td>

<%--将参数pageno传递给程序,依据它来计算numl和numf,再将留言数据通过sql取出--%>

<td><a href=board.jsp?pageno=<%=nextp%>>[下一页]</a></td>

<td><a href=board.jsp?pageno=1>[第一页]</a></td>

<td><a href=board.jsp>[最后一页]</a></td>

<td>输入页次<input type=text size=3 name=pageno></td>

<td><input type=submit name=send value=送出></td>

<td><a href=password.jsp><font color=red size="5"><i>站长专用</i></font></a></td>

</tr>

</table>

</form>

<%

string name,email,subject,time,sex,memo

while(rs.next())

{

name=rs.getstring(1)

email=rs.getstring(2)

subject=rs.getstring(3)

time=rs.getstring(4)

sex=rs.getstring(5)

memo=rs.getstring(6)

out.print("<center>")

out.print("<table border=1>")

out.print("<tr><td bgcolor=yellow>姓名</td><td>"+name+"</td></tr>")

out.print("<tr><td bgcolor=yellow>e-mail</td><td>"+email+"</td></tr>")

out.print("<tr><td bgcolor=yellow>时间</td><td>"+time+"</td></tr>")

out.print("<tr><td bgcolor=yellow>主题</td><td>"+subject+"</td></tr>")

out.print("<tr><td bgcolor=yellow>留言</td><td>"+memo+"<img src="+sex+"></td></tr>")

out.print("</table><p>")

}

%>

<hr>

<center><a href="message.html">我要留言</a>

<a href=board.jsp>查看留言</a>

</body>

</html>


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

原文地址: http://outofmemory.cn/sjk/10049713.html

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

发表评论

登录后才能评论

评论列表(0条)

保存