1.model层
package model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity(name="bbsuser")
@Table
public class BbsUser {
@Id
@GenericGenerator(name="paymentableGenerator",strategy="native")
@GeneratedValue(generator="paymentableGenerator")
@Column(name="id")
private int id;
@Column(name="name")
private String name;
@Column(name="password")
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public BbsUser() {
super();
// TODO Auto-generated constructor stub
}
}
2.HibernateUtil的代码
package util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
public class HibernateUtil {
private static Configuration configuration;
private static SessionFactory sessionFactory;
private static Transaction transaction;
private static Session session;
static {
try{
//1.读取配置
configuration = new Configuration();
configuration.configure();
//2.会话工厂
ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
if(sessionFactory!=null);
else{
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(sr);
}
}catch(Exception e){
e.printStackTrace();
}
}
//3.得到(创建会话)会话,然后4.开启事务
public Session getSession(){
session = sessionFactory.openSession();
transaction = session.beginTransaction();
return session;
}
//5.操作数据库
//6.处理结果
//7.提交事务
public void getcommit(){
transaction.commit();
}
//8.关闭连接
public void close(){
session.close();
sessionFactory.close();
}
}
package daoimpl;
import javax.jms.Session;
import model.BbsUser;
import util.HibernateUtil;
import dao.UserDao;
public class UserDaoImpl extends HibernateUtil implements UserDao {
@Override
public boolean getUser(BbsUser user) {
Object obj = getSession().createQuery("from BbsUser user where user.name="+user.getName());
if(obj!=null){
return true;
}else{
return false;
}
}
@Override
public void closeSession() {
// TODO Auto-generated method stub
}
}
4.测试代码
package daoimpl;
import model.BbsUser;
public class test {
public static void main(String[] args) {
BbsUser user = new BbsUser();
user.setName("李逍遥");
user.setPassword("123");
UserDaoImpl ui = new UserDaoImpl();
boolean bl = ui.getUser(user);
if(bl){
System.out.println("**********");
}else{
System.out.println("");
}
}
}
Exception in thread "main" java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:973)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:824)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3845)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3799)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1412)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
at util.HibernateUtil.<clinit>(HibernateUtil.java:26)
at daoimpl.test.main(test.java:10)
解决办法,model层中不要 @Table 并且把它删掉,只用@Entity(name="bbsuser");