问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-23 15:23

我来回答

4个回答

热心网友 时间:2022-04-07 15:57

上面的给出了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";黑体部分为固定写法不用理会。回到你最初的问题,如何创建数据库,这里你可以去下每个数据库创建的方法,一般数据库安装的时候都有默认的数据库名,和对应的系统管理员工号和密码,DatabaseName=pubs这里说明sql serv 2000中建立了一个名字叫pubs的数据库jdbc:microsoft:sqlserver://localhost:1433固定写法唯一不同的是1433端口号,可能你在安装sql serv 2000的时候改变了该端口号为1500那么这里就应该为jdbc:microsoft:sqlserver://localhost:15003、定义好DatabaseName=pubs的登录用户名和密码 String user="sa";用户名
  String password="";密码4、创建Connection对象,通过调用DriverManager.getConnection方法获得。 Connection conn= DriverManager.getConnection(url,user,password);黑体部分就是你定义好的连接串,用户名,密码,不可改变顺序。到这里为止数据库就连接上了,但是连接好了数据库还要做点什么,比如打印出来,接下看。5、通过获得的Connection对象conn创建Statement 对象stmtStatement 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方法。

热心网友 时间:2022-04-07 17:15

在界面上连接数据库的操作是不对的。我建议你写一个类来专门连接数据库。在页面写Java代码,入侵性太高了,而且如果是这样发布到服务器去,很不安全。我给你个一Java类连接数据库的源码。可以直接建一个类把这些粘贴进去。其他Java类全部继承这个类。package com.comm;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;/*
* 父类:DAO
* */
public class BaseDao {
private Connection con;
private PreparedStatement ps;
private ResultSet rs; // 连接
public void getCon() throws ClassNotFoundException, SQLException {
String conStr = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=OPPO_Shopping"; // 加载驱动程序
String classStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
Class.forName(classStr);
con = DriverManager.getConnection(conStr, "sa", "sasa");
} // 关闭
public void closeCon() {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (Exception e) {
e.printStackTrace();
}
} // 查询
public ResultSet executeQuery(String sql, Object... p) {
try {
if (con == null || con.isClosed()) {
this.getCon();
}
ps = con.prepareStatement(sql);
if (p != null) {
for (int i = 0; i < p.length; i++) {
ps.setObject(i + 1, p[i]);
}
}
return ps.executeQuery();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//增删改
public int executeUpdate(String sql, Object... p){
try {
if (con == null || con.isClosed()) {
this.getCon();
}
ps = con.prepareStatement(sql);
if (p != null) {
for (int i = 0; i < p.length; i++) {
ps.setObject(i + 1, p[i]);
}
}
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
return 0;
}finally{
closeCon();//关闭数据库
}
}
//分页
public Map page(String sql, Integer page, Integer size, Object... p) throws Exception, SQLException {
Map map = new HashMap();

//------------------求页数--------------------------
ResultSet rs = null;
if (con == null)
getCon(); //默认是仅向前,可以后退,大步向前
ps = con.prepareStatement(sql,1004,1007);

if (p != null)
for (int i = 0; i < p.length; i++)
ps.setObject(i + 1, p[i]); rs = ps.executeQuery(); //下面三句话要先改con.prepareStatement(sql,1004,1007);
rs.first();
rs.last();
int count = rs.getRow(); //求总条数
int pageCount = count % size ==0 ? count/size : count/size+1; //总页数
map.put("pageCount", pageCount);
//------------------------求总页数结束----------------//
//--------------------取从第几条开始,到第几条结束------------//

ps.setMaxRows(page*size); //到哪条结束
rs = ps.executeQuery();
rs.absolute( (page-1)*size); //从哪条开始

//--------------------分页结束------------------------------//
map.put("rs", rs);
return map; }}

热心网友 时间:2022-04-07 18:49

我收藏的,希望给个满意 全面解析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>

热心网友 时间:2022-04-07 20:41

你可以加我我远程帮你连接
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在爱水APP哪个模块中可以填写个人信息,查询自己一天的饮水量? 黄金为什么是避险产品 避险买什么 避险品种是什么 避险产品什么意思 什么是避险产品 ...对联和我们平时使用的印章,说说使用了哪几个字体 对联上写的是什么字 ...有一空是让我评价我自己,请各位哥哥姐姐帮帮忙,帮我编一段,往好了... 艾灸用品哪种好 浙江二本有会计专业的大学 浙江财经大学2016年会计专硕分数线 浙江财经大学的会计专业是不是比浙江大学的会计好很多呀??还有*财经、上海财经比又怎么样呢? 浙江财经大学会计学专业怎么样 浙江工商大学和浙江财经学院研究生会计系哪个好考些 分数线是多少 浙江财经大学 平均分85.14,雅思托福还没考过,不改英语还算不错,六级550+,会计专业,实在 浙江财经大学和浙江工商大学的会计专硕哪个容易考上写? 我是浙江理科考生,今年考了663,排名10898,问我能进浙江财经大学的会计系吗? 浙江省里哪些大学会计专业比较好? 浙江考生652分,浙江财经大学会计学录取可能性大吗 求浙江财经大学 会计专业历年本科录取线 2017年浙江高考排名4万名能报什么大学 2020年浙江财经大学考研初试成绩查询 浙江财经大学会计专硕总分多少 Linux,Python 求《PythonLinux系统管理与自动化运维》全文免费下载百度网盘资源,谢谢... 施工方项目经理年底都忙些什么? 项目经理业绩报告怎么写 跪求消防工程公司项目经理年终总结! 谁能提供一篇项目经理的个人年终工作总结 如何才能快速解除微信支付帐号保护? 用jsp连接数据库实现登录注册 jsp如何连接数据库? 微信支付解除账户保护 关于jsp连接mysql数据库登陆验证代码的问题 jsp怎么连接数据库 微信支付账户为什么会进入自动保护模式? jsp登陆页连接数据库 我的微信支付帐号已经解冻了,有什么办法可以更好的保护帐号的安全性呢? JSP连接数据库要有几种方法,要怎么连接?怎么写代码? jsp怎么连接mysql数据库代码 怎么保护微信支付安全? jsp怎么连接access数据库 jsp登录连接数据库源代码 抽屉被东西卡住了,怎样才能打开抽屉? 我钥匙拉家里了,办公室的活动柜抽屉怎么开? 怎么办呀?办公桌抽屉好像东西卡住了? 怎么才能把办公桌浅抽屉拆下来? 这种办公室抽屉怎么弄开啊,文件掉里面了 铝合金办公立柜抽屉如何取出来?