MyEclipse+WebLogic+MySQL数据源如何配置
小编给大家分享一下MyEclipse+WebLogic+MySQL数据源如何配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
MyEclipse+WebLogic+MySQL数据源的配置,首先在感觉,在Weblogic的控制台上配置Web应用程序的数据源还是比较简单的。这里作为测试,为了清晰阐述,分为三个标题:测试工程准备、数据源配置、发布测试。
测试工程准备
主要准备测试配置数据源的Java Web工程,工程名称为WeblogicDataSource。
BlogService类通过查找JNDI名字,来获取到的一个数据源(DataSource)的实例,然后通过连接MySQL数据库,从数据库blog的表jblog_article中查询得到记录,返回一个结果的List集合。BlogService.java的源代码如下所示:
package org.shirdrn.blog; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; import org.shirdrn.blog.entity.Article; public class BlogService { public List getAticles(String sql) throws Exception { // 改方法通过传递一个sql查询来获取数据,将在后面的Servlet中调用 Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/mysql"); // 数据源名称为jdbc/mysql Connection conn = ds.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); List articleList = new ArrayList(); while(rs.next()) { Article article = new Article(); article.setId(new Integer(rs.getInt(1))); article.setCid(new Integer(rs.getInt(2))); article.setUid(new Integer(rs.getInt(3))); article.setUserName(rs.getString(4)); article.setTitle(rs.getString(5)); article.setUrlName(rs.getString(6)); article.setStatus(new Short(rs.getShort(7))); article.setPassword(rs.getString(8)); article.setContent(rs.getString(13)); articleList.add(article); } return articleList; } }
上面用到一个实体类Article,实体类代码如下所示:
package org.shirdrn.blog.entity; public class Article { private Integer id; private Integer cid; private Integer uid; private String userName; private String title; private String urlName; private Short status; private String password; private String from; private String forumUrl; private String description; private String excerpt; private String content; private String comments; private String views; private Integer dataline; private Boolean isTop; private Boolean isCommend; private Boolean isCheck; private String tags; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getCid() { return cid; } public void setCid(Integer cid) { this.cid = cid; } public Integer getUid() { return uid; } public void setUid(Integer uid) { this.uid = uid; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getUrlName() { return urlName; } public void setUrlName(String urlName) { this.urlName = urlName; } public Short getStatus() { return status; } public void setStatus(Short status) { this.status = status; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getForumUrl() { return forumUrl; } public void setForumUrl(String forumUrl) { this.forumUrl = forumUrl; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getExcerpt() { return excerpt; } public void setExcerpt(String excerpt) { this.excerpt = excerpt; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getComments() { return comments; } public void setComments(String comments) { this.comments = comments; } public String getViews() { return views; } public void setViews(String views) { this.views = views; } public Integer getDataline() { return dataline; } public void setDataline(Integer dataline) { this.dataline = dataline; } public Boolean getIsTop() { return isTop; } public void setIsTop(Boolean isTop) { this.isTop = isTop; } public Boolean getIsCommend() { return isCommend; } public void setIsCommend(Boolean isCommend) { this.isCommend = isCommend; } public Boolean getIsCheck() { return isCheck; } public void setIsCheck(Boolean isCheck) { this.isCheck = isCheck; } public String getTags() { return tags; } public void setTags(String tags) { this.tags = tags; } }
实现的Servlet也比较简单,Servlet名称GetArticlesServlet,映射名称为getArticles,代码如下所示:
package org.shirdrn.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.shirdrn.blog.BlogService; public class GetArticlesServlet extends HttpServlet { public GetArticlesServlet() { super(); } public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); String sql = "select * from jblog_article"; BlogService bs = new BlogService(); List articleList = null; try { articleList = bs.getAticles(sql); } catch (Exception e) { e.printStackTrace(); } session.setAttribute("articleList", articleList); response.sendRedirect("listArticles.jsp"); } public void init() throws ServletException { } }
相关的显示查询结果的列表页面只有一个,也就是listArticles.jsp,代码如下所示:
﹤%@ page language="java" import="java.util.*" pageEncoding="utf-8"%﹥ ﹤%@page import="org.shirdrn.blog.entity.Article"%﹥ ﹤!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"﹥ ﹤html﹥ ﹤head﹥ ﹤title﹥博客文章列表页面﹤/title﹥ ﹤/head﹥ ﹤body﹥ ﹤% List articleList = (List)session.getAttribute("articleList"); %﹥ ﹤/body﹥ ﹤table style="color:yellow" align="center" bgcolor="green" border="1" borderColor="black"﹥ ﹤tr﹥ ﹤th﹥ID﹤/th﹥ ﹤th﹥CID﹤/th﹥ ﹤th﹥UID﹤/th﹥ ﹤th﹥用户名﹤/th﹥ ﹤th﹥标题﹤/th﹥ ﹤/tr﹥ ﹤% for(int i=0; i﹤articleList.size(); i++) { Article a = (Article)articleList.get(i); %﹥ ﹤tr﹥ ﹤td﹥﹤%=a.getId() %﹥﹤/td﹥ ﹤td﹥﹤%=a.getCid() %﹥﹤/td﹥ ﹤td﹥﹤%=a.getUid() %﹥﹤/td﹥ ﹤td﹥﹤%=a.getUserName() %﹥﹤/td﹥ ﹤td﹥﹤%=a.getTitle() %﹥﹤/td﹥ ﹤/tr﹥ ﹤%} %﹥ ﹤/table﹥ ﹤/html﹥
对应Java Web工程的应用部署描述文件web.xml内容如下所示:
﹤?xml version="1.0" encoding="UTF-8"?﹥ ﹤!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"﹥ ﹤web-app﹥ ﹤servlet﹥ ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥ ﹤servlet-class﹥ org.shirdrn.servlet.GetArticlesServlet ﹤/servlet-class﹥ ﹤/servlet﹥ ﹤servlet-mapping﹥ ﹤servlet-name﹥GetArticlesServlet﹤/servlet-name﹥ ﹤url-pattern﹥/getArticles﹤/url-pattern﹥ ﹤/servlet-mapping﹥ ﹤welcome-file-list﹥ ﹤welcome-file﹥index.jsp﹤/welcome-file﹥ ﹤/welcome-file-list﹥ ﹤/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数据源如何配置"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!