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"所涉及的知识点主要集中在Java持久层框架Hibernate与MySQL的分支MariaDB数据库的集成上。在Java Web开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,能够简化...
【hibernate-demo.zip】是一个压缩包,其中包含了一个使用Eclipse集成开发环境搭建的Hibernate框架访问MariaDB数据库的示例项目。这个项目旨在帮助开发者理解如何在Java应用中运用Hibernate进行数据持久化操作,同时...
首先,MariaDB是一个开源的关系型数据库管理系统,它是MySQL的一个分支,具有高性能、高可用性和安全性。在登录功能中,MariaDB主要负责存储用户账号和密码等敏感信息。开发者需要设计一个用户表,包含用户名...
本教程将指导你如何搭建一个基本的Hibernate环境,我们将使用MySQL的分支——MariaDB作为数据库。 首先,我们需要准备以下组件: 1. **JDK**: Hibernate运行在Java平台上,所以你需要安装Java Development Kit...
接下来,配置`application.properties`文件以连接MariaDB数据库: ```properties spring.datasource.url=jdbc:mariadb://localhost:3306/your_database spring.datasource.username=your_username spring....
或根据bookMarket-java/src/main/resources/config/hibernate.properties配置信息创建数据库 在bookMarket-java/src/main/resources/config/hibernate.properties中更新数据库配置 使用maven命令重新打包bookMarket-
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...
用法Postgres 是0.0.0几个已知的项目MySQL 是* 0.4.0几个已知的项目sqlite3 是* 0.3.0一个已知的项目玛丽亚数据库是** 0.7.0没有已知的项目:( *对于MySQL和Maria,您可能会遇到问题。 **对于sqlite,如果使用“无...
传统数据库:MySQL(国内兼容MySQL协议的各种大数据库),MariaDB,Oracle,Postgres,DB2,SQL Server,H2,SQLite,Derby,神通,达梦,华为高斯,人大金仓,PolarDB等大数据:HBase,ClickHouse,Cassandar,Hive,Doris。...
综上所述,dcm4chee-arc.xml文件是dcm4chee存档系统与MySQL数据库集成的关键配置,其内容涵盖了数据库连接、实体管理、事务控制等多个方面。通过熟练掌握这个文件的配置,IT专业人员可以有效地部署和管理医疗信息...
首先,Navicat Premium的多数据库连接功能是其核心亮点之一。用户可以通过一个统一的界面同时连接和管理多个数据库,无论是在同一台服务器上还是分布在不同网络环境下的数据库,都能轻松应对。这对于数据库管理员来...
- LAMP/LNMP:Linux操作系统,Apache/Nginx服务器,MySQL/MariaDB数据库,PHP/Perl/Python的组合,是常见的Web服务器环境。 - Docker:通过容器化技术,可以方便地打包和部署应用,确保环境一致性。 8. **测试与...
4. 精通SQL语法,熟悉MySQL或MariaDB数据库,了解数据库优化策略。 5. 熟悉Memcached使用。 6. 熟练HTML、CSS、JavaScript、AJAX,使用EasyUI、jQuery等JavaScript框架。 7. 熟练掌握SQL Server、Oracle、MySQL等...
MySQL是一个高效、可靠的关系型数据库管理系统(RDBMS),也是开源软件的代表之一。Sun公司在MySQL的发展中起到了关键作用,将其推向了全球许多企业和个人用户。MySQL以其高性能、易于使用和低维护成本而受到青睐,...
支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库 实现前后端分离,通过token进行数据交互,前端再也不用关注后端技术 支持结合ELK实时日志分析系统,方便日志...
数据库连接池如HikariCP和Druid,提高了数据库连接的复用性,提升了系统性能。Redis客户端Jedis和Redisson提供与Redis服务器的交互功能。 这些Java组件和框架共同构建了Java开发的丰富生态系统,为开发者提供了强大...
- **MariaDB**: 一个开源的关系型数据库管理系统,兼容MySQL。项目中用作存储用户信息、比赛数据等核心数据。 4. **前后端分离**: 前后端通过API接口进行通信,前端负责用户界面的展示和交互,后端负责业务逻辑...
leetcode 2 的知识库。 新手的测试任务位于 . 更详细: 随时欢迎您的创作 内容 iOS ...Hibernate ...Postgres、MSSQL、MySQL、MariaDB、SQLite3、Oracle 和 Amazon Redshift 的“包含电池”的 SQL 查询构
MariaDB / MySQL数据库(我使用MariaDB,但它们兼容) 配置 可以在src / main / resources中找到配置文件您可以在db.properties文件中配置数据库服务器和Hibernate设置。 记住要更改db.username和db.password。 要...
本手册所介绍的系统主要使用了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等技术...