⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cronsdaoimpl.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
字号:
package cn.jsprun.dao.impl;

import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

import cn.jsprun.dao.CronsDao;
import cn.jsprun.domain.Crons;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.HibernateUtil;

public class CronsDaoImpl implements CronsDao {
	private static final String tablepre = "jrun_";
	public boolean addCrons(Crons crons) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			session.save(crons);
			ts.commit();
			return true;
		} catch (HibernateException e) {
			if(ts!=null){
				ts.rollback();
			}
			e.printStackTrace();
			return false;
		}
	}
	public boolean delAnyCrons(List<Crons> cronsListDelete) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			int len = cronsListDelete.size();
			for(int i=0;i<len;i++){
				session.delete(cronsListDelete.get(i));
			}
			ts.commit();
			return true;
		} catch (HibernateException e) {
			if(ts!=null){
				ts.rollback();
			}
			e.printStackTrace();
			return false;
		}
	}
	
	public Crons queryCronsById(Short id) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			Crons crons = (Crons) session.get(Crons.class, id);
			ts.commit();
			return crons;
		} catch (HibernateException e) {
			if(ts!=null){
				ts.rollback();
			}
			e.printStackTrace();
		}
		return null;
	}
	
	@SuppressWarnings("unchecked")
	public List<Crons> queryAllCrons() {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction ts = null;
		List<Crons> cronsList = null;
		try {
			ts = session.beginTransaction();
			cronsList = session.createQuery("from Crons").list();
			ts.commit();
			
		} catch (HibernateException e) {
			if(ts!=null){
				ts.rollback();
			}
			e.printStackTrace();
		}
		return cronsList;
	}
	
	@SuppressWarnings("unchecked")
	public List<Crons> queryCronsByCondition(String sqlStatement) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			List<Crons> cronsList = session.createSQLQuery(sqlStatement).addEntity(Crons.class).list();
			ts.commit();
			return cronsList;
		} catch (HibernateException e) {
			if(ts!=null){
				ts.rollback();
			}
			e.printStackTrace();
		}
		
		return null;
	}
	
	public boolean updateCrons(Crons crons) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			session.update(crons);
			ts.commit();
			return true;
		} catch (HibernateException e) {
			if(ts!=null){
				ts.rollback();
			}
			e.printStackTrace();
		}
		return false;
	}
	
	public boolean updateCrons(List<Crons> cronsList) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			Iterator<Crons> cronsIt = cronsList.iterator();
			Crons crons = null;
			while(cronsIt.hasNext()){
				crons = cronsIt.next();
				session.update(crons);
			}
			ts.commit();
			return true;
		} catch (HibernateException e) {
			if(ts!=null){
				ts.rollback();
			}
			e.printStackTrace();
			return false;
		}
	}
	
	
	public Connection getConnection() throws Exception{
		Properties properties = new Properties();
		InputStream fis = new FileInputStream(Common.decode(Thread.currentThread().getContextClassLoader().getResource("../../config.properties").getPath()));
		properties.load(fis);
		fis.close();
		String dbhost=properties.getProperty("dbhost");
		String dbport=properties.getProperty("dbport");
		String dbname=properties.getProperty("dbname");
		String dbuser=properties.getProperty("dbuser");
		String dbpw=properties.getProperty("dbpw");
		Class.forName("com.mysql.jdbc.Driver");
		Connection connection = DriverManager.getConnection("jdbc:mysql://"+dbhost+":"+dbport+"/"+dbname,dbuser,dbpw);
		connection.setAutoCommit(false);
		return connection;
	}
	
	public void begingTransaction(Connection connection ,int level) throws SQLException{
		try {
			connection.setTransactionIsolation(level);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public List<Map<String,String>> getRunningCronsInfo(Connection connection,int timestamp) throws SQLException{
		List<Map<String,String>> tempML = new ArrayList<Map<String,String>>();
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		try {
			pstmt = connection.prepareStatement("SELECT cronid,name,filename,weekday,day,hour,minute FROM "+tablepre+"crons WHERE available>'0' AND nextrun<='"+timestamp+"'");
			rs = pstmt.executeQuery();
			ResultSetMetaData rsmd=rs.getMetaData();
			int columnCount=rsmd.getColumnCount();
			String []columns=new String[columnCount];
			for(int i=1;i<=columnCount;i++){
				columns[i-1]=rsmd.getColumnLabel(i);
			}
			rsmd=null;
			Map<String,String> row=null;
			while (rs.next()){
				row=new HashMap<String,String>(columnCount);
				for (int i=1;i<=columnCount;i++) {
					row.put(columns[i-1],rs.getString(i));
				}
				tempML.add(row);				
			}
			row=null;
			columns=null;
		}finally{
			if(rs != null){
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(pstmt != null){
				try {
					pstmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		return tempML;
	}
	public Map<String,String> getRunningCronInfo(Connection connection,Object cronsid) throws SQLException{
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		Map<String,String> row=null;
		try {
			pstmt = connection.prepareStatement("SELECT cronid,name,filename,weekday,day,hour,minute FROM "+tablepre+"crons WHERE available>'0' AND cronid='"+cronsid+"'");
			rs = pstmt.executeQuery();
			ResultSetMetaData rsmd=rs.getMetaData();
			int columnCount=rsmd.getColumnCount();
			String []columns=new String[columnCount];
			for(int i=1;i<=columnCount;i++){
				columns[i-1]=rsmd.getColumnLabel(i);
			}
			rsmd=null;
			while (rs.next()){
				row=new HashMap<String,String>(columnCount);
				for (int i=1;i<=columnCount;i++) {
					row.put(columns[i-1],rs.getString(i));
				}
			}
			columns=null;
		}finally{
			if(rs != null){
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(pstmt != null){
				try {
					pstmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		return row;
	}
	
	public void commitTransaction(Connection connection){
		try {
			connection.commit();
		} catch (SQLException e) {
			rollbackTransaction(connection);
		}
	}
	
	public void rollbackTransaction(Connection connection){
		try {
			connection.rollback();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public void closeConnection(Connection connection){
		if(connection != null){
			try {
				connection.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	public void execute(Connection connection,String sql) throws SQLException{
		Statement pstmt = null;
		try {
			pstmt = connection.createStatement();
			pstmt.execute(sql);
		} finally {
			if(pstmt!=null){
				pstmt.close();
				pstmt=null;
			}
		}
	}
	
	public List<Map<String,String>> executeQuery(Connection connection,String sql) throws SQLException {
		PreparedStatement pstmt =null;
		ResultSet rs=null;
		List<Map<String,String>> rows =null;
		try{
			pstmt = connection.prepareStatement(sql);
			rs =pstmt.executeQuery();
			rows= new ArrayList<Map<String,String>>();
			ResultSetMetaData rsmd=rs.getMetaData();
			int columnCount=rsmd.getColumnCount();
			String []columns=new String[columnCount];
			for(int i=1;i<=columnCount;i++){
				columns[i-1]=rsmd.getColumnLabel(i);
			}
			rsmd=null;
			Map<String,String> row=null;
			while (rs.next()){
				row=new HashMap<String,String>(columnCount);
				for (int i=1;i<=columnCount;i++) {
					row.put(columns[i-1],rs.getString(i));
				}
				rows.add(row);				
			}
			row=null;
			columns=null;
		}finally {
			if(rs!=null){
				rs.close();
				rs=null;
			}
			if(pstmt!=null){
				pstmt.close();
				pstmt=null;
			}
		}
		return rows;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -