超牛牪犇Java之Hibernate基础

一.使用步骤

1.导入框架(共12个包)

    required文件夹下的所有jar包

    jpa-metamodel-generator文件夹下的包

2.创建Hibernate的主配置文件

    默认放在src下

    文件名字默认 hibernate.cfg.xml

3.创建实体类(User)

    建议:字段名和对象的属性名相同

4.创建与实体类对应的配置文件

    命名规范:实体类名.hbm.xml

    作用:配置实体类与数据库表的映射关系

5.从主配置文件中 配置 映射文件的路径

需要的jar包以及主配置文件:

链接: https://pan.baidu.com/s/1mbeggzhaGn1AiN2k7GS_QQ

密码: inz3

二.用JUnit测试包测试方法

JUnit测试可以单独运行一个方法

注意:

方法不能使用private来修饰

只能用public修饰 并且要求无参 不能带有返回值

使用方法: 在方法前加一个 @Test

具体步骤(模板):

@Test
public void fun2() {
	// Session.get(查询对象的.class ,id); 方法
	// 1.读取配置主文件
	Configuration configuration = new Configuration().configure();
	// 2.创建session工厂
	SessionFactory sessionFactory = configuration.buildSessionFactory();
	// 3.获取session对象
	Session openSession = sessionFactory.openSession();
	// 通过session操作数据库
	// 4.开启事务
	Transaction transaction = openSession.beginTransaction();
	// 5.操作数据库
        
	// 6.提交事务
	transaction.commit();
	// 关闭资源
        session.close();
	sessionFactory.close();
}

方法一:

向数据库中插入一条数据(一条记录) 需要创建一个对象

方法只需写在上面第五步的位置

User user = new User();
user.setUsername("Taylor");
user.setPassword("123");
//将对象保存到数据库中
session.save(user);

方法二. 根据ID(主键)查询

有load和get两个方法

区别:

get方法 : 只要该方法执行就会产生sql语句 并查询数据库 返回对象

load方法 : 懒加载方式进行查询

load方法 : 执行了不会立即去查询数据库 而是当你使用该查询结果时 才会去查询数据库(如果这时候session释放了 就会报错)

get方法:

参数二是数据库中存的id号(主键)

User user = session.get(User.class, 1);
System.out.println(user);

load方法:

User user = session.load(User.class, 1);
System.out.println(user);

方法三. 修改对象(根据id 主键)

User user = session.get(User.class, 1);
//修改对象的值		user.setUsername("anger");
//同步到数据库
session.update(user);

方法四. 删除 (根据id 主键)

User user = new User();
user.setId(1);
session.delete(user);

方法五.

HQL语句查询 是面向对象的查询方式

语句中写东西都是表示实体类 或者 实体类中的属性的

查询数据库中的所有User对象(查询全表)

(一个参数的)

Query<User> query = session.createQuery("from com.commander.User");
List<User> list = query.list();
for (User u : list) {
    System.out.println(u);
}

(两个参数的)

Query<User> query = session.createQuery("from User", User.class);
//从查询的结果集中取出数据 并且取出的是个集合
List<User> list = query.list();
for (User u : list) {
    System.out.println(u);
}

方法六. 使用原生sql语句查询

NativeQuery<Object[]> query = session.createNativeQuery("select * from user where username=?");
//替换占位符
//参数1 占位符的索引 从1开始
//参数2 要替换的值
query.setParameter(1, "naier");
//获取结果
List<Object[]> list = query.list();
for (Object[] objects : list) {
	for (Object object : objects) {
		System.out.println(object);
	}
}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值