hibernate操作mysql_Hibernate入门 连接Oracle数据库 简单增删改查

最近入门学习Hibernate框架,想分享总结一下踩过的坑和成功后的案例。

所用软件:

eclipse

Oracle数据库 (如果你使用的不是Oracle数据库可以修改hibernate.cfg.xml里面的配置)

现在,我们来看一下我们的包结构和数据库表结构

第一步:建立eclipse项目

1.eclipse里面新建一个Dynamic Web Project项目

2.在src中建一个名叫hibernate.cfg.xml的xml文件和两个分别叫com.Sakura.maya.model和com.Sakura.maya.test的包。

3.在com.Sakura.maya.model包中建两个类Hibernate.java和Hibernate.hbm.xml的文件

4.在com.Sakura.maya.test包中建立一个叫HibernateAction的类

结构如下:

7618feb5cd9791f0136bdb0613649a82.png

第二步:引入jar包

包名如下:

dd18709d426524d0a8280962e30b992b.png

第三步:创建数据库

create table Table_wcc_text(

stu_id      number(10)   primary key,

stu_name    varchar2(20) not null,

stu_sex     varchar2(20)  default 'men' check(stu_sex in('men','women'))

)

结构如下:

fdafca10a3d3e1261233188eaf9793a0.png

第四步:加入代码

1.Hibernate.java

package com.Sakura.maya.model;

public class Hibernate {

private int stu_id;

private String stu_name;

private String stu_sex;

public int getStu_id() {

return stu_id;

}

public void setStu_id(int stu_id) {

this.stu_id = stu_id;

}

public String getStu_name() {

return stu_name;

}

public void setStu_name(String stu_name) {

this.stu_name = stu_name;

}

public String getStu_sex() {

return stu_sex;

}

public void setStu_sex(String stu_sex) {

this.stu_sex = stu_sex;

}

@Override

public String toString() {

return "HibernateAction [stu_id=" + stu_id + ", stu_name=" + stu_name

+ ", stu_sex=" + stu_sex + "]";

}

}

2.Hibernate.hbm.xml

/p>

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

org.hibernate.dialect.OracleDialect

oracle.jdbc.driver.OracleDriver

用户名

密码

jdbc:oracle:数据库链接

true

3.hibernate.cfg.xml

/p>

"-//Hibernate/hibernate-Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

4.HibernateAction.java

package com.Sakura.maya.test;

import java.util.List;

import javax.security.auth.kerberos.DelegationPermission;

import org.hibernate.*;

import org.hibernate.cfg.*;

import com.Sakura.maya.model.Hibernate;

public class HibernateAction {

//读取hibernate.cfg.xml的配置,加载Hiberna的类库

Configuration config=new Configuration().configure();

//根据配置,生成session工厂

SessionFactory factory= config.buildSessionFactory();

//用工厂生成session

Session session =factory.openSession();

public static void main(String[] args) {

HibernateAction dl = new HibernateAction();

dl.SelectAll();

}

public void Select(Integer stu_id) {

// 查询

Hibernate data = (Hibernate) session.get(Hibernate.class, stu_id);

System.out.println(data.getStu_id() + data.getStu_name()

+ data.getStu_sex());

}

public void SelectAll() {

// 查询所有

String hqlString = "from Hibernate";

Query query = session.createQuery(hqlString);

List list = query.list();

for (Hibernate ll : list) {

System.out.print(ll);

}

session.close();

}

public void Insert() {

//添加

//1.造对象

Hibernate data = new Hibernate();

data.setStu_id('1');

data.setStu_name("Sakura");

data.setStu_sex("men");

//2.用session.save()保存到数据库了

try {

session.beginTransaction();

session.save(data);

session.getTransaction().commit();

System.out.print("添加成功");

} catch (Exception ex) {

session.getTransaction().rollback();

}

session.close();

}

//删除

public void Delete(Integer stu_id) {

//先查出

Hibernate data = (Hibernate) session.get(Hibernate.class, stu_id);// get?�load?�可以查

if (data != null) {

session.beginTransaction();

//删除提交数据库

session.delete(data);

System.out.print("删除成功");

session.getTransaction().commit();

}

session.close();

}

public void update(Integer stu_id) {

//修改

//1.查

Hibernate data = (Hibernate) session.load(Hibernate.class, stu_id);

if (data != null) {

session.beginTransaction();

//2.改

data.setStu_name("Sakura1");

data.setStu_sex("women");

//3.提交

session.update(data);

session.getTransaction().commit();

}

session.close();

System.out.print("修改成功");

}

}

OK!就搭建成功了!

在搭建之中遇见的小问题:

1.显示连接不到数据库

解决方法:可能是你不是oracle数据库在hibernate.cfg.xml中修改连接方法。

2.报错:javax/transaction/Synchronization

解决方法:你需要下载一个jta.jar包

3.报错:找不到hibernate.cfg.xml文件

解决方法:缺少jar包或者放的位置不对,放在src

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值