Hibernate分别使用XML方式与注解方式添加数据

目标效果:

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文件即可。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值