现在有好多初学JSP的网友经常会此裂问数据库怎运扒卜么连接啊,怎么老出错啊?所以我集中的在这写篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。在练习这些代码的时候,你一定将JDBC的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建
create table test(test1 varchar(20),test2 varchar(20)
然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。
一、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=softpassword=soft1234useUnicode=truecharacterEncoding=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
B. jsp中封装数据库操作,例如数据库连接,条件查询等到javabean中,怎么做
封装到bean里面有点麻烦,等于自己实现简易orm了,况且多表查询时还不好操作,把结果集放到List里面还好
C. 求救!jsp中无法使用自定义的封装数据库操作的类
那没关系的,你在jsp页面中把异常抓上,另外你的数据库连接类写的太复杂了~这样不太好,就返回一个连接的方法就行,还有一个返回查询数据集的方法就可以了~
D. 用JSP的Model2方式开发,连接数据库的代码封装在哪里
通常情况下,如果你使用的是普通jdbc的连接方式,可以创建一个公用类来完成数据库的连接,专你可以视之为属javabean,因为你的连接类会被频繁调用嘛,如果你想采用
持久层
的模式来完成连接数据库与操作数据库的工作,那连接数据库的代码已经封装在持久层框架中,或者说已经被配置好了,以
hibernate
为例,你只需要在servlet中调用实例化的数据连接对象即DAO即可,DAO中应该包含了从数据库的连接(连接参数已经在
配置文件
中准备好了)到完成
数据库操作
的一系列方法。
总之是不建议在servlet中植入数据库连接代码,
耦合度
太高。
E. 在jsp编程中如何连接数据库(jsp与数据库连接)
首先你的机器上得装有一款数据库,通常是Oracle,Mssql,MySQL等,不考虑框架等,jsp中主要是利用jdbc进行连接数据库
1,打开数据库服务(你已经设计好了数据库)
2,在class-path中添加相应或卜缓数据库的连接jar包,3.利用jdbc进行操作
例如:
JDBC-环境设置:
请确认您已完成以下设置:
核心JAVA安装
SQL或MySQL数据库安装
除上述者外,需要建立一个数据库,为本程测试项目使用。假设这是EMP,在同一个数据库上创建表Employees。
创建JDBC应用程序:
参与建立一个JDBC应用程序,本教程中按六个步骤进行:
导入包:
这需要你有软件包包含了数据库编程所需的JDBC类。大多数情况下,使用importjava.sql.*就足够了,如下所示:
//STEP1.Importrequiredpackages
importjava.sql.*;
注册JDBC驱动程序:
这需要初始化驱动程序,这样就可以打开与数据库的通信信衫模道。以下是代码片段实现这一目标:
//STEP2:RegisterJDBCdriver
Class.forName("com.mysql.jdbc.Driver");
打开一个连接:
这需要使用.()方法来创建一个Connection对象,它代表一个物理连接的数据库,如下所示:
//STEP3:Openaconnection
//Databasecredentials
staticfinalStringUSER="username";
staticfinalStringPASS="password";
System.out.println("Connectingtodatabase...");
conn=.(DB_URL,USER,PASS);
执行一个查询:
这需要使用一个对象类型Statement或构建,并提交一个SQL语弊扮句到数据库。如下:
//STEP4:Executeaquery
System.out.println("Creatingstatement...");
stmt=conn.();
Stringsql;
sql="SELECTid,first,last,ageFROMEmployees";
ResultSetrs=stmt.(sql);
如果有一个SQLUPDATE,INSERT或DELETE语句,那么需要下面的代码片段:
//STEP4:Executeaquery
System.out.println("Creatingstatement...");
stmt=conn.();
Stringsql;
sql="DELETEFROMEmployees";
ResultSetrs=stmt.(sql);
从结果集中提取数据:
这一步是必需的情况下,从数据库中获取数据。可以使用适当的ResultSet.getXXX()方法来检索的数据结果如下:
//STEP5:Extractdatafromresultset
while(rs.next()){
//Retrievebycolumnname
intid=rs.getInt("id");
intage=rs.getInt("age");
Stringfirst=rs.getString("first");
Stringlast=rs.getString("last");
//Displayvalues
System.out.print("ID:"id);
System.out.print(",Age:"age);
System.out.print(",First:"first);
System.out.println(",Last:"last);
}
清理环境:
应该明确地关闭所有的数据库资源,对依赖于JVM的垃圾收集如下:
//STEP6:Clean-upenvironment
rs.close();
stmt.close();
conn.close();