使用hibernate与mysql时数据不能插入的原因及解决办法
1.背景
之前从没用过hibernate,因此在网上搜了一下hibernate快速入门方面的信息,最后我按照《Myeclipse Hibernate 快速入门 中文版》(CSDN,百度文库都有)一文开始了我的hibernate之旅(为项目做技术准备)。
下面是在学习使用时用到的三个开发工具(Myeclipse , Mysql , SQL-Front)及其版本说明:
Myeclipse版本为6.5(没用最新的Myeclipse8.5,这是由于之前组里的项目都是在Myeclipse6.5中开发的,并且本项目是与其它人合作完成的,为了防止可能由于开发环境的不一致而引起的问题,我们统一使用Myeclipse6.5,所以我就在Myeclipse6.5环境下学习使用hibernate了)。
Mysql使用的是5.1版本。Mysql安装完后,需要手动进行配置,其中有一项是“please select the database usage”,我在这里选择的是“Muitifunctional Database”(如下图所示)。这里其实选则的是使用何种类型的数据库(InnoDB还是MyISAM),如果选第三个,就不能用InnoDB类型的数据库了,这个在每一个选项的说明中可以看到。
为了方便mysql的使用,又安装了图形化界面的SQL-Front,版本是5.1。
2.遇到的问题
我用SQL-Front在数据库中建了一简单的表用于学习,等同的SQL语句如下:
“author”表有两个字段,一个是主键“Id”,一个是“name”。需要说明的是SQL-Front在建表的时候默认数据库类型为InnoDB。
针对“author”表,按照《Myeclipse Hibernate 快速入门 中文版》一文的说明操作完成后,写了一段简单的测试代码:
即插如一条name字段为“author”的数据,但是发现执行完后数据根本就没有插入到数据库中。后来在网上搜了一下,有人给出了解决办法,即使用事务来解决,修改后的代码如下:
数据插入的问题是解决了,但是发现插入数据后,Id已经在插入前自动增加了(不是从1开始了),也就是说之前的测试虽然数据看似没有插入数据库,但是实际效果却跟插入了数据库一样(要不然Id不会自动增加),这又是为什么?在网上搜了一下,结合自己的理解,我分析了一下原因。
相关文档:
1 Apache
修改 documentroot 根目录
directory 访问根目录权限
directoryindex 默认首页 ......
一 Apache 的安装
1 Apache 的安装
2 同意协议
3 接着 "Next "
4 填写 域名(network domain) 服务器的名称 (Server Name) 管理者邮箱(Administrator's Email)
5 安装类型
6 选择安装路径
7 点击“install ” 继续
8 开始安装
9 安装结束
二 MySql的安装
......
准备
ls /usr/local/src // 显示文件列表
ls | wc -l // 查看当前文件目录下文件的个数
gcc -v // 查看编译工具是否存在
rpm -qa|grep -i xxxx // 查看系统中是否已经安装了某软件的相关软件包
rpm -e --nodeps xxxx // 卸载软 ......
解决The‘InnoDB’feature is disabled; you need MySQL built with ‘InnoDB’ to have it2009年12月29日 星期二 上午 11:15MySQL
出现如下语句:The ‘InnoDB’ feature is disabled; you need MySQL built with ‘InnoDB’ to have it working;
是mysql配置文件禁掉了这个选 ......
可以参考下列文章
http://www.mysqlperformanceblog.com/2010/03/23/too-many-connections-no-problem/
结论如下:
(1)mysql默认会给super用户留一个连接,你可以用这个预留的连接来登录,来增加连接数;但是如果连接的用户全是super权限的,则这个预留的连接不存在。这时可以用以下的命令来设置连接数:gdb -p $(cat ......