`

Hibernate之Mysql或Mariadb数据库连接问题

阅读更多

Hibernate之Mysql或Mariadb数据库连接问题

项目是用Maven做的build,配置主要需要注意一下几个地方:

1. 数据库Mysql或Mariadb

 yum repository:

http://mirrors.neusoft.edu.cn/mariadb/mariadb-10.0.16/

Mariadb:

https://mariadb.com/kb/en/mariadb/

<dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>1.1.8</version>
	    <scope>compile</scope>
</dependency>
<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.9</version>
</dependency>

 

 

2. Hibernate 版本 4.3.8.Final

 

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.3.8.Final</version>
			<scope>compile</scope>
        </dependency>

 3. src\main\resources\hibernate.cfg.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
  	<property name="hibernate.connection.driver_class">org.mariadb.jdbc.Driver</property>
    <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
    <property name="hibernate.connection.password">passw0rd</property>
    <property name="hibernate.connection.url">jdbc:mariadb://9.114.194.77:3306/cody</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="use_sql_comments">false</property>
    <mapping resource="com/mkyong/customer/hibernate/Customer.hbm.xml" />
  </session-factory>
</hibernate-configuration>

 

 

错误:Error calling Driver#connect,connect refused...

xxx is not allowed to connect to this MariaDB server

类似这样的错。

需要注意以下几个地方:

1.  hibernate.cfg.xml的配置

 

<property name="hibernate.connection.driver_class">org.mariadb.jdbc.Driver</property>
 <property name="hibernate.connection.url">jdbc:mariadb://9.114.194.77:3306/cody</property>

 2. 检查SessionFactory 是不是正常

参考官方文档:

http://docs.jboss.org/hibernate/orm/4.3/manual/en-US/html/ch01.html#tutorial-firstapp-firstclass

public class HibernateListener implements ServletContextListener{
 
    private Configuration config;
    private SessionFactory factory;
    private String path = "/hibernate.cfg.xml";
    private static Class clazz = HibernateListener.class;
 
    public static final String KEY_NAME = clazz.getName();
 
	public void contextDestroyed(ServletContextEvent event) {
	  //
	}
 
	public void contextInitialized(ServletContextEvent event) {
 
	 try { 
	        URL url = HibernateListener.class.getResource(path);
	        config = new Configuration().configure(url);
	        System.out.println("Hibernate Configuration loaded");
	        
	        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();
	        System.out.println("Hibernate serviceRegistry created");
	        
	        factory = config.buildSessionFactory(serviceRegistry);
	        System.out.println("Session Factory:" + factory.toString());
	        
	        //save the Hibernate session factory into serlvet context
	        event.getServletContext().setAttribute(KEY_NAME, factory);
	  } catch (Exception e) {
	         System.out.println(e.getMessage());
	         e.printStackTrace();
	   }
	}
}

 3. 数据库的授权:

通常这种修改都是web server 和 db在两个机器上,所以有个访问权限的问题。

通常访问的时候会以 root@<web server ip>的形式,这就需要授权和添加相关的用户密码才能访问db。

可以参考这篇文章:

http://www.cnblogs.com/xyzdw/archive/2011/08/11/2135227.html

一、在安装mysql/MariaDB的机器上运行:

1、mysql -h localhost -u root -p //这样应该可以进入MySQL/MariaDB服务器

2、mysql>GRANT   ALL   PRIVILEGES   ON   *.*   TO   'root'@'%'   WITH   GRANT   OPTION //赋予任何主机访问数据的权限

3、mysql>FLUSH   PRIVILEGES //修改生效

 

4、mysql>EXIT //退出DB

二、配置mysql数据库的user 表的‘%’用户信息:

MariaDB [mysql]> UPDATE user SET Password=PASSWORD('newpwd') WHERE User='root';
MariaDB [mysql]>FLUSH PRIVILEGES;
MariaDB [mysql]>exit;

 

错误:

hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

 参考文档:

http://www.tuicool.com/articles/7FZrYzE

 

分享到:
评论

相关推荐

    适用于Hibernate5连接MariaDB10

    【标题】"适用于Hibernate5连接MariaDB10"所涉及的知识点主要集中在Java持久层框架Hibernate与MySQL的分支MariaDB数据库的集成上。在Java Web开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,能够简化...

    hibernate-demo.zip

    【hibernate-demo.zip】是一个压缩包,其中包含了一个使用Eclipse集成开发环境搭建的Hibernate框架访问MariaDB数据库的示例项目。这个项目旨在帮助开发者理解如何在Java应用中运用Hibernate进行数据持久化操作,同时...

    HibernateJPA+Struts2.0+MariaDB实现登录功能

    首先,MariaDB是一个开源的关系型数据库管理系统,它是MySQL的一个分支,具有高性能、高可用性和安全性。在登录功能中,MariaDB主要负责存储用户账号和密码等敏感信息。开发者需要设计一个用户表,包含用户名...

    hibernate 环境搭建

    本教程将指导你如何搭建一个基本的Hibernate环境,我们将使用MySQL的分支——MariaDB作为数据库。 首先,我们需要准备以下组件: 1. **JDK**: Hibernate运行在Java平台上,所以你需要安装Java Development Kit...

    springboot集成mariaDB,mybatis自动生成对应的mapper,pojo,dao类文件

    接下来,配置`application.properties`文件以连接MariaDB数据库: ```properties spring.datasource.url=jdbc:mariadb://localhost:3306/your_database spring.datasource.username=your_username spring....

    毕业设计项目源码:基于JavaEE的智能旧书交易平台设计与实现.zip

    或根据bookMarket-java/src/main/resources/config/hibernate.properties配置信息创建数据库 在bookMarket-java/src/main/resources/config/hibernate.properties中更新数据库配置 使用maven命令重新打包bookMarket-

    sqltoy-orm框架系统是比hibernate+myBatis更加贴合项目的orm框架.rar

    mysql(mariadb/innosql)支持5.6、5.7、8.0 版本 postgresql 9.5+ sqlserver 2012+ sqlite、H2 elasticsearch 只支持查询,版本支持5.7+版本,建议使用7.3以上版本 clickhouse、StarRocks(原dorisdb)、tidb、greenplum...

    node-sql-fixtures:PostgreSQL,MySQL,MariaDB和SQLite中Node.jsSQL固定装置

    用法Postgres 是0.0.0几个已知的项目MySQL 是* 0.4.0几个已知的项目sqlite3 是* 0.3.0一个已知的项目玛丽亚数据库是** 0.7.0没有已知的项目:( *对于MySQL和Maria,您可能会遇到问题。 **对于sqlite,如果使用“无...

    BeetlSQL是提供开发高效维护高效运行高效的数据库访问框架

    传统数据库:MySQL(国内兼容MySQL协议的各种大数据库),MariaDB,Oracle,Postgres,DB2,SQL Server,H2,SQLite,Derby,神通,达梦,华为高斯,人大金仓,PolarDB等大数据:HBase,ClickHouse,Cassandar,Hive,Doris。...

    dcm4chee-arc.xml

    综上所述,dcm4chee-arc.xml文件是dcm4chee存档系统与MySQL数据库集成的关键配置,其内容涵盖了数据库连接、实体管理、事务控制等多个方面。通过熟练掌握这个文件的配置,IT专业人员可以有效地部署和管理医疗信息...

    Navicat Premium_11.2.7简体中文版

    首先,Navicat Premium的多数据库连接功能是其核心亮点之一。用户可以通过一个统一的界面同时连接和管理多个数据库,无论是在同一台服务器上还是分布在不同网络环境下的数据库,都能轻松应对。这对于数据库管理员来...

    博客网站系统开发的源代码,让你轻松过毕业设计

    - LAMP/LNMP:Linux操作系统,Apache/Nginx服务器,MySQL/MariaDB数据库,PHP/Perl/Python的组合,是常见的Web服务器环境。 - Docker:通过容器化技术,可以方便地打包和部署应用,确保环境一致性。 8. **测试与...

    技术研发部部门岗位职责.pdf

    4. 精通SQL语法,熟悉MySQL或MariaDB数据库,了解数据库优化策略。 5. 熟悉Memcached使用。 6. 熟练HTML、CSS、JavaScript、AJAX,使用EasyUI、jQuery等JavaScript框架。 7. 熟练掌握SQL Server、Oracle、MySQL等...

    sun公司免费开源项目下载

    MySQL是一个高效、可靠的关系型数据库管理系统(RDBMS),也是开源软件的代表之一。Sun公司在MySQL的发展中起到了关键作用,将其推向了全球许多企业和个人用户。MySQL以其高性能、易于使用和低维护成本而受到青睐,...

    本科毕业设计+基于SpringBoot+Vue构建的中小企业进销存管理系统

    支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库 实现前后端分离,通过token进行数据交互,前端再也不用关注后端技术 支持结合ELK实时日志分析系统,方便日志...

    Java 组件和框架汇总

    数据库连接池如HikariCP和Druid,提高了数据库连接的复用性,提升了系统性能。Redis客户端Jedis和Redisson提供与Redis服务器的交互功能。 这些Java组件和框架共同构建了Java开发的丰富生态系统,为开发者提供了强大...

    Java毕业设计源码:基于Web的大学生计算机设计大赛报名网站的开发.zip

    - **MariaDB**: 一个开源的关系型数据库管理系统,兼容MySQL。项目中用作存储用户信息、比赛数据等核心数据。 4. **前后端分离**: 前后端通过API接口进行通信,前端负责用户界面的展示和交互,后端负责业务逻辑...

    leetcode2-education:OmiSoft.net知识库

    leetcode 2 的知识库。 新手的测试任务位于 . 更详细: 随时欢迎您的创作 内容 iOS ...Hibernate ...Postgres、MSSQL、MySQL、MariaDB、SQLite3、Oracle 和 Amazon Redshift 的“包含电池”的 SQL 查询构

    Smart-Shopping:用Java 8和Spring 4开发的购物清单提供简单的响应式Web前端和REST端点

    MariaDB / MySQL数据库(我使用MariaDB,但它们兼容) 配置 可以在src / main / resources中找到配置文件您可以在db.properties文件中配置数据库服务器和Hibernate设置。 记住要更改db.username和db.password。 要...

    SSMAC整合开发.pdf

    本手册所介绍的系统主要使用了Spring4.3.0、SpringMVC4.3.0、MyBatis3.4.0、ApacheDruid1.0.20、Activiti5.21.0、Shiro1.2.5、HibernateValidator5.3.0、JqueryValidator、MySQL(mariaDB替代方案)、Sitemesh3等技术...

Global site tag (gtag.js) - Google Analytics