十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在jsp中获得数据源的方法是通过jdbc或者datasource连接到数据库然后获取得到。
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了安丘免费建站欢迎大家使用!
1、jsp页面代码:
%@page contentType="text/html" pageEncoding="UTF-8"%
%@taglib prefix="c" uri=""%
jsp:useBean id="db" class="cc.openhome.DatabaseBean"/
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
""
html
head
meta http-equiv="Content-Type"
content="text/html; charset=UTF-8"
title测试数据库连接/title
/head
body
c:choose
c:when test="${db.connectedOK}"连接成功!/c:when
c:otherwise连接失败!/c:otherwise
/c:choose
/body
/html
2、在tomcat中配置
JDBCDemo context.xml
?xml version="1.0" encoding="UTF-8"?
Context antiJARLocking="true" path="/JDBCDemo"
Resource name="jdbc/demo"
auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000" username="root"
password="123456" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/demo?
useUnicode=truecharacterEncoding=UTF8"/
/Context
3、在java后台实现数据源的连接
import java.io.Serializable;import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
public class DatabaseBean implements Serializable {
private DataSource dataSource;
public DatabaseBean() {
try {
Context initContext = new InitialContext();
Context envContext = (Context)
initContext.lookup("java:/comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/demo");
} catch (NamingException ex) {
throw new RuntimeException(ex);
}
}
public boolean isConnectedOK() {
boolean ok = false;
Connection conn = null;
SQLException ex = null;
try {
conn = dataSource.getConnection();
if (!conn.isClosed()) {
ok = true;
}
} catch (SQLException e) {
ex = e;
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
if(ex == null) {
ex = e;
}
}
}
if(ex != null) {
throw new RuntimeException(ex);
}
}
return ok;
}
}
jdbc数据库连接:1.加载驱动Class.forName(“xxxDriver”)2建立连接:Connection conn= DriverManager.getConnection(url,user,password);(url是连接地址ip端口号和数据库实例名,user用户名,password密码)3获取statement对象:Statement stmt=conn.createStatement();4通过Statement执行Sql语句:stmt.executeQquery(String sql)会返回查询结果集,stmt.executeUpdate(String sql)返回int型,表示影响记录的条数;5处理结果:ResultSet rs=str.executeQuery(String sql);while(rs.next()){
System.out.println(rs.getInt(id));
}
5:关闭数据源:rs.close();
下面是连接各种数据库的方法:
1、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2、DB2数据库
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);
3、Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);
6、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=softpassword=soft1234useUnicode=truecharacterEncoding=8859_1"
//myDB为数据库名
Connection conn= DriverManager.getConnection(url);
7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB"
//myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
8、JDBC-ODBC桥
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:jsp");
jsp为建立的odbc数据源名,事先要先将SQL server的表设置为数据源。在“管理工具”-“数据源odbc”里用系统DNS添加。
8.Oracle8/8i/9i数据库(thin模式)
//import java.sql.*;
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmtNew=conn.createStatement();
9.DB2数据库
//import java.sql.*;
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 stmtNew=conn.createStatement();
10.Sql Server7.0/2000数据库
//import java.sql.*;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db2"; //7.0、2000
String url="jdbc:sqlserver://localhost:1433;DatabaseName=db2"; //2005
//db2为数据库名
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmtNew=conn.createStatement();
11.Sybase数据库
//import java.sql.*;
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
Statement stmtNew=conn.createStatement();
12.Informix数据库
//import java.sql.*;
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB为数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmtNew=conn.createStatement();
13.MySQL数据库
//import java.sql.*;
//Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Class.forName("com.mysql.jdbc.Driver");
//String url ="jdbc:mysql://localhost/myDB?user=softpassword=soft1234useUnicode=truecharacterEncoding=8859_1";
String url ="jdbc:mysql://localhost:3306/myDB";
//myDB为数据库名
Connection conn= DriverManager.getConnection(url,"root","root");
Statement stmtNew=conn.createStatement();
14.PostgreSQL数据库
//import java.sql.*;
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmtNew=conn.createStatement();
15.access数据库直连用ODBC的
//import java.sql.*;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"sa","");
Statement stmtNew=conn.createStatement();
16.程序计时
long time1=System.currentTimeMillis();
long time2=System.currentTimeMillis();
long interval=time2-time1;
17.延时
try {
Thread.sleep(Integer.Parse(%%1));
} catch(InterruptedException e) {
e.printStackTrace();
}
18.连接Excel文件
//import java.sql.*;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:driver={Microsoft Excel Driver (*.xls)};DBQ=D:\\myDB.xls"; // 不设置数据源
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmtNew=conn.createStatement();
你是使用JNDI获得数据源对象的吗?如果是:
1,、配置context.xml文件
Context
Resource name="jdbc/news"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="jbit"
password="dbqn"'
driverClassName="Oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:daataName"
/Context
以上用的是Oracle数据库的驱动和url
你可以换成SQL的
2、配置web.xml文件
resource-ref
res-authContainer/res-auth
res-typejavax.sql.DataSource/res-type
res-ref-namejdbc/news/res-ref-name
/resource-ref
3、添加数据库驱动
4、在javaBean中编写代码,使用lookup()方法获得数据源对象
public class BaseDAO {
private static Connection conn = null;
public static Connection getConnection() {
try {
Context context = new InitialContext();
DataSource ds = (DataSource) context
.lookup("java:comp/env/jdbc/news");
conn = ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
注:lookup("java:comp/env/jdbc/news");
中的参数"java:comp/env/"+数据源名称的形式
如果你要的话我正好有这Struts2的项目我可以给你看看
详情如下:
以JNDI方式创建数据源首先要配置数据源的相关连接信息,也就是数据源连接池。该配置应该在Tomcat安装目录下的conf/context.xml 文件中配置,在Eclipse的J2EE架构下,也可以把context.xml文件创建在/META-INF目录下。
正确的配置后,就可以在程序中以JNDI的方式创建数据源,得到数据库连接并进行相应的操作。