首页 > 代码库 > Hibernate入门
Hibernate入门
Hibernate入门:执行增,删,改,查操作
1.我们在新建项目之后需要导入相应的jar包
2.我们需要在src目录下新建一个xml文件,名为hibernate.cfg.xml(大配置文件)
<?xml version=‘1.0‘ encoding=‘utf-8‘?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory> <!-- Database connection settings 数据库连接设置--> <!-- 驱动类 --> <property name="connection.driver_class">oracle.jdbc.OracleDriver</property> <!-- url地址 --> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property> <property name="connection.username">Hibernate</property> <property name="connection.password">orcl</property> <!-- SQL dialect (SQL 方言) --> <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> <!--在控制台打印后台的SQL语句 --> <property name="show_sql">true</property> <!-- 格式化显示SQL --> <!-- <property name="format_sql">true</property> --> <!-- 自动生成student表 --> <property name="hbm2ddl.auto">update</property> <!-- 关联小配置 --> <mapping resource="cn/a/happy/Student.hbm.xml" /> <!-- <mapping class="cn.happy.entity.Grade"/> --> </session-factory> </hibernate-configuration>
其中,driver_class为驱动类,url为Oracle地址,username为用户名称,password为用户密码,dialect为方言(oracle版本),show_sql指得是是否在程序运行时在控制台输出记录,mapping resource指的是需要关联小配置文件
2.1小配置文件(和实体类同名)Student.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="cn.a.happy"> <class name="Student" table="Student"> <id name="sid" type="int" column="SID"> </id> <property name="sname" type="string" column="SNAME"/> <property name="sage" type="int" column="SAGE"/> </class> </hibernate-mapping>
其中,package指的是小配置文件所在的包,class节点下name指的是实体类名,table指的是数据表名;id指的是数据表中的自增列,id节点下的name指的是实体类的ID,type指的是数据类型column是数据表中对应的列名;property节点下的name指的是实体类中的属性sname,type指的是数据类型,colmun指的是数据表中的列名
3.我们需要新建一个实体类,和小配置文件在同一个包下,实体类中有sid,sname,sage属性,并且有get和set方法和tostring方法
/* * 学生实体类 */public class Student { //数据类型全部都是引用类型 //学号 private Integer sid; //姓名 private String sname; //年龄 private Integer sage; @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", sage=" + sage + "]"; } public Student() { } public Integer getSid() { return sid; } public void setSid(Integer sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public Integer getSage() { return sage; } public void setSage(Integer sage) { this.sage = sage; }}
4.这时我们就需要在Test类中进行数据操作了
public class Text { Session session; Transaction tx; public static void main(String[] args) { Class clazz=Student.class; System.out.println(clazz); } @After public void AfterTest() { tx.commit(); HibernateUtil.CloseSession(); } @Before public void BeforeTest() { session=HibernateUtil.getSession(); tx=session.beginTransaction(); } //用get方法查询 @Test public void getTest() { Student stu=(Student)session.get(Student.class, 2); System.out.println(stu); } //修改 @Test public void Update() { Student stu= (Student)session.load(Student.class,2); stu.setSname("woshigou"); session.update(stu); System.out.println("update OK!"); } //删除的方法 @Test public void delecttest() { Student stu=new Student(); stu.setSid(1); session.delete(stu); System.out.println("delect OK!"); } @Test //增加的测试 public void addtest() { Student stu=new Student(); stu.setSid(2); stu.setSname("王小三"); stu.setSage(25); //1.读取大配置文件,获取要连接的数据库信息 Configuration cfg=new Configuration().configure("hibernate.cfg.xml"); //2.创建SessionFactory工厂 SessionFactory factory=cfg.buildSessionFactory(); //3.加工session Session session=factory.openSession(); Transaction tx = session.beginTransaction(); //4.Hibernate保存 session.save(stu); tx.commit(); System.out.println("session"); }}
我们把公共的代码统一封装到类中
public class HibernateUtil { private static Configuration cfg=new Configuration().configure(); private static SessionFactory factory=cfg.buildSessionFactory(); //公用的方法getSession(); public static Session getSession() { return factory.openSession(); } //关闭的方法 public static void CloseSession() { getSession().close(); }}
这样我们就可以使用Hibernate框架进行数据测试了!
2016年8月28日15:22:27
Hibernate入门
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。