hibernate.cfg.xml配置Mysql连接字符串时提示错误

本文详细介绍了Hibernate配置文件的具体内容,包括数据库连接配置、连接池配置等,并指出了一处常见错误:在characterEncoding参数前应使用正确的转义字符。此外,还提供了一个具体的配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="myeclipse.connection.profile">JDBC for MySQL</property>
<property name="connection.url">jdbc:mysql://192.168.1.118:3306/dbserver?useUnicode=true&characterEncoding=utf8;</property>
<property name="connection.username">android</property>
<property name="connection.password">androidxy@#$09@)!@</property> 
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!---->
<property name="connection.provider_class">org.hibernate.connection.C3POConnectionProvider</property>

<property name="hibernate.c3po.min_size">8</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3po.timeout">2500</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">120</property>
<property name="show_sql">true</property>
<mapping resource="com/netcru/bean/Users.hbm.xml" />
</session-factory>
</hibernate-configuration>

上述配置中的connection.url会提示有错误,需在characterEncoding前面的&加上amp;
<property name="connection.url">jdbc:mysql://192.168.1.118:3306/dbserver?useUnicode=true&amp;characterEncoding=utf8;</property>


### 配置MySQLHibernate使用XML文件配置MySQL数据库连接以及设置Hibernate映射资源,主要通过`hibernate.cfg.xml`来完成。此文件不仅包含了数据库连接属性还定义了用于实体类到表映射的资源位置[^1]。 #### 数据库连接属性 为了使应用程序能够访问特定的MySQL实例,在`hibernate.cfg.xml`内需指定如下参数: - `hibernate.connection.driver_class`: JDBC驱动程序名称,对于MySQL通常为`com.mysql.cj.jdbc.Driver`. - `hibernate.connection.url`: 连接字符串URL指向目标数据库服务器地址. - `hibernate.connection.username`: 登录用户名. - `hibernate.connection.password`: 用户密码. 这些信息帮助建立至数据源的安全链接并允许执行SQL查询操作. ```xml <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC</property> <property name="connection.username">root</property> <property name="connection.password">password</property> ``` #### Hibernate特性设定 除了基本的数据源配置外,还需要调整一些影响性能和行为的关键选项: - `dialect`: 明确告知Hibernate所使用的具体RDBMS方言版本以便优化生成语句. - `show_sql`: 控制台打印出实际发送给数据库引擎前后的SQL命令方便调试. - `hbm2ddl.auto`: 自动管理模式下可以创建、更新或删除架构结构. 上述设置有助于确保最佳实践的同简化开发流程. ```xml <property name="dialect">org.hibernate.dialect.MySQL8Dialect</property> <property name="show_sql">true</property> <property name="hbm2ddl.auto">update</property> ``` #### 实体映射声明 最后一步是在同一配置文档中引入`.hbm.xml`形式存在的持久化对象描述符路径列表。这使得框架知道哪些Java POJO应该被转换成关系型表格记录. ```xml <mapping resource="path/to/entity-mappings.hbm.xml"/> ``` 综上所述,完整的`hibernate.cfg.xml`可能看起来像这样: ```xml <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC</property> <property name="connection.username">root</property> <property name="connection.password">secret</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.MySQL8Dialect</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">create</property> <!-- Names of mapping files (one-to-many, many-to-one etc.) --> <mapping class="example.EntityClass"/> <mapping resource="example/more-entity-mappings.hbm.xml"/> </session-factory> </hibernate-configuration> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值