在j2ee项目中,使用数据源配置,无外乎jdbc和jndi的配置,对于jdbc配置,没有什么好说的,对于jndi的配置,要稍显麻烦一些.这里,阿堂想分三种情况总结一下:第一种是没有用任何框架,第二种是只使用struts框架,第三种是使用struts和hibernate框架整合(ssh时类似).下面,阿堂只说步骤和相关代码,朋友们想使用时,直接复制,稍微改动一下就可以在项目中直接使用了
(以下是指的tomcat5.5环境,在tomcat5.0环境中,在server.xml中的写法,有点不一样,具体请参看阿堂写的在"Tomcat中配置数据源出现问题的解决方法" http://blog.sina.com.cn/s/blog_4c925dca010098u5.html)
第一种情况没有使用任何框架
第一步.在web.xml中配置如下
<description>MYSQL JNDI TEST</description>
<resource-ref>
<description>DB Connection test</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第二步 在tomcat的server.xml文件中配置如下
放在<host></host>之间就可以了
<Context path="/jdniTest080220" debug="0" reloadable="true" privileged="true" docBase="E:\workprojects\jndiTest080220" workDir="E:\workprojects\jndiTest080220\WebRoot">
<Resource
name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/test"
username="root"
password="admin"
maxActive="20"
maxIdle="10"
maxWait="10000" />
</Context>
第三步.在jsp文件具体调用
<%
DataSource ds = null;
try
{
Context initCtx = new InitialContext();
if (initCtx == null) throw new Exception("Initial Failed!");
Context ctx = (Context) initCtx.lookup("java:comp/env");
if (ctx != null) ds = (DataSource) ctx.lookup("jdbc/test");
if (ds == null) throw new Exception("Look up DataSource Failed!");
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
%>
<%
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from student");
while (rs.next())
{
%>
<%=rs.getInt(1) %>:<%=rs.getString(2) %>
<%
}
rs.close();
stmt.close();
conn.close();
%>
在ie中调用方法 http://localhost:8888/jdniTest080220/
第二种情况只使用struts框架
第一步.在tomcat中的server.xml文件中<GlobalNamingResources></GlobalNamingResources>之间添加如下代码
<Resource name="jdbc/sqlserver" auth="Container"
type="javax.sql.DataSource" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=Logis;SelectMethod=Cursor"
username="sa" password="" maxActive="50" maxIdle="4" maxWait="5000"/>
第二步在tomcat对应的如下目录中%tomcat5520%\Catalina\localhost新建一个TmsOrder.xml文件,内容如下
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="TmsOrder" path="/TmsOrder" workDir="work\Catalina\localhost\TmsOrder">
<ResourceLink global="jdbc/sqlserver" name="jdbc/sqlserver" type="javax.sql.DataSourcer"/>
</Context>
第三步在项目中一个公共类中,调用jndi数据源的方法如下
public class GetConnection {
private Connection conn = null;
private DataSource dataSource = null;
private Context ctx = null;
public GetConnection(){}
public Connection getConnection() {
try{
ctx = new InitialContext();
dataSource =(DataSource)ctx.lookup("java:comp/env/jdbc/sqlserver");
conn = dataSource.getConnection();
return conn;
}catch(Exception e){
System.out.println("获得连接池:"+e.getMessage());
return conn;
}
}
public void closeConn() {
try {
if( conn != null ){
conn.close();
}
} catch( SQLException e ) {
e.printStackTrace();
}
}
}
在ie中调用http://localhost:8888/TmsOrder
第三种情况使用struts+hibernate框架(使用ssh时,做法类似)
第一步在hibernate.cfg.xml文件配置如下
<hibernate-configuration>
<session-factory>
<property name="show_sql">true</property>
<property name="connection.datasource">
java:comp/env/jdbc/mldn
</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<mapping resource="cn/mldn/lxh/login6/vo/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>
第二步.在tomcat中的server.xml文件中<GlobalNamingResources></GlobalNamingResources>之间添加如下代码
<Resource name="jdbc/mldn" auth="Container"
type="javax.sql.DataSource" driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/mldn"
username="root" password="admin" maxActive="50" maxIdle="4" maxWait="5000"/>
第三步在tomcat对应的如下目录中%tomcat5520%\Catalina\localhost新建一个SHLogin.xml文件,内容如下
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="TmsOrder" path="/TmsOrder" workDir="work\Catalina\localhost\TmsOrder">
<ResourceLink global="jdbc/sqlserver" name="jdbc/sqlserver" type="javax.sql.DataSourcer"/>
</Context>
第四步.在公共类中调用连接数据源的方法如下
public class DefaultSessionFactory {
public static Session getSession() {
Session session = null;
session = new Configuration().configure().buildSessionFactory().openSession();
return session;
}
}
在ie中调用http://localhost:8888/SHLogin
分享到:
相关推荐
JNDI学习总结,JNDI配置数据源,资料详细,适合初学者
1.1 Apache Tomcat各版本 1.2 Apache Tomcat Versions 1.3 Java事务处理总结 1.4 JavaBean中使用JDBC...1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四种类型 1.25 resource-ref元素
自己总结的三种使用方式,对比来看选择最适合你的方式
这是我平时自己总结的有关做开发时候遇到的JNDI配置相关的问题,不算多,拿出来分享一下
java - 访问数据库学习 在Java开发中,使用JDBC操作数据库的步骤 数据源由来、数据源配置
tomcat_jndi_hibernate 是我总结的一些关于在tomcat下配置jndi数据源的方法,我用的是oracle数据库. 配置好jndi后,用于hibernate时其中也有提到
4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...
4.11.2 使用基于Java类的配置信息启动Spring容器 4.12 不同配置方式比较 4.13 小结 第5章 Spring容器高级主题 5.1 Spring容器技术内幕 5.1.1 内部工作机制 5.1.2 BeanDefinition 5.1.3 InstantiationStrategy 5.1.4 ...
JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的(即无...
前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 ...3.8.2. JNDI绑定的SessionFactory
EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来...
jsp编程的一些小技巧总结,绝对实用。包括JSP编程中常用的js技术。 1.JSP编程中常用的js技术 2. 在下拉列表框里选择一个值后跳出新窗口? 3. 在JSP中启动execl? 4. 两级下拉列表框联动菜单? 5. java中如何把一个目录...
6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 ...
在对由三部分组成的 Spring 系列 的第 1 部分进行总结时,我使用了一个示例,演示了如何通过 Spring IOC 容器注入应用程序的依赖关系(而不是将它们构建进来)。 我用开启在线信用帐户的用例作为起点。对于该实现,...
4.8.2. JNDI绑定的SessionFactory 4.8.3. JTA和Session的自动绑定 4.8.4. JMX部署 5. 持久化类(Persistent Classes) 5.1. 一个简单的POJO例子 5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志...
1. jpivot加入其它应用中 解压jpivot.war 文件,在你的应用...在一个 JSP 页面当中,如果要使用 JPivot 标签库,除了要配置相关的配置文件外,我们需要在 JSP 头的位置声明对 JPivot 标签库的引用,引用方法如下: ...
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
3.8.2. JNDI绑定的SessionFactory 3.8.3. 在JTA环境下使用Current Session context (当前session上下文)管理 3.8.4. JMX部署 4. 持久化类(Persistent Classes) 4.1. 一个简单的POJO例子 4.1.1. 实现一个默认的...
JNDI绑定的SessionFactory 4.8.3. JTA和Session的自动绑定 4.8.4. JMX部署 5. 持久化类(Persistent Classes) 5.1. 一个简单的POJO例子 5.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators...