(1)在Weblogic服务器上新建一个数据源
登陆Weblogic console,点击左侧域结构的+服务+消息传递里的数据源,新建一个一般数据源:
默认名称为JDBC Data Source-0,数据库类型选择MySQL,下一步:
选择数据库驱动程序,这里我们选择com.mysql.jdbc.Driver,下一步默认,下一步:
这里填写需要连接的MySQL的详细信息,数据库名称、主机名、确认口令。其中端口是默认填写的,一般不需要更改,数据库用户名和口令读的是Weblogic console那里的缓存,需要重新输入。
继续选择下一步,按照提示的内容进行填写就行了。选择目标,勾选默认为AdminServe的服务器,点击完成。如果看到数据源里出现名称为JDBC Data Source-0的数据源,则说明数据源配置成功。
(2)新建一个Web项目,用来访问部署在Weblogic上的数据源,并显示数据库里的内容到JSP页面上的一张表上。
在MyEclipse里新建一个名为JDBCTest的Web项目,导入wlfullclient.jar。
新建一个实体类Student,用来和数据库里的数据表进行对应,代码如下:
package entiry;
public class Student {
private String name;
private int age;
private String sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
在新建一个访问Weblogic数据源的类WeblogicDataSource,代码如下:
package dao;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class WeblogicDataSource {
private static WeblogicDataSource instance= null;
private static Context ctx=null;
private WeblogicDataSource() throws NamingException{
Properties prop=new Properties();
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
prop.setProperty(Context.PROVIDER_URL, "t3://localhost:7001");
ctx=new InitialContext(prop);
}
public DataSource getDataSource()throws NamingException{
DataSource ds=null;
ds=(DataSource)ctx.lookup("JDBC Data Source-0");
return ds;
}
public Connection getConnection() throws NamingException,SQLException{
Connection conn=getDataSource().getConnection();
return conn;
}
public static WeblogicDataSource getInstance() throws NamingException{
if(instance==null){
instance=new WeblogicDataSource();
}
return instance;
}
}
最后建一个调用WeblogicDataSource,返回一个查询数据的List的类Query,代码如下:
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.naming.NamingException;
import entity.Student;
public class Query {
public static List<Student> getList() throws NamingException{
List<Student> list=new ArrayList<Student>();
Connection coon=null;
PreparedStatement psmt=null;
ResultSet rs=null;
String sql="select * from students";
try{
coon=WeblogicDataSource.getInstance().getConnection();
psmt=coon.prepareStatement(sql);
rs=psmt.executeQuery();
while(rs.next()){
Student student=new Student();
student.setAge(rs.getInt("Age"));
student.setName(rs.getString("Name"));
student.setSex(rs.getString("Sex"));
list.add(student);
}
coon.close();
psmt.close();
rs.close();
}catch (SQLException e) {
e.printStackTrace();
}
return list;
}
}
修改index.jsp,在界面上显示一个数据信息的表格:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ page language="java" import="dao.Query,entity.Student" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h3 align="center">这是一个用来显示数据库里数据的表</h3>
<table border="1" align="center">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
</tr>
<% List<Student> list=Query.getList();
for(int i=0;i<list.size();i++)
{
%> <tr>
<td> <%=list.get(i).getName() %></td>
<td> <%=list.get(i).getAge() %></td>
<td> <%=list.get(i).getSex() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
代码编写完成后,采用自动部署到weblogic服务器上,选择项目,Run As ->MyEclipse server Application->Weblogic 10.x(在这之前需要在Myeclipse里配置好Weblogic),当然也可以通过Weblogic console的方式部署web项目,这里就不赘述了。部署好以后如下图:
由于事先在Mysql数据库中建立了相关的数据表,添加了3条记录,如下:
最后通过 http://127.0.0.1:7001/JDBCTest/ 访问部署在Weblogic上的项目,显示如下:
以上就是基于Weblogic12.c的配置连接池,连接数据库,并能通过web项目访问到数据源的实现。希望大家多多指正。