目标效果:
1.新建数据库和userhibernate和表userinfo。
2.新建项目myHibernate,按照上一篇博文讲的配置连接数据库并在entity包中映射实体类。
3.新建test包和testHibernate.java类,编写处理代码。
testHibernate.java页面:
package com.wxy.test;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.wxy.dao.HibernateSessionFactory;
import com.wxy.entity.Userinfo;
public class testHibernate {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Session session=HibernateSessionFactory.getSession();//起到了缓冲区的作用,缓冲了Hibernate自动生成的sql语句和其它映射数据,海还冲了一些将来有可能重复利用的数据
Transaction tran=session.beginTransaction(); //启动事务
Userinfo user=new Userinfo("wxy","123456"); //添加信息
session.save(user); //向数据库中保存
tran.commit(); //关闭事物
session.close();
System.out.println("成功添加一个用户");
}
}
4.运行后控制台会出现提示消息,数据库中也会插入数据,这就是XML方式添加数据。
5.在entity包中新建userinfoJPA.java类,使用注解方式生成持久化类。
userinfoJPA.java页面:
package com.wxy.entity;
import javax.persistence.*;
@Entity
@Table(name="userinfo") //数据库中表的名字
public class userinfoJPA {
@Id //指定该列为主键,主键类型最好不要使用int等原始类型
@GeneratedValue(strategy=GenerationType.AUTO)//主键类型AUTO为数据库自动增长类型
private Integer id; //主键
@Column(name="uname") //列名
private String uname; //用户名
@Column(name="upass")
private String upass; //密码
public userinfoJPA(){
}
public userinfoJPA(String uname, String upass) {
this.uname = uname;
this.upass = upass;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpass() {
return upass;
}
public void setUpass(String upass) {
this.upass = upass;
}
}
6.在test包中新建testUserinfoJPA.java类,使用注解方式添加数据。
testUserinfoJPA.java页面:
package com.wxy.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import com.wxy.entity.userinfoJPA;
public class testUserinfoJPA {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Configuration cfg=new AnnotationConfiguration().configure();//Configuration用于对Hibernate进行配置并启动,configure()方法吗默认在classpath下面寻找hibernate.cfg.xml文件
SessionFactory factory=cfg.buildSessionFactory(); //起到了缓冲区的作用,缓冲了Hibernate自动生成的sql语句和其它映射数据,海还冲了一些将来有可能重复利用的数据
Session session=factory.openSession();
Transaction tran=session.beginTransaction(); //启动事物
userinfoJPA user=new userinfoJPA( "wxy","wxy"); //添加信息
session.save(user); //向数据库中保存
tran.commit(); //关闭事物
session.close();
System.out.println("成功使用注解添加一条用户信息。");
}
}
7.另外,需要在hibernate.cfg.xml页面中<mapping resource="..." />下边添加<mapping class="..." />,省略号处是新建的testUserinfoJPA.java类的路径(如:<mapping class="com.wxy.entity.userinfoJPA"/>)。
8.运行后可以发现能够正确添加信息。
9.如果出现以下提示,属于正常现象,不影响程序运行,在项目的src文件夹下创建一个名字为log4j.properties的File文件即可。