Jsp连接数据库大全

时间:2023-01-02 04:43:15
现在有好多初学jsp的网友经常会问数据库怎么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。

一、jsp连接Oracle8/8i/9i数据库(用thin模式)

testoracle.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为你的数据库的SID
String user="scott";
String password="tiger";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

二、jsp连接Sql Server7.0/2000数据库

testsqlserver.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

三、jsp连接DB2数据库

testdb2.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

四、jsp连接Informix数据库

testinformix.jsp如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//testDB为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>

五,jsp连接mysql数据库

1,加载驱动程序

加载驱动程序非常的简单,只需要一句代码。如果你的class name 是jdbc.DriverXYZ,那么你就把代码换成这样:Class.forName("jdbc.DriverXYZ"); 对于MYSQL来说,其CLASS NAME是org.gjt.mm.mysql.Driver,实际代码就可以写成
Class.forName("org.gjt.mm.mysql.Driver")。

2,建立连接

第二步是与DBMS建立连接,看如下的代码:

Connection con=DriverManager.getConection(Url, "myLogin","myPassword");

第二步同样简单,有一点点难的是那个Url如何提供,如果你使用JDBC—ODBC桥驱动程序,那么JDBC的URL应该是jdbc:odbc:接下来是你的数据源的名或数据库的名。所以,如果你用ODBC访问ODBC数据源,名字叫test,那么你的JDBC URL应该写成jdbc:odbc:test。在"myLogin"应该填上你登录DBMS的用户名,后面的"myPassword"自然是口令。看看代码:

String url = "jdbc:odbc:mylogin";
Connection con = DriverManager.getConnection(url, "user", "password");

一旦DriverManager.getConnection方法找到了建立链接的驱动程序和源,那么开始根据后面提供的用户名和口令开始与DBMS建立连接,如果通过那么链接建立完成。下面是一段与数据库相连的JSP代码(con.jsp):

<%
String sDBDriver = "org.gjt.mm.mysql.Driver";
String sConnStr = "jdbc:mysql://localhost/test";
Connection Con = null;
Statement Stmt = null;
ResultSet RS=null;
try
{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
out.print("Connect to Database error: " + e.getMessage());
}

try
{
Con = DriverManager.getConnection(sConnStr,"root","sql");
}
catch(SQLException e)
{
out.print(e.toString());
}
%>

查询

与数据库连接就绪之后,下面我们就来实际的应用对数据库的查询。下面是对数据库查询的jsp代码(consql.jsp):

<%
RS= Stmt.executeQuery("SELECT * FROM guestly");
String tt;
String link;
String makeStr;

out.print("<table border='2' style='color:white' >");

while (RS.next()) {
out.print("<tr><td>");
tt = RS.getString("username");
out.print(tt);
out.print("</td><td>");
tt = RS.getString("content");
out.print(tt);
out.print("</td></tr>");
}
out.print("</table>");
RS.close();
%>


显示查询的结果

以下代码将数据库连接文件及数据库查询文件包含到一个文件中,以实现网上数据显示,这也体现了JSP的特性,即网页的动态部分与静态部分分离的特点。

<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>
//连接数据库文件
<@ include file="con.jsp" %>
<HTML>
<HEAD>
<TITLE>jsp学习</TITLE>
</HEAD>
<BODY background="back.gif">
//数据库查询文件
<%@ include file="consql.jsp" %>
</BODY>
</HTML>