从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; } }
相关文章推荐
- 建立lotus连接tomcat 的数据库连接池
- Tomcat配置数据库、连接池、数据源
- 在tomcat下建立虚拟站点并配置mysql连接池
- 配置Tomcat的数据库连接池
- Tomcat 的数据库连接池设置与应用(Mysql篇)(1)
- 基于tomcat5.5的数据库连接池环境设置(省的以后找系列)
- Tomcat5.5.x的数据库连接池的配置与Tomcat5.0.X不同
- [原创]在JAVA环境下建立数据库连接池
- Tomcat 的数据库连接池设置与应用
- 从数据库中读数据建立菜单
- Eclipse+TomCat+MySQL配置数据库连接池
- Tomcat 5.0.28 MySQL 5 连接池的建立(转)
- 一种使用递归从数据库读取数据来动态建立菜单的方法
- 基于tomcat5.5的数据库连接池环境设置(个人总结)
- 如何建立一个与现存数据库相同,但不包含数据的空库?
- Tomcat4+Oracle的数据库连接池配置
- tomcat配置数据库连接池 [摘抄]
- Tomcat jndi 数据库配置 连接池配置
- Tomcat 的数据库连接池设置与应用
- Tomcat 5.0.28 MySQL 5 连接池的建立