回 帖 发 新 帖 刷新版面

主题:jsp连接数据库大全

现在有好多初学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连接Sybase数据库
testmysql.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/tsdata";
//tsdata为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
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>

回复列表 (共24个回复)

11 楼

谢谢,正要学。

12 楼

回10楼得朋友 

你可能没有输入 SQLServer 得登陆账号或者密码 ...
要不然就是 输入了错误得...

13 楼

看起来不错,收藏了,多谢楼主分享

14 楼


在干什么

15 楼

弱弱的问一句:
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";

<%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
String url="jdbc:odbc:pubs";
两者有什么区别?

16 楼

请各位帮我看一下这个修改数据库的程序:


<%@ page language="java" contentType="text/html; charset=gbk"
    pageEncoding="gbk"%>
<%@page import ="java.sql.*" %>
<%! 
public String codeToString(String str)
{
    String s=str;
    try
    {
        byte temp[]=s.getBytes("ISO-8859-1");
        s=new String(temp);
        return s;
    }catch(Exception e)
    {
        return s;
    }
}
%>
<%
    String username=codeToString(request.getParameter("username"));
    if(username==null)
        username="";
    
    String password=codeToString(request.getParameter("password"));
    if(password==null)
        password="";
    
    String depart=codeToString(request.getParameter("depart"));
    if(depart==null)
        depart="";
    
    String sex=codeToString(request.getParameter("sex"));
    if(sex==null)
        sex="";
    
    String age=codeToString(request.getParameter("age"));
    int ageint ;
    try
    {
        ageint=Integer.parseInt(age.trim());
    }
    catch(Exception e)
    {
        ageint=0;
    }
    
    String math=codeToString(request.getParameter("math"));
    int mathint ;
    try
    {
        mathint=Integer.parseInt(math.trim());
    }
    catch(Exception e)
    {
        mathint=0;
    }
    
    String english=codeToString(request.getParameter("english"));
    int englishint ;
    try
    {
        englishint=Integer.parseInt(english.trim());
    }
    catch(Exception e)
    {
        englishint=0;
    }
%>

<%
      String sqlString=null ; 
      char no=0510 ;
      sqlString="insert into Stdinfor(Sno,Sname,Ssex,Sage,Sdepart,Math,English)"+
      "values('"+no+"','"+username+"',','"+sex+"','"+ageint+"','"+depart+"','"+mathint+"','"+englishint+"')";
     //  sqlString="insert into Stdinfor(Sno,Sname,Ssex)"+
     // "values('"+no+"','"+username+"',','"+sex+"')";  
%>

<%
   try
   {
       Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   
   }
   catch(Exception e)
   {
      out.print("SQL异常!");
   }  
   Connection con=DriverManager.getConnection("jdbc:odbc:fcg","administrator","null");
   Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
   sql.executeUpdate(sqlString); 
   con.close();
%>

<html>
<head>
<title>接受用户处理页面</title>
</head>
<body>
<center>
<table border="1" width="700">
<tr>
      <td width="100%" colspan="2" align="center">用户注册程序</td>
</tr>

<tr>
      <td width="100%" colspan="2" align="center">追加用户成功</td>
</tr>
</table>
</center>
</body>
</html>



javax.servlet.ServletException: [Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '女' 附近有语法错误。
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.AddOneAccept_jsp._jspService(AddOneAccept_jsp.java:165)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

这里提示错误是什么意思?

在哪里看它编译的代码?

17 楼

程序员总结开发的java jsp学习资料、实战项目源程序代码

资料:

1.JSP编程技巧集锦139篇                      
2.ASP编程技巧集锦(一个问题一段代码)             
3.JavaScript编程技巧集锦(一个问题一段代码)  

java jsp实战源程序代码:
                                 
4. 办公自动化管理(OA)系统(web版 全套源码 安装即用)
5. 企业产供销管理(ERP)系统(web版 全套源码 安装即用)
6. 网上(在线)书店管理系统(web版 全套源码 安装即用)
7. 学生成绩管理系统(web版 全套源码 安装即用)
8. 新闻发布管理系统(web版 全套源码 安装即用)
9. 学生选课管理系统(web版 全套源码 安装即用)
10.超市信息管理系统(web版 全套源码 安装即用)
11.客户关系管理(CRM)系统(web版 全套源码 安装即用)
12.宾馆酒店管理系统(web版 全套源码 安装即用)
13.学生信息管理系统(web版 全套源码 安装即用)

联系方式   
     
e_mail:fzlotuscn@yahoo.com.cn    QQ:595563946 

掏宝地址: http://shop34556665.taobao.com

18 楼

顶一下

19 楼


[color=FF0000]我接触JSP已有一段时间了,能不能把MVC模式详细的给我解释解释阿?谢拉!!![/color]

20 楼


很经典的jsp连接数据库的总结了 ,支持.
连接数据库是要驱动的
还要注意别放错地方咯 呵呵[em12]

我来回复

您尚未登录,请登录后再回复。点此登录或注册