刚刚接触hibernate,在用hql插入数据的时候,总是报错,错误的第一句话是
Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxError: unexpected token: INSERT near line 1, column 1 [INSERT INTO person(name,age,sex) VALUES(?,?,?)]
发生错误的位置
[code="java"]q.executeUpdate();[/code]
数据表的结构
[code="java"]
CREATE TABLE person
(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20),
age INT,
sex VARCHAR(2)
);
[/code]
执行的部分代码
[code="java"]
Person p = new Person();
p.setName("haha");
p.setAge(20);
p.setSex("男");
String hql = "INSERT INTO person(name,age,sex) VALUES(?,?,?)";
Query q = session.createQuery(hql);
q.setString(0, p.getName());
q.setInteger(1, p.getAge());
q.setString(2, p.getSex());
q.executeUpdate();//错误就发生在这一行
[/code]
如果直接用hql那句话插入(在mysql命令行下)是没有问题的,但是这样执行的时候却总是报上面异常,好像是因为主键的问题吧
望高手解决,先谢谢了
对了,补上person的xml文件
[code="java"]
[/code]
[b]问题补充:[/b]
我貌似听说过hibernate里不能用hql插入数据啊,各位所说的方法我都试过了,还是没有成功,很郁闷
如果可能的话,希望有位高手耽误5分钟的时间来写一个这样的东西,传上来就更好了,我已经试了n次了,快崩溃了
[b]问题补充:[/b]
[quote]
楼主你插入数据为什么非要 hql
直接save方法不行吗???
chenpingtai2008 (初级程序员) 2008-12-01
[/quote]
呵呵 说的是,只不过我想实验一下这种写法而已,呵呵