在JSP中使用jdbc操作数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JSP中使用jdbc操作数据库相关的知识,希望对你有一定的参考价值。

我是初学者。建了一个web工程,里面四个JSP文件,分别是jdbc的增删改查文件,这四个文件代码是从老师那边拷过来的,代码没有错,导入过.jar驱动包。
我不知道在浏览器页面上运行后应该是怎样的,我运行JSP查询文件后页面没有输出,运行增删改文件,刷新数据库也没变。
我怀疑是url出错了,String url=“jdbc:mysql://localhost:3360/test”;
这句的localhost是什么意思?是连接的名字吗。如果我在native for MySQL新建连接的名称取的是其他名字,是不是这里要改。

如果运行成功,是不是右键表单刷新一下就可以看到了?

先说一下链接任何的服务都是通过这种方式:协议://ip:端口,链接数据库服务也是这种结构,以下简单描述下每个参数的意思。。。
jdbc:mysql 表示你要连的是mysql的数据库服务。
localhost:表示是你要链接哪一台电脑的数据库,localhost表示的是连本地的数据库,也可以用127.0.0.1来代替,如果是别的机器就要换成其他机器的ip。
3306:表示你电脑中安装的数据库的端口是3306(文中你写的是3360,可能是你写错了)。
test:表示是你要链接的数据库服务中的哪个数据库(test是数据库的名字,一定要和你在native for MySQL中建的名称保持一致)
参考技术A 你使用的是连接池把。使用的mysql数据库,默认端口为3360.首先需要确定你是否正确连接到mysql数据库。
你的连接池分为:Class.forName("com.mysql.jdbc.Driver") ;加载驱动
//连接数据库
String url = "jdbc:mysql://localhost:3306/test" ; //test是数据库名
String username = "root" ; //数据库登陆用户名和密码
String password = "root" ;
try
Connection con =
DriverManager.getConnection(url , username , password ) ;
catch(SQLException se)
System.out.println("数据库连接失败!");
se.printStackTrace() ;

看它控制台是否输出数据库连接错误
参考技术B

本地数据库使用localhost连接

在Navicat中使用的也是localhost,如图:

浏览器里面运行,需要在页面上向后台发送请求,然后获取到后台的数据再显示到页面上。

参考技术C 看看控制台输出啊!是不是有异常抛出,或者其他报错。
url:Mysql端口你改了吗?默认的是3306。你这个是3360.改下试试。
最后那个是你的数据库的名字,必须和你在Mysql里面用的数据库的名字要一致。
参考技术D localhost是本机的意思,也可以改成127.0.0.1
MySQL的默认端口号应该是3306,你写成了3360
test是schemaName,即你新建的名称

使用 JSP 和 JDBC 在网站上注册时将新用户添加到数据库

【中文标题】使用 JSP 和 JDBC 在网站上注册时将新用户添加到数据库【英文标题】:adding new users to the database upon registering on a website using JSP and JDBC 【发布时间】:2010-08-31 20:38:00 【问题描述】:

我现在第一次做一个web应用项目,应用包括注册和添加用户到数据库,现在我写了一个java类叫DatabaseManager,实现了所有的数据库操作,并写了JSP页面负责添加新用户,如果注册成功我需要将用户的详细信息添加到数据库中,所以我想知道,我是否需要创建一个 DatabaseManager 的实例并加载数据库驱动程序并在每次新用户注册时初始化连接或在那里更有效的方法?

谢谢

【问题讨论】:

【参考方案1】:

加载数据库驱动程序只能在 webapp 启动期间完成一次。您可以为此使用ServletContextListener。您可以在DatabaseManager 类的构造函数中执行驱动程序加载任务,并在contextInitialized() 期间实例化它,并将实例存储在应用程序范围内,以便上下文中的所有 servlet 都可以使用它(注意应该是 JSP 在本质上是wrong 业务逻辑的地方)。

打开(和关闭!)Connection 应该在执行 SQL 查询时直接在同一个方法块中完成。它当然不应该被“缓存”为应用程序逻辑中某处的静态/实例变量。为了提高连接性能,通常的做法是配置一个连接池来获取连接。在每一个像样的 servlet 容器中,您都可以使用 JNDI 数据源来执行此操作。

长话短说,您可以在this article 中找到一个利用上述技术的 JSP/Servlet 示例,巧合的是,它也使用了“注册用户”的用例。

【讨论】:

感谢 BalusC,按照您的教程和您在此处的解释帮助我连接了我阅读的有关 servlet 的所有内容。

以上是关于在JSP中使用jdbc操作数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用JDBC

JDBC操作数据库,第一:jsp插入mysql数据库,坎坷摸索分享

JDBC操作数据库之查询数据

JDBC -JSP

JSP中如何对数据库中的数据进行删除增加等操作

综合学生信息管理系统(JSP+JDBC)