永发信息网

求jsp连接数据库方法(详细的)

答案:3  悬赏:30  手机版
解决时间 2021-05-02 12:40

第一步是不是建个数据库?数据源?

然后写代码连接?能不能建个数据库再连接上它!

最佳答案

建立好数据库,然后在写代码连接它



全面解析JSP连接各类数据库大全
--------------------------------------------------------------------------------

2006-04-05 来源:ChinaITLab 作者:ChinaITLab
  一、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>
  
  六、jsp连接MySQL数据库
  
  testmysql.jsp如下:
  <%@ page contentType="text/html;charset=gb2312"%>
  <%@ page import="java.sql.*"%>
  <html>
  <body>
  <%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
  String url="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
  //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连接PostgreSQL数据库
  
  testmysql.jsp如下:
  <%@ page contentType="text/html;charset=gb2312"%>
  <%@ page import="java.sql.*"%>
  <html>
  <body>
  <%Class.forName("org.postgresql.Driver").newInstance();
  String url ="jdbc:postgresql://localhost/soft"
  //soft为你的数据库名
  String user="myuser";
  String password="mypassword";
  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内嵌java的最初模式,现在一般是三层结构了即MVC结构,就这个例子我来给你解释下是怎么做的,java对连接数据库提供了统一的接口,各个数据库厂商根据提供的接口规范开发自己的连接方法

顺序如下:

1、用Class.forName()方法加载驱动:

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

黑体部分为数据库厂商自己开发的驱动。

2、定义好连接数据库的url地址,连接串

String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";黑体部分为固定写法不用理会。

回到你最初的问题,如何创建数据库,这里你可以去baidu下每个数据库创建的方法,一般数据库安装的时候都有默认的数据库名,和对应的系统管理员工号和密码,DatabaseName=pubs这里说明sql serv 2000中建立了一个名字叫pubs的数据库jdbc:microsoft:sqlserver://localhost:1433固定写法唯一不同的是1433端口号,可能你在安装sql serv 2000的时候改变了该端口号为1500那么这里就应该为jdbc:microsoft:sqlserver://localhost:1500

3、定义好DatabaseName=pubs的登录用户名和密码

String user="sa";用户名   String password="";密码

4、创建Connection对象,通过调用DriverManager.getConnection方法获得。

Connection conn= DriverManager.getConnection(url,user,password);黑体部分就是你定义好的连接串,用户名,密码,不可改变顺序。到这里为止数据库就连接上了,但是连接好了数据库还要做点什么,比如打印出来,接下看。

5、通过获得的Connection对象conn创建Statement 对象stmt

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);黑体部分是定义ResultSet的一些属性的,具体含义可以参考JDK的api。

6、定义好你准备取得数据的sql语句,比如下面 select * from test说明想从test表中取得所有的数据,关于sql语句可以去查找相关数据库资料。

String sql="select * from test";

定义好语句后,就用上一步创建好的Statement 对象stmt来执行这个sql语句,并返回一个ResultSet对象。   ResultSet rs=stmt.executeQuery(sql);

执行完这步后rs中已经取得了test表所有的数据,那么接下来要展现在网页上。

7、rs.next()对你取得的记录集做一个循环直到没有值为止,rs.getString(1)代表你test表中的第一个字段rs.getString(2)代表你test中的第二个字段,如果还有更多字段可以继续rs.getString(3)..rs.getString(N)

while(rs.next()) {%>   您的第一个字段内容为:<%=rs.getString(1)%>   您的第二个字段内容为:<%=rs.getString(2)%>   <%}%>

8、当所有数据展现完毕,调用close()方法将所有资源关闭。

rs.close();   stmt.close();   conn.close();

回顾下大致过程:

加载驱动 Class.forName();

定义好相关的数据,调用DriverManager.getConnection(driver,user,password)获得一个数据库连接conn

通过conn创建Statement对象stmt,conn.createStatement();

通过stmt执行定义好的sql语句获得数据集ResultSet rs=stmt.executeQuery(“select * from test”);

通过rs.next()方法循环遍历数据集的数据,通过rs.getString(1)获得第一条数据的第一个字段内容,这里要注意的是getString是对应数据库是字符类型,如果test表的第一个字段不是字符类型则用rs.getInt(1)获得。

展现完毕后关闭所有资源conn stmt rs close方法。

//如下是一个封装的与数据库连接相关的类

//包括获取连接、关闭连接的完整代码

import java.sql.*;

public class CM { private static final String Driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //数据库驱动字符串 private static final String Url = "jdbc:sqlserver://localhost:8080; databaseName = 你建立的数据库名称"; private static final String User = "数据库用户名"; private static final String Pwd = "数据库登录密码"; static{ try{ Class.forName(Driver); }catch(Exception e){ e.printStackTrace(); } } public static Connection getConnection(){ try{ return DriverManager.getConnection(Url, User, Pwd); }catch(Exception e){ e.printStackTrace(); } return null; } public static void close(ResultSet res, PreparedStatement pstmt,Connection conn){ closeResultSet(res); closePreparedStatement(pstmt); closeConnection(conn); } public static void close(PreparedStatement pstmt, Connection conn){ closePreparedStatement(pstmt); closeConnection(conn); } private static void closeResultSet(ResultSet res){ if(res != null){ try{ res.close(); res = null; }catch(SQLException sqlE){ sqlE.printStackTrace(); } } } private static void closePreparedStatement(PreparedStatement pstmt){ if(pstmt != null){ try{ pstmt.close(); pstmt = null; }catch(SQLException sqlE){ sqlE.printStackTrace(); } } } private static void closeConnection(Connection conn){ if(conn != null){ try{ conn.close(); }catch(SQLException sqlE){ sqlE.printStackTrace(); } } } }

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
怎样把Q币转到财付通账户里?
武林群侠传虹鲤怎么钓,神雕侠侣手游群侠贺岁
黑龙江金川房地产开发有限公司地址有知道的么
日元有可能升值吗?
南京白下区中山路电大怎么样,我想考个大专文
????什么才能有记忆
CF登陆问题 怎么能上 紧急
银行卡卡号有字母吗,是不是银行卡卡号都没有
为什么看不了图片?老是在左上角显示这个图标?
dnf上海一区怎么会有这个活动?
成都市那个运动品牌现在打折打的凶?
我该不该放弃一个只是喜欢你的人
怎样可以进入锁了的空间
卫辉市新乡卫辉市顿坊店乡家乐福装饰部哪位知
给个好看的电影网
推荐资讯
有谁知道北京最美的向日葵园在哪里?顺便想了
新武林外传要练法系3职业要几级涅几级羽
【急求】哪位高手帮我翻译一下教堂几个的英文
高压共轨加压泵那儿卖
急求歌曲专属味道的歌词连接,要有效的哦
夜花冲我想知道这个在什么地方
小腿弯的MM,穿什么样子的靴子好看,又不显腿
南外加试分什么内容啊
怎么注销酷狗帐号
60级的气功被封了
电脑回收站里的文件为什么有些看不到?但存在
求知了狗的养殖技术。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?