在jsp编程中如何连接数据库?

在jsp编程中如何连接数据库?,第1张

用JDBC技术\x0d\x0a创建数据库连接,分为以下几步:\x0d\x0a1.装载并注册数据库的JDBC驱动程序\x0d\x0a2.取得数据库连接\x0d\x0a3.建立Statement 对象\x0d\x0a4.准备并执行调用SQL语句\x0d\x0a5.处理ResultSet中的记录集\x0d\x0a6.释放资源\x0d\x0a第一步\x0d\x0a加载驱动程序\x0d\x0a try{ //装载MySQL数据库驱动\x0d\x0a Class.forName("com.mysql.jdbc.Driver")\x0d\x0a }\x0d\x0a catch(ClassNotFoundException e) \x0d\x0a { \x0d\x0a e.printStackTrace()\x0d\x0a }\x0d\x0a注意:在使用JDBC之前,要在文件前导入有关SQL的类即\x0d\x0a import java.sql.*\x0d\x0a第二步\x0d\x0a取得数据库连接\x0d\x0atry{\x0d\x0aString url="jdbc:mysql://localhost:3306/student\x0d\x0aString user="root"\x0d\x0aString password="1234"\x0d\x0acon=DriverManager.getConnection(url,user,password)\x0d\x0a}\x0d\x0acatch(SQLException e)\x0d\x0a{\x0d\x0a e.printStackTrace()\x0d\x0a }\x0d\x0a第三步\x0d\x0a建立Statement 对象\x0d\x0atry{\x0d\x0a Statement sql=con.createStatement()\x0d\x0a }\x0d\x0acatch(SQLException e)\x0d\x0a {\x0d\x0a e.printStackTrace()\x0d\x0a}\x0d\x0a第四步\x0d\x0a执行各种SQL语句\x0d\x0atry{\x0d\x0a ResultSet rs=sql.executeQuery(\x0d\x0a "select * from student")\x0d\x0a }\x0d\x0acatch(SQLException e)\x0d\x0a {\x0d\x0a e.printStackTrace()\x0d\x0a}\x0d\x0a第五步\x0d\x0a获取查询结果\x0d\x0a ResultSet rs=sql.executeQuery(\x0d\x0a "select * from student")\x0d\x0a while(rs.next())\x0d\x0a {\x0d\x0a rs.getString(2)或者是rs.getString("name")\x0d\x0a rs.getInt(3)或者是rs.getInt("age")\x0d\x0a }\x0d\x0a注意\x0d\x0a只有select语句才会有结果集返回;\x0d\x0aResultSet对象一次只能看到一个数据行\x0d\x0a使用next()方法走到下一数据行\x0d\x0a获得一行数据后,ResultSet对象可以使用getXxx()方法获得字段值,将位置索引或字段名传递给get第六步\x0d\x0a关闭创建的各个对象(后打开的先关)\x0d\x0a rs.close()\x0d\x0asql.close()\x0d\x0acon.close()Xxx方法()即可。

在index.jsp中输入如下代码,并配置相应mySQL数据库数据

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@ page import="java.sql.*" %>

<body>

<%

String driver = "com.mysql.jdbc.Driver"

// URL指向要访问的数据库名test1

String url = "jdbc:mysql://127.0.0.1:3306/test"

// MySQL配置时的用户名

String user = "root"

// Java连接MySQL配置时的密码

String password = "111"

try {

// 1 加载驱动程序

Class.forName(driver)

// 2 连接数据库

Connection conn = DriverManager.getConnection(url, user, password)

// 3 用来执行SQL语句

Statement statement = conn.createStatement()

// 要执行的SQL语句

String sql = "select * from login"

ResultSet rs = statement.executeQuery(sql)

String name = null

String mima=null

while (rs.next()) {

name = rs.getString("userName")

mima = rs.getString("passWord")

out.println(name+"\t"+mima)

}

rs.close()

conn.close()

} catch (ClassNotFoundException e) {

System.out.println("Sorry,can`t find the Driver!")

e.printStackTrace()

} catch (SQLException e) {

e.printStackTrace()

} catch (Exception e) {

e.printStackTrace()

}

%>

</body>

12,这样就运行成功了,对于出现8080端口号被占用,可以采用如下的方法进行删除对应的进程

在命令提示符下,输入netstat -aon | findstr 8080

找到对应的进程的PID,假设是7659 再输入如下的命令

taskkill /pid 7659 /F

即可删除对应的进程。

数据库版本:db2

UDB

v7.2

服务器 *** 作系统:aix4.3.3

1、关闭服务器上的web服务;

2、停止jdbc侦听进程db2jd,db2jd一般启动的是6789的端口服务,

先用ps

-ef

|

grep

db2jd

查看到它的进程号

然后用kill

-9

进程号

命令停止

3、在数据库服务器中,进入/usr/lpp/db2_07_01/java12目录,执行./usejdbc2以启用jdbc2;

4、将/usr/lpp/db2_07_01/java12下的db2java.zip拷贝到自己所在web工程的WEB-INFlib下,如果使用的是tomcat,将拷贝后的文件更名为db2java.jar;

5、在服务器上,su

-

数据库实例用户名

执行db2jstrt

6789

(这句启动了db2jd进程,6789是默认的服务器侦听jdbc2连接的端口,也可以设置成另外的任意不冲突的端口。)

6、在自己所建立工程中,建立一个测试的jsp文件,内容如下:

%@

page

contentType=text/html

charset=gb2312

language=java

import=java.sql.*%

html

body

以下是从db2数据库读取的数据:hr

table

border=1

%

Class.forName(COM.ibm.db2.jdbc.net.DB2Driver).newInstance()

Connection

con=java.sql.DriverManager.getConnection(jdbc:db2://192.168.168.2:6789/chaodb,db2inst1,mima)

Statement

stmt=con.createStatement()

ResultSet

rst=stmt.executeQuery(select

username

from

tname)

while(rst.next())

{

out.println(tr)

out.println(td+rst.getString(username)+/td)

out.println(/tr)

}

//关闭连接、释放资源

rst.close()

stmt.close()

con.close()

%

/table

/body

/html

说明:

192.168.168.2是服务器的IP地址;

6789是jdbc2侦听的端口号,需和服务器端设置一致,如果服务器本身用的就是6789,那么程序的这个地方引用时,可省略这个号码。

chaodb是建立在服务器上的一个数据库;

db2inst1是拥有chaodb数据库的实例用户;

mima是实例用户db2inst1的密码;

先在数据库中建立一个表,名字是tname,其中有一列是username,录入一些数据进去。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9928245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存