【hibernate】01-mysql存储引擎与配置文件分析

mysql存储引擎与自动提交问题


学习jdbc时jdbc 事物自动提交缺省是true   所以用户的每一条sql语句都会自动提交 不需要用户手工提交   
但是hibernate 缺省    把自动提交关闭  所以如果当mysql 用的存储引擎是InoDB时必须开启提交事物  对数据库增删改操作才能有效

如果发现不用transaction.commit() 提交  也可以对数据库增删改操作  那是因为mysql 自动默认存储引擎是 MyISAM 

它不支持事物提交与回滚。所以开启事物与不开启事物都没作用  都可以数据库增删改操作

在大数据处理的时候InnoDB可能会更快一些 建议用InnoDB

1、查看mysql存储引擎命令,在mysql>提示符下输入show engines;字段 显示内容中Default表示默认存储引擎
2、设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB 一句.

总配置文件分析

 

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <!-- 数据库连接驱动类 -->

  <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 关于连接数据库的url和用户名和密码-->

  <property name="connection.url">jdbc:mysql://localhost:3306/hibernatetest</property>
  <property name="connection.username">root</property>
  <property name="connection.password">123</property>
  <!-- 采用的数据库的方言或者说语法格式 -->

  <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
  <!-- 表示按照标准格式在控制台上输出SQL语句,默认为false。建议在调试程序时设为true -->  

<property name="hibernate.format_sql">true</property>
<!-- update 加载hibernate自动更新数据库结构--> 

 <property name="hbm2ddl.auto">update</property>

<!-- 执行过程中显示hibernate的sql语句 -->

  <property name="show_sql">true</property>
<!-- 定持久化类映射文件的位置,由包名与映射文件组成,包名与映射文件之间用“/”分隔-->  

<mapping resource="cn/itcast/domin/User.hbm.xml" />
 </session-factory>
</hibernate-configuration>

 

注意

<property name="hbm2ddl.auto">update</property>

的值可以是  validate   create create-drop update

 

validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构,会删除以前的表。这就是导致数据库表数据丢失的原因。
create-drop 加载hibernate时创建,退出时删除表结构
update 加载hibernate自动更新数据库结构

 

By  变坏的好人

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值