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

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

用JDBC技术

创建数据库连接,分为以下几步:

1.装载并注册数据库的JDBC驱动程序

2.取得数据库连接

3.建立Statement 对象

4.准备并执行调用SQL语句

5.处理ResultSet中的记录集

6.释放资源

第一步

加载驱动程序

try{ //装载MySQL数据库驱动

Class.forName("com.mysql.jdbc.Driver")

}

catch(ClassNotFoundException e)

{

e.printStackTrace()

}

注意:在使用JDBC之前,要在文件前导入有关SQL的类即

import java.sql.*

第二步

取得数据库连接

try{

String url="jdbc:mysql://localhost:3306/student

String user="root"

String password="1234"

con=DriverManager.getConnection(url,user,password)

}

catch(SQLException e)

{

e.printStackTrace()

}

第三步

建立Statement 对象

try{

Statement sql=con.createStatement()

}

catch(SQLException e)

{

e.printStackTrace()

}

第四步

执行各种SQL语句

try{

ResultSet rs=sql.executeQuery(

"select * from student")

}

catch(SQLException e)

{

e.printStackTrace()

}

第五步

获取查询结果

ResultSet rs=sql.executeQuery(

"select * from student")

while(rs.next())

{

rs.getString(2)或者是rs.getString("name")

rs.getInt(3)或者是rs.getInt("age")

}

注意

只有select语句才会有结果集返回;

ResultSet对象一次只能看到一个数据行

使用next()方法走到下一数据行

获得一行数据后,ResultSet对象可以使用getXxx()方法获得字段值,将位置索引或字段名传递给get第六步

关闭创建的各个对象(后打开的先关)

rs.close()

sql.close()

con.close()Xxx方法()即可。

首先你的机器上得装有一款数据库,通常是Oracle,Ms sql,MySQL等,不考虑框架等,jsp中主要是利用jdbc进行连接数据库

1,打开数据库服务(你已经设计好了数据库)

2,在class-path中添加相应数据库的连接jar包,

3.利用jdbc进行 *** 作

例如:

JDBC - 环境设置:

请确认您已完成以下设置:

核心JAVA安装

SQL 或 MySQL数据库安装

除上述者外,需要建立一个数据库,为本程测试项目使用。假设这是EMP,在同一个数据库上创建表Employees。

创建JDBC应用程序:

参与建立一个JDBC应用程序,本教程中按六个步骤进行:

导入包:

这需要你有软件包包含了数据库编程所需的JDBC类。大多数情况下,使用import java.sql.* 就足够了,如下所示:

//STEP 1. Import required packages

import java.sql.*

注册JDBC驱动程序:

这需要初始化驱动程序,这样就可以打开与数据库的通信信道。以下是代码片段实现这一目标:

//STEP 2: Register JDBC driver

Class.forName("com.mysql.jdbc.Driver")

打开一个连接:

这需要使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个物理连接的数据库,如下所示:

//STEP 3: Open a connection

// Database credentials

static final String USER = "username"

static final String PASS = "password"

System.out.println("Connecting to database...")

conn = DriverManager.getConnection(DB_URL,USER,PASS)

执行一个查询:

这需要使用一个对象类型Statement或PreparedStatement构建,并提交一个SQL语句到数据库。如下:

//STEP 4: Execute a query

System.out.println("Creating statement...")

stmt = conn.createStatement()

String sql

sql = "SELECT id, first, last, age FROM Employees"

ResultSet rs = stmt.executeQuery(sql)

如果有一个SQL UPDATE,INSERT或DELETE语句,那么需要下面的代码片段:

//STEP 4: Execute a query

System.out.println("Creating statement...")

stmt = conn.createStatement()

String sql

sql = "DELETE FROM Employees"

ResultSet rs = stmt.executeUpdate(sql)

从结果集中提取数据:

这一步是必需的情况下,从数据库中获取数据。可以使用适当的ResultSet.getXXX()方法来检索的数据结果如下:

//STEP 5: Extract data from result set

while(rs.next()){

//Retrieve by column name

int id = rs.getInt("id")

int age = rs.getInt("age")

String first = rs.getString("first")

String last = rs.getString("last")

//Display values

System.out.print("ID: " + id)

System.out.print(", Age: " + age)

System.out.print(", First: " + first)

System.out.println(", Last: " + last)

}

清理环境:

应该明确地关闭所有的数据库资源,对依赖于JVM的垃圾收集如下:

//STEP 6: Clean-up environment

rs.close()

stmt.close()

conn.close()

1.将数据库驱动程序的JAR文件放在Tomcat的 common/lib 中; 2.在server.xml中设置数据源,以MySQL数据库为例,如下: 在 节点中加入, 属性说明:name,数据源名称,通常取”jdbc/XXX”的格式; type,”javax.sql.DataSource”password,数据库用户密码; driveClassName,数据库驱动; maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连 接将被标记为不可用,然后被释放。设为0表示无限制。 MaxActive,连接池的最大数据库连接数。设为0表示无限制。 maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示 无限制。 3.在你的web应用程序的web.xml中设置数据源参考,如下: 在节点中加入, MySQL DB Connection Pool jdbc/DBPool javax.sql.DataSource Container Shareable 子节点说明: description,描述信息; res-ref-name,参考数据源名字,同上一步的属性name; res-type,资源类型,”javax.sql.DataSource”; res-auth,”Container”; res-sharing-scope,”Shareable”; 4.在web应用程序的context.xml中设置数据源链接,如下: 在节点中加入, 属性说明:name,同第2步和第3步的属性name值,和子节点res-ref-name值; type,同样取”javax.sql.DataSource”; global,同name值。 至此,设置完成,下面是如何使用数据库连接池。 1.建立一个连接池类,DBPool.java,用来创建连接池,代码如下: import javax.naming.Contextimport javax.naming.InitialContextimport javax.naming.NamingExceptionimport javax.sql.DataSourcepublic class DBPool { private static DataSource poolstatic { Context env = nulltry { env = (Context) new InitialContext().lookup("java:comp/env")pool = (DataSource)env.lookup("jdbc/DBPool")if(pool==null) System.err.println("'DBPool' is an unknown DataSource")} catch(NamingException ne) { ne.printStackTrace()} } public static DataSource getPool() { return pool} } 2.在要用到数据库 *** 作的类或jsp页面中,用DBPool.getPool().getConnection(),获得一个Connection对象,就可以进行数据库 *** 作,最后别忘了对Connection对象调用close()方法,注意:这里不会关闭这个Connection,而是将这个Connection放回数据库连接池。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存