Java_web 开发时候,用 hibernate + mySQL写一条记录。
(1) 报错 主键 ID has no default value。
解析如下:
有2 个地方控制 ID,
SQL 表的 AI (自增)和 LoginAccount.hbm.xml 里面的 assigned/native
<id name="loginAccountID" column="LoginAccountID" type="int">
<generator class="assigned"></generator>
</id>
如果指定为 assigned 的话,那么不管SQL 的自增是不是勾上了,都会采用外部赋值的ID
如果指定为 native的话,那就采用SQL的策略自增,但是如果没有勾自增就会报错。
(2) 报错: Remember that ordinal parameters are 1-based
getHibernateTemplate().find("from Vegetable where name1 =
‘?’", vegtableName1);
改成如下
getHibernateTemplate().find("from Vegetable where name1 =
?", vegtableName1);
就好了。
(3) 不能在SQL内存放 汉字
必须在创建 database/schema的时候指定 utf-8 default collation
(4) 不能向SQL写汉字
在连接串后面加上数据库编码。
<property name="connection.url">
jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf-8
</property>