您的位置:首页 > 运维架构 > Tomcat

从tomcat建立连接池从数据库取数据

2017-03-29 19:05 260 查看
public final static String[] domain = {"http://localhost:8096"};
JDBC的代码配置:

<!-- 舆情之Maven2.0 -->
<Service name="labourunion">
<Connector port="8096" maxHttpHeaderSize="8906"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="utf-8" useBodyEncodingForURI="true" />
<Engine name="labourunion" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
<Host name="localhost" appBase="">
<Context path="" docBase="c:\Workspaces\MyEclipse10\labourunion\target\labourunion"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/union" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="****" password="****" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://*.*.*.*:3306/center?autoReconnect=true&characterEncoding=utf-8"/>
</Context>
</Host>
</Engine>
</Service>

package com.jiupaicn.labourunion.common;

import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

/**
* 数据库连接工具类
*/
public class DBConnection {

/**
* 取得舆库链接
* @return
*/
public static Connection getConnection(){
try{
Connection con = null;
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
DataSource connectionPool = (DataSource)envCtx.lookup("jdbc/union");
con = connectionPool.getConnection();
return con;
}catch(Exception ex){
ex.printStackTrace();
return null;
}
}
}

package com.jiupaicn.labourunion.dao;

import java.sql.Connection;
import java.sql.ResultSet;

/**
* 通过jdbc从数据的排序问题
* @author dxh
*
*/
public interface JDBCMapper {
Connection getConnection();

void closeAll();

ResultSet queryMethod(String sql,Object[]param);

Boolean updateOrDelete(String sql,Object[]param);
}

package com.jiupaicn.labourunion.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.jiupaicn.labourunion.common.DBConnection;
import com.jiupaicn.labourunion.dao.JDBCMapper;

public class JDBCMapperImpl implements JDBCMapper {

private Connection conn=null;
private PreparedStatement pstmt=null;
private ResultSet rs=null;

@Override
public Connection getConnection() {
conn =  DBConnection.getConnection();
return conn;
}

@Override
public void closeAll() {

try {
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

@Override
public ResultSet queryMethod(String sql, Object[] param) {
getConnection();
try {
pstmt=conn.prepareStatement(sql);
if(pstmt!=null){
for(int i=0;i<param.length;i++){
pstmt.setObject(i+1,param[i]);
}
rs=pstmt.executeQuery();
}
return rs;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}

@Override
public Boolean updateOrDelete(String sql, Object[] param) {
getConnection();
int i=0;

try {
pstmt=conn.prepareStatement(sql);
for(int j=0;j<param.length;j++){
pstmt.setObject(i+1,param[i]);
}
i=pstmt.executeUpdate();
if(i>=0){
return true;
}else{
return false;
}
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}

package com.jiupaicn.labourunion.service;

import java.util.Map;
import java.util.concurrent.ConcurrentMap;

/**
* 通过jdbc从数据排序问题方法
* @author dxh
*
*/
public interface MonitorpersonService {

//查询排序领导人物,通过传递
ConcurrentMap<Integer,String> sortLeaderMapQuery(Map<Integer, String> leaderMap);
}

package com.jiupaicn.labourunion.service.impl;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;

import org.springframework.stereotype.Service;

import com.jiupaicn.labourunion.dao.JDBCMapper;
import com.jiupaicn.labourunion.dao.impl.JDBCMapperImpl;
import com.jiupaicn.labourunion.service.MonitorpersonService;

/**
* 实现jdbc查询的方法
* @author dxh
*
*/
@Service("monitorService")
public class MonitorpersonServiceImpl implements  MonitorpersonService{

JDBCMapper jdbcMapper = new  JDBCMapperImpl();

@Override
public ConcurrentMap<Integer, String> sortLeaderMapQuery( Map<Integer, String> leaderMap) {
ConcurrentMap<Integer,String> monitorSortMap = new ConcurrentHashMap <Integer,String>();
try {
//取出id组成数组
StringBuilder ids = new StringBuilder();
Set<Integer> leaderId = leaderMap.keySet();
ids.append("(");
int i =leaderId.size();
for(Integer lids: leaderId){
if(i == 1){
ids.append(lids +")");
}else{
ids.append(lids+",");
}
--i;
};
//拼接成sql
StringBuilder query = new StringBuilder();
query.append("SELECT p.id, p.name ");
query.append(" FROM ");
query.append("_center.people");
query.append(" p WHERE p.id IN ");
query.append(ids);
query.append(" ORDER BY ");
query.append(" p.sort DESC ");
//传递一个空参
Object [] param = {};
ResultSet rs=jdbcMapper.queryMethod(query.toString(), param);
while (rs.next()){
monitorSortMap.put(rs.getInt("id"), rs.getString("name"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
jdbcMapper.closeAll();
}
return monitorSortMap;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat 数据库 jdbc