java SSH第一章学习内容(Hibernate入门,配置文档添加序列,Hibernate三种状态)

思路:

创建数据库连接
MYSQL
1.点击页面右上角,选择Database

2.空白地区选择New

3.填写相应的数据库信息(Add JARs为mysql的jar包路径)


Oracle
1.基本步骤一样,这里需要注意选择Oracle(Thin driver)
2.URL路径前面固定,后面跟数据库名字
3.填写管理员的账户密码
4.选择的jar包是在Oracle路径下的ojdbc6.jar包
5.先测试一下是否连接成功
可参考:https://jingyan.baidu.com/album/ad310e80ab1c8c1849f49e22.html?picindex=1




添加Hibernate支持
 

1.新建项目并添加Hibernate支持(右键项目Myelipse-addHibernate)
2.选择版本号,是否备份,Next-Next

3.选择创建好的数据库连接,Next即可

4.这一步要选择一个包存储相关配置信息,设置完毕后点击Finish






使用Hibernate生成实体类和Dao
1.选择要生成的表右键点击-Hibernate

2.根据需求清空填写是否生成实体类和DAO

3.选择native,然后Finish即可




只有实体类的增删改查

参考代码:
public class test {
    public static void main(String[] args) {
        Configuration cu=new Configuration().configure();    //读取配置文件
        SessionFactory sf =cu.buildSessionFactory();    //获得session    
        Session session = sf.openSession();
        Transaction tr = session.getTransaction();
        
        /*//查询
        User user=(User)session.get(User.class, 10);    //通过session反射机制获取相应数据
        System.out.println(user.getUid());*/
        
        /*//增加
        tr.begin();
        User user = new User("豪哥","123");
        session.save(user);
        tr.commit();*/
        
    /*    //修改
        tr.begin();
        User user =  new User();
        user.setUid(10);
        user.setUname("豪爷");
        user.setUpwd("123");
        session.update(user);
        tr.commit();*/
        
        //删除
        tr.begin();
        User user=(User)session.get(User.class, 9);
        session.delete(user);
        tr.commit();
    }
}





使用生成的Dao进行增删改查
1.自动生成的没有update方法,复制save的进行修改,加上开始和提交方法即可,update里面的方法需要改下,截图未改(应改成getSession().update(transientInstance);)

2.删除方法不能直接使用,需要修改一下

3.测试类中,删除特别一点,其他都是通过dao.方法进行操作


参考代码:
public class Test {
    public static void main(String[] args) {
        UserDAO userdao = new UserDAO();
        /*//增加
        User user = new User("哥CG","111");
        userdao.save(user);*/
        
        //删除
        User user = userdao.findById(11);
        userdao.delete(user);
    
        /*//修改
        User user = new User();
        user.setUname("CGGGG");
        user.setUpwd("123");
        userdao.update(user);*/
        
        //查询
        /*    List<User> li = userdao.findByExample(user);
        for (User l:li) {
            System.out.println(l.getUname()+l.getUid());
        }*/
    }
}


二.添加序列
1.首先要在数据库创建一个序列
2.在自动生成的XXXX.xml中进行修改(

 <param name="sequence">序列名</param>





三.知识点 Hibernate java三种状态
瞬时状态,持久状态,游离状态

1瞬时状态(Transient)

通过new创建对象后,对象并没有立即持久化 他并未与数据库发生任何关系,此时java对象的状态为瞬时状态,Session对与瞬时状态的对象一无所知,当对象不在被其他对象引用时他的数据也就丢失了,对象将按照垃圾回收机制处理

2持久状态(Persistent)
当对象与Session关联 被Session管理时 他就除于持久状态,处于持久状态的对象拥有数据标识(数据库中的主键值)那么对象是什么时候与session对象关联的呢

有两种方式:第一种通过Session的查询接口或者是get()方法或者是load方法()从数据库中加载对象的时候,家在状态的对象,通过调用session的save方法或者saveOrUpdate方法时java对象也与session发生关联,对于处于持久状态的对象,session会跟踪和管理他们,如果对象的内部状态发生了任何变化,hibernate会选择合适的实际(如事务提交时)将变更固化到数据库中。

3游离状态(Detached)处于持久化的对象 脱离与其关联的Session管理后对象就处于游离状态,处于游离状态的对象Hibernate无法感知到对象的任何操作Session提供了两个方法(Update() merge())将处于游离状态的对象与一个新的session发生关联,这是对象的状态就从游离转持久化。


session.clear();session清除缓存
session.close();把session关闭
session.evict(goods);只清除存放在session的goods对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值