`
blaiu
  • 浏览: 131042 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mql数据库 连接

阅读更多
public final class HibernateUtil {
	
	private static SessionFactory sessionFactory = null;
	
	private static String path = Common.decode(Thread.currentThread().getContextClassLoader().getResource("../../config.properties").getPath());

	private static String message = null;
	
	public static String getMessage() {
		return message;
	}

	/**
	 * 
	 * @此方法描述的是:同步创建session工厂
	 * void
	 */
	public static synchronized void buildSessionFactory() {
		if(sessionFactory == null) {
			try {
				Properties properties = new Properties();
				InputStream fis = new FileInputStream(path);
				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");
				
				if(mysql_connect(dbhost, dbport, dbname, dbuser, dbpw)) {
					Properties extraProperties = new Properties();
					extraProperties.setProperty("hibernate.connection.url", "jdbc:mysql://"+dbhost+":"+dbport+"/"+dbname+"?zeroDateTimeBehavior=convertToNull");
					extraProperties.setProperty("hibernate.connection.username", dbuser);
					extraProperties.setProperty("hibernate.connection.password", dbpw);
					Configuration configuration = new Configuration();
					configuration = configuration.configure("hibernate.cfg.xml");
					configuration = configuration.addProperties(extraProperties);
					sessionFactory = configuration.buildSessionFactory();
					extraProperties = null;
					configuration = null;
				}
				properties = null;
			} catch (Exception e) {
				System.out.println("请检查你的hibernate.cfg.xml 文件是否配置正确");
				message = "Create sessionFactory Exception! "+e.getMessage();
			}
		}
	}
	
	/**
	 * 
	 * @此方法描述的是:测试数据库连接
	 * @param dbhost	服务器名
	 * @param dbport	端口
	 * @param dbname	数据库名
	 * @param dbuser	用户
	 * @param dbpw		密码
	 * @return
	 * boolean
	 */
	public static boolean mysql_connect(String dbhost, String dbport, String dbname, String dbuser, String dbpw) {
		Connection connection = null;
		boolean flag = false;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection("jdbc:mysql://"+dbhost+":"+dbport+"/"+dbname, dbuser, dbpw);
			if(connection != null) {
				if(!connection.isClosed()) {
					connection.close();
					connection = null;
				}
				return true;
			}
		} catch (Exception e) {
			System.out.println("数据库连接异常, 请检查你的config.properties配置文件是否配置正确");
			message = e.getMessage();
		}
		return flag;
	}
	
	
	/**
	 * 
	 * @此方法描述的是:返回SessionFactory
	 * @return
	 * SessionFactory
	 */
	public static SessionFactory getSessionFactory() {
		if(sessionFactory == null) {
			buildSessionFactory();
		}
		return sessionFactory;
	}
	
	/**
	 * 
	 * @此方法描述的是:返回session
	 * @return
	 * Session
	 */
	public static Session getSession() {
		if(sessionFactory == null) {
			buildSessionFactory();
		}
		return sessionFactory.getCurrentSession();
	}
	
	/**
	 * 
	 * @此方法描述的是:从新创建SessionFactory
	 * void
	 */
	public static void rebuildSessionFactory() {
		if(sessionFactory == null) {
			try {
				Properties properties = new Properties();
				InputStream fis = new FileInputStream(path);
				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");
				
				if(mysql_connect(dbhost, dbport, dbname, dbuser, dbpw)) {
					Properties extraProperties = new Properties();
					extraProperties.setProperty("hibernate.connection.url", "jdbc:mysql://"+dbhost+":"+dbport+"/"+dbname+"?zeroDateTimeBehavior=convertToNull");
					extraProperties.setProperty("hibernate.connection.username", dbuser);
					extraProperties.setProperty("hibernate.connection.password", dbpw);
					Configuration configuration = new Configuration();
					configuration = configuration.configure("hibernate.cfg.xml");
					configuration = configuration.addProperties(extraProperties);
					sessionFactory = configuration.buildSessionFactory();
					extraProperties = null;
					configuration = null;
				}
				properties = null;
				
			} catch (Exception e) {
				System.out.println("请检查你的hibernate.cfg.xml 文件是否配置正确");
				message = "Create sessionFactory Exception! "+e.getMessage();
			}
		}
	}
}
分享到:
评论

相关推荐

    MQLMySQL for MQL4连接mysql.7z

    从 MT4 (MQL4) 访问 MySQL 数据库,MQL通过调用 接口库 MQLMySQL.mqh. 使用 #include 语句将它加到项目工程里。它包含的指令用于导入 MQLMySQL.dll 动态库的函数,以及调用它们和处理函数。而MQLMySQL调用的是MYS

    最新如何从MQL5MQL4访问MySQL数据库.docx

    此外,它还管理数据库连接和游标的共享访问,使得在同一时间内可以创建和使用多个连接。 - **libmysql.dll**:这是本地访问驱动器,负责发送查询到数据库并接收结果。 #### 五、连接管理 - **MySqlConnect**:此...

    MT4连接MYSQL数据库的例子

    此外,为了在MT4环境中安全地使用MySQL,应确保遵循最佳实践,例如加密数据库连接信息、限制权限、定期备份数据等。同时,由于MQL4不支持异步操作,因此在进行长时间的数据库操作时,可能会阻塞MT4主循环,影响正常...

    如何从 MQL5 (MQL4) 访问 MySQL 数据库.doc

    1. 打开和关闭数据库连接:建立与MySQL服务器的安全连接,结束后释放资源。 2. 执行DML/DDL查询:用于更新数据库中的数据或创建/删除数据库对象。 3. 数据检索:通过游标获取查询结果,游标允许逐行处理数据,而无需...

    Java spring boot链接mql数据库 JDBC

    接下来,配置Spring Boot的数据库连接。在`application.properties`或`application.yml`文件中添加如下配置: ```properties # application.properties 示例 spring.datasource.url=jdbc:mysql://localhost:3306/mr...

    从 MT4 (MQL4) 访问 MySQL 数据库(支持中文读取写入)带范例源码.zip

    从 MT4 (MQL4) 访问 MySQL 数据库(支持中文读取写入)带范例源码,MQL通过调用 接口库 MQLMySQL.mqh. 使用 #include 语句将它加到项目工程里。它包含的指令用于导入 MQLMySQL.dll 动态库的函数,以及调用它们和处理...

    Android 连接MQL 等关系型数据库

    Android MQL 关系型 数据库相关项目,由于原链接:http://download.csdn.net/source/3344919 是在公司上传的,已经被加密,所以旧链接已经失效,请下载此链接下相应项目(经已解密),有疑问,请联系:qq:343827585。...

    mt4 连接本地数据库sqlite动态库dll

    sqlitehelper 动态库使用说明://创建sqlite数据库 int CreateSqliteDataBase(string DataBaseDir);//DataBaseDir 数据库路径 //创建表 int CreateSqliteTable(string DataBaseDir,string TableStr)//TableStr 创建...

    CAA连接Sql数据库

    在压缩包中的源代码,很可能是实现了以上步骤的一个完整示例,可能包括了CAA的初始化、CAA对象的创建、数据库连接的建立、SQL语句的执行以及数据的读写等关键部分。开发者可以通过阅读和学习这些代码,快速理解如何...

    Mysql数据库查看工具(含科学工具)

    1. **连接管理**:用户可以创建、编辑和管理多个数据库连接,方便在不同数据库间切换。 2. **数据查看与编辑**:提供表格、网格和文本视图,用户可以直接在界面中查看和编辑数据。 3. **SQL编写与执行**:内置的SQL...

    mql连接时出现的中文问题

    ### mql连接时出现的中文问题 在使用MySQL进行数据操作的过程中,中文字符的正确显示与存储是一个常见的问题。本文将详细阐述四个关键步骤来确保MySQL数据库中的中文字符能够正常显示,避免出现乱码现象。 #### 1....

    实现对MySql、SQLServer、Access等数据库的数据进行集成

    7. **错误处理和日志记录**:在集成过程中,可能会遇到各种问题,如连接失败、数据不匹配等。因此,良好的错误处理和日志记录机制至关重要,它们能帮助开发者快速定位并解决问题。 8. **性能优化**:大规模数据集成...

    计算机二级《MySQL数据库程序设计》知识点总结.doc

    4. 计算字段:可以使用`CONCAT()`函数连接字段,进行算术运算,或者使用内置函数处理数据,例如`SELECT prod_name, prod_price, prod_num, prod_price*prod_num AS prod_money FROM products`。 5. 数据处理函数:...

    MQL语言介绍,MT4程序化交易

    此外,MQL4语言还能自定义客户指标、脚本和数据库。MetaEditor 4是一个编辑器,集合了编写MQL4程序代码的各种语句,可以帮助使用者方便地写出规范的代码。MetaQuotes Language Dictionary是一个帮助工具,包含了所有...

    TCL & MQL Guide

    根据提供的文档内容,本文将详细解析TCL与MQL的相关知识点,包括MQL的基本语法、常用命令以及TCL的基本语法等内容。 ### MQL 常用命令 MQL(Matrix Query Language)是Enovia PLM系统中的一种类似于SQL的语言,...

    MQL4命令手册

    - **智能交易(Expert Advisors, EAs)**: 连接到MT4图表的自动交易系统,可以独立根据预设条件进行交易操作。它们只能一次执行一个交易指令,直到当前指令执行完成。 - **自定义指标**: 用户可以创建新的技术指标,...

    MQL--eMatrix 语法详尽

    MQL的主要目标是让用户能够理解其命令语法,创建并执行MQL脚本,以及利用MQL进行一系列Matrix操作,包括提取一般和特定对象信息、构建和修改模式、连接对象、推动对象生命周期进程,以及触发隐式和显式事务。...

    mysql连接cayley图数据库

    【MySQL 连接 Cayley 图数据库】 Cayley 是一个开源的图数据库系统,它支持多种后端存储,包括 MySQL。图数据库是一种非关系型数据库,适用于处理复杂的数据关系,如社交网络、推荐系统等。MySQL 作为成熟的 SQL ...

    对比学习关系型数据库Mysql和图数据库Neo4j.zip

    在性能方面,MySQL通过索引和优化SQL查询可以达到很高的读写速度,但处理复杂的关联查询可能需要多次表连接,性能会受到影响。Neo4j由于其数据模型的特性,对于图形遍历和关系查询速度极快,但在处理大量重复数据或...

Global site tag (gtag.js) - Google Analytics