MyEclipse+WebLogic+MySQL数据源的配置图解
2009-07-14 09:55 守护地下铁 百度空间 字号:T | T
MyEclipse+WebLogic+MySQL数据源的配置图解向你详细介绍具体的配置及操作,希望对你MyEclipse+WebLogic+MySQL数据源的配置方面有所帮助。
AD:
51CTO 网+ 第十二期沙龙:大话数据之美_如何用数据驱动用户体验
MyEclipse+WebLogic+MySQL数据源的配置,首先在感觉,在Weblogic的控制台上配置Web应用程序的数据源还是比较简单的。这里作为测试,为了清晰阐述,分为三个标题:测试工程准备、数据源配置、发布测试。
测试工程准备
主要准备测试配置数据源的Java Web工程,工程名称为WeblogicDataSource。
BlogService类通过查找JNDI名字,来获取到的一个数据源(DataSource)的实例,然后通过连接MySQL数据库,从数据库blog的表jblog_article中查询得到记录,返回一个结果的List集合。BlogService.java的源代码如下所示:
1. package org.shirdrn.blog;
2.
3. import java.sql.Connection;
4. import java.sql.ResultSet;
5. import java.sql.Statement;
6. import java.util.ArrayList;
7. import java.util.List;
8.
9. import javax.naming.Context;
10. import javax.naming.InitialContext;
11. import javax.sql.DataSource;
12.
13. import org.shirdrn.blog.entity.Article;
14.
15. public class BlogService {
16.
17. public List getAticles(String sql) throws Exception { // 改方法通过传递一个sql查询来获取数据,将在后面的Servlet中调用
18. new InitialContext();
19. "jdbc/mysql"); // 数据源名称为jdbc/mysql
20. Connection conn = ds.getConnection();
21. Statement stmt = conn.createStatement();
22. ResultSet rs = stmt.executeQuery(sql);
23. new ArrayList();
24. while(rs.next()) {
25. new Article();
26. new Integer(rs.getInt(1)));
27. new Integer(rs.getInt(2)));
28. new Integer(rs.getInt(3)));
29. 4));
30. 5));
31. 6));
32. new Short(rs.getShort(7)));
33. 8));
34. 13));
35. articleList.add(article);
36. }
37. return articleList;
38. }
39. }
上面用到一个实体类Article,实体类代码如下所示:
1. package org.shirdrn.blog.entity;
2.
3. public class Article {
4. private Integer id;
5. private Integer cid;
6. private Integer uid;
7. private String userName;
8. private String title;
9. private String urlName;
10. private Short status;
11. private String password;
12. private String from;
13. private String forumUrl;
14. private String description;
15. private String excerpt;
16. private String content;
17. private String comments;
18. private String views;
19. private Integer dataline;
20. private Boolean isTop;
21. private Boolean isCommend;
22. private Boolean isCheck;
23. private String tags;
24. public Integer getId() {
25. return id;
26. }
27. public void setId(Integer id) {
28. this.id = id;
29. }
30. public Integer getCid() {
31. return cid;
32. }
33. public void setCid(Integer cid) {
34. this.cid = cid;
35. }
36. public Integer getUid() {
37. return uid;
38. }
39. public void setUid(Integer uid) {
40. this.uid = uid;
41. }
42. public String getUserName() {
43. return userName;
44. }
45. public void setUserName(String userName) {
46. this.userName = userName;
47. }
48. public String getTitle() {
49. return title;
50. }
51. public void setTitle(String title) {
52. this.title = title;
53. }
54. public String getUrlName() {
55. return urlName;
56. }
57. public void setUrlName(String urlName) {
58. this.urlName = urlName;
59. }
60. public Short getStatus() {
61. return status;
62. }
63. public void setStatus(Short status) {
64. this.status = status;
65. }
66. public String getPassword() {
67. return password;
68. }
69. public void setPassword(String password) {
70. this.password = password;
71. }
72. public String getFrom() {
73. return from;
74. }
75. public void setFrom(String from) {
76. this.from = from;
77. }
78. public String getForumUrl() {
79. return forumUrl;
80. }
81. public void setForumUrl(String forumUrl) {
82. this.forumUrl = forumUrl;
83. }
84. public String getDescription() {
85. return description;
86. }
87. public void setDescription(String description) {
88. this.description = description;
89. }
90. public String getExcerpt() {
91. return excerpt;
92. }
93. public void setExcerpt(String excerpt) {
94. this.excerpt = excerpt;
95. }
96. public String getContent() {
97. return content;
98. }
99. public void setContent(String content) {
100. this.content = content;
101. }
102. public String getComments() {
103. return comments;
104. }
105. public void setComments(String comments) {
106. this.comments = comments;
107. }
108. public String getViews() {
109. return views;
110. }
111. public void setViews(String views) {
112. this.views = views;
113. }
114. public Integer getDataline() {
115. return dataline;
116. }
117. public void setDataline(Integer dataline) {
118. this.dataline = dataline;
119. }
120. public Boolean getIsTop() {
121. return isTop;
122. }
123. public void setIsTop(Boolean isTop) {
124. this.isTop = isTop;
125. }
126. public Boolean getIsCommend() {
127. return isCommend;
128. }
129. public void setIsCommend(Boolean isCommend) {
130. this.isCommend = isCommend;
131. }
132. public Boolean getIsCheck() {
133. return isCheck;
134. }
135. public void setIsCheck(Boolean isCheck) {
136. this.isCheck = isCheck;
137. }
138. public String getTags() {
139. return tags;
140. }
141. public void setTags(String tags) {
142. this.tags = tags;
143. }
144.
145. }
实现的Servlet也比较简单,Servlet名称GetArticlesServlet,映射名称为getArticles,代码如下所示:
1. package org.shirdrn.servlet;
2.
3. import java.io.IOException;
4. import java.io.PrintWriter;
5. import java.util.List;
6.
7. import javax.servlet.ServletException;
8. import javax.servlet.http.HttpServlet;
9. import javax.servlet.http.HttpServletRequest;
10. import javax.servlet.http.HttpServletResponse;
11. import javax.servlet.http.HttpSession;
12.
13. import org.shirdrn.blog.BlogService;
14.
15. public class GetArticlesServlet extends HttpServlet {
16. public GetArticlesServlet() {
17. super();
18. }
19. public void destroy() {
20. super.destroy();
21. }
22. public void doGet(HttpServletRequest request, HttpServletResponse response)
23. throws ServletException, IOException {
24. doPost(request, response);
25. }
26. public void doPost(HttpServletRequest request, HttpServletResponse response)
27. throws ServletException, IOException {
28. HttpSession session = request.getSession();
29. "select * from jblog_article";
30. new BlogService();
31. null;
32. try {
33. articleList = bs.getAticles(sql);
34. catch (Exception e) {
35. e.printStackTrace();
36. }
37. "articleList", articleList);
38. "listArticles.jsp");
39. }
40. public void init() throws ServletException {
41.
42. }
43. }
相关的显示查询结果的列表页面只有一个,也就是listArticles.jsp,代码如下所示:
1. ﹤%@ page language="java" import="java.util.*" pageEncoding="utf-8"%﹥
2. ﹤%@page import="org.shirdrn.blog.entity.Article"%﹥
3.
4. ﹤!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"﹥
5. ﹤html﹥
6. ﹤head﹥
7. ﹤title﹥博客文章列表页面﹤/title﹥
8. ﹤/head﹥
9. ﹤body﹥
10. ﹤%
11. articleList = (List)session.getAttribute("articleList");
12. %﹥
13. ﹤/body﹥
14. ﹤table style="color:yellow" align="center" bgcolor="green" border="1" borderColor="black"﹥
15. ﹤tr﹥
16. ﹤th﹥ID﹤/th﹥
17. ﹤th﹥CID﹤/th﹥
18. ﹤th﹥UID﹤/th﹥
19. ﹤th﹥用户名﹤/th﹥
20. ﹤th﹥标题﹤/th﹥
21. ﹤/tr﹥
22. ﹤%
23. i=0; i﹤articleList.size(); i++) {
24. a = (Article)articleList.get(i);
25. %﹥
26. ﹤tr﹥
27. ﹤td﹥﹤%=a.getId() %﹥﹤/td﹥
28. ﹤td﹥﹤%=a.getCid() %﹥﹤/td﹥
29. ﹤td﹥﹤%=a.getUid() %﹥﹤/td﹥
30. ﹤td﹥﹤%=a.getUserName() %﹥﹤/td﹥
31. ﹤td﹥﹤%=a.getTitle() %﹥﹤/td﹥
32. ﹤/tr﹥
33. ﹤%} %﹥
34. ﹤/table﹥
35. ﹤/html﹥
对应Java Web工程的应用部署描述文件web.xml内容如下所示:
1. ﹤?xml version="1.0" encoding="UTF-8"?﹥
2. ﹤!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
3. Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"﹥
4. ﹤web-app﹥
5. ﹤servlet﹥
6. ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥
7. ﹤servlet-class﹥
8. org.shirdrn.servlet.GetArticlesServlet
9. ﹤/servlet-class﹥
10. ﹤/servlet﹥
11.
12. ﹤servlet-mapping﹥
13. ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥
14. ﹤url-pattern﹥/getArticles﹤/url-pattern﹥
15. ﹤/servlet-mapping﹥
16. ﹤welcome-file-list﹥
17. ﹤welcome-file﹥index.jsp﹤/welcome-file﹥
18. ﹤/welcome-file-list﹥
19. ﹤/web-app﹥
值得注意的是,这里使用的是web-app 2.3部署描述文件,如果是2.4的,一定会出错的。
配置数据源
在MyEclipse中,配置Server中Weblogic里面的Paths,也就是把数据库的JDBC驱动程序的jar文件加入到CLASSPATH中,我这里使用的是MySQL数据库,对应的JDBC驱动程序版本为mysql-connector-java-5.0.8-bin.jar,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图1
在MyEclipse中编译工程后,先使用MyEclipse的打包工具打成WAR包:
选择Export下的“J2EE”-﹥“WAR file(MyEclipse)”,指定路径,我存放到了D:\bea\user_projects\domains\sndomain\applications\WeblogicDataSource.war下面。
这时候,可以启动Weblogic Server了(前提条件是配置好了Weblogic Server,例如我的是snserver),并登录到Weblogic Console。打开左侧“部署”下的“Web应用程序模块”,可以看到“_appsdir_WeblogicDataSource_dir”,这是因为我在MyEclipse中导出为war文件的时候,直接导出到Weblogic Server的应用程序目录下,自动进行了部署,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图2
可以看到右侧“部署”选项卡中,“部署状态”为可用。
配置数据源,首先要做的就是,配置数据库连接缓冲池;然后是基于改连接池的数据源的配置。
(一)数据库连接池配置
下面是数据库连接池的配置过程:
在左侧导航菜单中,依次打开“服务”-﹥“JDBC”,单击“连接缓冲池”,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图3
单击“配置新的 JDBC连接缓冲池”链接,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图4
配置数据库类型(这里为MySQL)和数据库驱动程序(这里选择com.mysql.jdbc.Driver),单击“继续”按钮,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图5
配置JDBC连接池名称(这里为MySQLcp)、数据库名称(这里为blog)、主机名(这里为localhost)、端口号(这里使用MySQLcp数据库,默认为3306)、数据库用户名(这里为root)、数据库登录口令,然后单击“继续”按钮,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图6
单击“测试驱动程序配置”,测试前面配置的数据库的JDBC驱动程序,如果没有问题,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图7
左上角显示绿色的文字“连接成功”,否则就没有通过配置的测试。单击“创建和部署”按钮,可以看到成功配置的JDBC数据库连接缓冲池,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图8
(二)配置数据源
在左侧导航菜单中,依次打开“服务”-﹥“JDBC”,单击“数据源”,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图9
单击“配置新的JDBC数据源”链接,配置数据源名称(这里为MySQLds)和JNDI名称(这里为jdbc/mysql),如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图10
单击“继续”链接,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图11
可以从下拉列表中选择已经存在的数据库连接池,然后单击“继续”按钮,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图12
单击“创建”按钮,根据刚才配置的数据源选项创建数据源,如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图13
数据源配置完成。
这时,数据源MySQLcp(jdbc/mysql)可以为Web应用提供数据源了。
发布测试
如果Web应用打包后的war文件没有放在Weblogic Server的应用程序目录下,可以在Weblogic Console上进行上传,如果已经放到Weblogic Server的应用程序目录下,可以进行测试了。
打开连接http://192.168.151.201:7001/WeblogicDataSource/getArticles,显示列表如图所示:
MyEclipse+WebLogic+MySQL数据源的配置图14
通过测试,说明上述配置的数据源是存在的,可以为测试的Web应用提供数据源。
那么MyEclipse+WebLogic+MySQL数据源的配置就向你介绍到这里,希望对你有所帮助。
【责任编辑:李彦光