仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 361|回复: 8
打印 上一主题 下一主题

[学习教程] JAVA网页设计用JNDI绑定tomcat数据源

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如模式、敏捷方法什么的,这些思想好,但是实施的人没有理解而且没有正确运用这些知识导致了开发周期的延长。比如说对象,通过getName()方法不能获取对象的名字。数据|数据源jsp开辟中挪用tomcat数据库毗连池,大概良多伴侣城市,上面这段代码信任用过的人都很熟习:list1:testpool.jsp
<%
InitialContextctx=newInitialContext();
DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysql");
Connectionconn=ds.getConnection();
Statementstmt=conn.createStatement();

StringstrSql="select*fromt_user";
ResultSetrs=stmt.executeQuery(strSql);
......
stmt.close();
rs.close();
conn.close();
%>
可是很多人不知tomcat启动时,用jndi对数据源做了绑定,以是就不晓得怎样在j2se顶用main函数挪用这个数据源,实在,只需把testpool.jsp做一点修改:
InitialContextctx=newInitialContext();
Objecto=ctx.lookup("java:comp/env/hibernate");
out.print("class="+o.getClass().getName());
DataSourceds=(DataSource)o;
.......
即使用反射API打印出这个已注册到jndi中数据源对象的class全名,就会晓得本来数据源是一个“org.apache.commons.dbcp.BasicDataSource”对象,这个class就在%Tomcat%commonlib下commons-dbcp-1.2.1.jar包里,与其联系关系的另有commons-collections-3.1.jar、commons-pool-1.2.jar。
把以上三个包到场以后的事情情况,用上面这段代码便可挪用毗连池了。我用的是mysql数据库,请在调试时到场mysql的jdbc驱动和%Tomcat%commonlib下的naming-java.jar
publicstaticvoidmain(String[]args)throwsHibernateException{
try{
BasicDataSourcebdds=newBasicDataSource();
//设置数据库驱动
bdds.setDriverClassName("org.gjt.mm.mysql.Driver");
//设置JDBC的URL
bdds.setUrl("jdbc:mysql://localhost/sample");
bdds.setUsername("root");
bdds.setPassword("1234");
//设置毗连池初始巨细
bdds.setInitialSize(2);

//JNDI设置
Hashtableenv=newHashtable();
env.put("java.naming.factory.initial","org.apache.naming.java.javaURLContextFactory");
InitialContextctx=newInitialContext(env);

//数据源绑定到JNDI
ctx.bind("tomcatDS",bdds);
//在JNDI查找数据源
DataSourceds=(DataSource)ctx.lookup("tomcatDS");

Connectioncon=ds.getConnection();
Statementstmt=con.createStatement();
StringstrSql="select*fromuser";
ResultSetrs=stmt.executeQuery(strSql);
while(rs.next()){
System.out.println("id="+rs.getString(1));
}
rs.close();
stmt.close();
con.close();
}catch(Exceptionex){
System.out.print(ex.toString());
}
}

net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。
山那边是海 该用户已被删除
沙发
发表于 2015-1-20 15:53:49 来自手机 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
爱飞 该用户已被删除
板凳
发表于 2015-1-29 12:47:20 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
若相依 该用户已被删除
地板
发表于 2015-2-3 11:42:37 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
再见西城 该用户已被删除
5#
发表于 2015-2-8 20:25:40 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-26 04:27:34 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
只想知道 该用户已被删除
7#
发表于 2015-3-8 11:56:37 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-15 22:26:53 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
兰色精灵 该用户已被删除
9#
发表于 2015-3-22 17:09:40 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-27 21:28

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表