1、jsp是java服务端动态网页技术,主要应用于网页构建,理论上讲不应该在页面中直接连数据库。合理的做法是先构建一个java后端,然后在JAVA后端中通过jdbc连接sqlserver。
2、如果一定要在jsp页面中连数据库也是可以的。jsp中有专门的sql标签可以连接数据库进行操作,这是jstl的内容,需要导入相应的数据库驱动包。
3、jsp的内容相对来说技术难度都不算特别高,学习起来还是比较容易的。
4、希望对你有帮助。祝你学有所得。
㈡ jsp怎么连接sql数据库
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.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class DBPool { private static DataSource pool; static { Context env = null; try { 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放回数据库连接池。
㈢ jsp连接数据库方法(详细的)
上面的给出了jsp内嵌java的最初模式,现在一般是三层结构了即MVC结构,就这个例子我来给你解释下是怎么做的,java对连接数据库提供了统一的接口,各个数据库厂商根据提供的接口规范开发自己的连接方法顺序如下:1、用Class.forName()方法加载驱动:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 黑体部分为数据库厂商自己开发的驱动。2、定义好连接数据库的url地址,连接串Stringurl="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方法。
㈣ JSP连接各类数据库大全
现在有好多初学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
㈤ jsp数据库连接
跟着我做就是了,这个可是我现场测试和编写的哦!!没有任何
(1)把mysql的驱动放到tomcat的lib中 驱动是这个
http://ftp.up.ac.za/pub/windows/MySQL/Downloads/Connector-J/mysql-connector-java-5.1.6.zip
解压后在lib中有mysql-connector-java-5.1.6.jar.把这个文件放到tomcat的lib中5.X的在tomcat/common/lib 6.0在tomcat/lib
(2)建一个很简单的表person就两个字段username和password,数据库名和数据库密码换成你的就是了
create database ibatis;--创建数据库
use ibatis;--使用数据库,以下表在该数据库中
create table person(username varchar(20),password varchar(20));--创建person表
(3)创建index.jsp和regist.jsp
1:
index.jsp 提交表单页面
<%@ page pageEncoding="GBK"%>
<html>
<head>
</head>
<body>
<form action="regist.jsp" method="post">
username :<input type = "text" name="name"/>
password :<input type = "password" name="password"/>
<input type = "submit" value="提交"/>
</form>
</body>
</html>
2:regist.jsp //用户注册同时显示所有用户
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*"%>
<body>
<center>
<%
request.setCharacterEncoding("GBK");
String uname=request.getParameter("name"); //从表单获得
String pwd=request.getParameter("password"); //从表单获得
String driver="com.mysql.jdbc.Driver"; //我用的是mysql官方驱动你自己换一下就是了 在这里有
String url="jdbc:mysql://localhost:3306/ibatis?user=root&password=yanghao"; //这是数据库连接地址Ibatis是数据库名称,user是用户.password就是你的用户名,根据实际情况你修改
String sql="INSERT INTO person (username,password) VALUES('"+uname+"','"+pwd+"')"; //把index.jsp提交的两个数据插进数据库的数据库语句
Connection conn=null; //数据库连接
Statement stmt=null;
ResultSet rs = null; //查询结果
%>
<%
Class.forName(driver); //加载驱动
conn=DriverManager.getConnection(url); //获得连接
stmt=conn.createStatement();
stmt.execute(sql);//存入数据库
rs=stmt.executeQuery("select * from person"); //查询所有person语句
%>
<%
if(rs!=null){ //判断以下
while(rs.next()){
String username=rs.getString(1);
String password=rs.getString(2);
%>
<table>
<tr>
<td><%=username %></td>
<td><%=password %></td>
</tr>
</table>
<%
//关闭数据库连接,和开始的顺序是反的
rs.close();//关闭结果集
stmt.close();//关闭Statement
conn.close();//关闭数据库连接
//ok完成了插入和查询操作
}
}
%>
</center>
</body>
㈥ 教你轻松应对JSP连接MySQL数据库问题
当您面临JSP连接MySQL数据库问题,你首先需要在MySQL数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。
以下用两种方式来实现JSP连接MySql数据库
第一种方式,用JSP实现:
%@ page contentType="text/html;
charset=gb2312" language="java"
import="java.sql.*"%
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
%//*******************************
****************
JDBC_ODBC连接MySql数据库,不需要设置数据源***********
**********************/
//********** 数据库连接代码开始 ******/
//以下几项请自行修改String server="localhost";
//MYSQL 服务器的地址String dbname="test";
//MYSQL 数据库的名字String user="root";
//MYSQL 数据库的登录用户名String pass="chfanwsp";
//MYSQL 数据库的登录密码String port="3306";
//SQL Server 服务器的端口号,
默认为1433//数据库连接字符串
String url ="jdbc:mysql://"+server+":"+port+"/"+dbname+"?
user="+user+"passWord="+pass+"useUnicode
=truecharacterEncoding=GB2312";
//加载驱动程序Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//建立连接Connection conn= DriverManager.getConnection(url);
//创建语句对象Statement stmt=conn.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// **** 数据库连接旅磨代码结束 ******* String sql="select * from username";
ResultSet rs=stmt.executeQuery(sql);
//rs.first();while(rs.next()){out.print("用户名:");
out.print(rs.getString("uid")+" 密码:");
out.println(rs.getString("pwd")+"br");}
rs.close();stmt.close();conn.close();%
第二种方式,用JavaBean来实现:
DBConnMySql.java编译以后的Class文件应该放在Web-INFclassesconn目录下。
package conn; //导入包import java.sql.*;
//导入数据库操作的类public class DBConnMySql
//构造方法,拆察斗初始化{private Connection conn;
//连接对象private Statement stmt;
//语句对象private ResultSet rs;
//结果集对象private String MySqldriver;
//MYSQL Server驱动程序字符串private String MySqlURL;
//MYSQL Server连接字符串//*********************************
用 org.gjt.mm.mysql.Driver 驱动
* 该方没腊法取得连接所需各种参数,组成连接字符串,
然后再建立连接* server;dbname,user,pass,port
分别表示MYSQL 服务器的地址,
* 数据库,用户名,密码,端口
**********************************/
public Connection getConnToMySql
(String server,String dbname,String user,String pass,String port)
{//MYSQl驱动程序MySqldriver = "org.gjt.mm.mysql.Driver";
MySqlURL = "jdbc:mysql://";
//连接字符串一部分try{//完整的连接字符串MySqlURL
=MySqlURL+server+":"+port+"/"+dbname+"?user=
"+user+"password="+pass+"useUnicode
=truecharacterEncoding=GB2312";
Class.forName(MySqldriver);conn
= DriverManager.getConnection(MySqlURL);}
catch(Exception e){System.out.println
("操作数据库出错,请仔细检查");
//System.err.println(e.getMessage());}return conn;}
//关闭数据库连接public void close(){try{//rs.close();
//stmt.close();conn.close();}catch(SQLException
sqlexception){sqlexception.printStackTrace();}}}
这个文件只是实现了数据库的连接,下面再写一个测试文件,就是用SQL语句从数据库里查询出记录,以验证我们数据库的连接是否成功。
connmysql.jsp文件源代码如下:
meta http-equiv="Content-Type" content="text/html;
charset=gb2312"%@ page contentType="text/html;
charset=gb2312" language="java" import="java.sql.*" %
jsp:useBean id="DBConn" scope="page" class="conn.DBConnMySql"/
% //以下几项请自行修改String server="localhost";
//MYSQL 服务器的地址String dbname="test";
//MYSQL 数据库的名字String user="root";
//MYSQL 数据库的登录用户名String pass="chfanwsp";
//MYSQL 数据库的登录密码String port="3306";
//SQL Server 服务器的端口号,默认为1433Connection
conn=DBConn.getConnToMySql
(server,dbname,user,pass,port);
Statement stmt=conn.createStatement
(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String sql="select * from username";
String sql1="insert into username (uid,pwd) values
('梦想年华','梦想年华')";stmt.executeUpdate(sql1);
ResultSet rs=stmt.executeQuery(sql);while(rs.next())
{out.print("用户名:");out.print(rs.getString("uid")+" 密码:");
out.println(rs.getString("pwd")+"br");}
//rs.close();//stmt.close();//conn.close();DBConn.close();%
㈦ 在jsp编程中如何连接数据库
用JDBC技术x0dx0a创建数据库连接,分为以下几步:x0dx0a1.装载并注册数据库的JDBC驱动程序x0dx0a2.取得数据库连接x0dx0a3.建立Statement 对象x0dx0a4.准备并执行调用SQL语句x0dx0a5.处理ResultSet中的记录集x0dx0a6.释放资源x0dx0a第一步x0dx0a加载驱动程序x0dx0a try{ //装载MySQL数据库驱动x0dx0a Class.forName("com.mysql.jdbc.Driver");x0dx0a }x0dx0a catch(ClassNotFoundException e) x0dx0a { x0dx0a e.printStackTrace();x0dx0a }x0dx0a注意:在使用JDBC之前,要在文件前导入有关SQL的类即x0dx0a import java.sql.*x0dx0a第二步x0dx0a取得数据库连接x0dx0atry{x0dx0aString url="jdbc:mysql://localhost:3306/student;x0dx0aString user="root";x0dx0aString password="1234";x0dx0acon=DriverManager.getConnection(url,user,password);x0dx0a}x0dx0acatch(SQLException e)x0dx0a{x0dx0a e.printStackTrace();x0dx0a }x0dx0a第三步x0dx0a建立Statement 对象x0dx0atry{x0dx0a Statement sql=con.createStatement();x0dx0a }x0dx0acatch(SQLException e)x0dx0a {x0dx0a e.printStackTrace();x0dx0a }x0dx0a第四步x0dx0a执行各种SQL语句x0dx0atry{x0dx0a ResultSet rs=sql.executeQuery(x0dx0a "select * from student");x0dx0a }x0dx0acatch(SQLException e)x0dx0a {x0dx0a e.printStackTrace();x0dx0a }x0dx0a第五步x0dx0a获取查询结果x0dx0a ResultSet rs=sql.executeQuery(x0dx0a "select * from student");x0dx0a while(rs.next())x0dx0a {x0dx0a rs.getString(2)或者是rs.getString("name");x0dx0a rs.getInt(3)或者是rs.getInt("age");x0dx0a }x0dx0a注意x0dx0a只有select语句才会有结果集返回;x0dx0aResultSet对象一次只能看到一个数据行x0dx0a使用next()方法走到下一数据行x0dx0a获得一行数据后,ResultSet对象可以使用getXxx()方法获得字段值,将位置索引或字段名传递给get第六步x0dx0a关闭创建的各个对象(后打开的先关)x0dx0a rs.close();x0dx0a sql.close();x0dx0a con.close();Xxx方法()即可。
㈧ jsp如何连接数据库
1、先打开我们编辑运行JSP的开发环境,我们新建一个java web项目。