初级Java开发面试题————操作数据库方式与设计模式应用

爆肝分享最新阿里java面试题:java初级+中级+高级面试题及答案,学完直接入职阿里,真的不是梦! 杭州-阿里云-Java实习生 List 和 Set 的区别 HashSet 是如何保证不重复的 HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? HashMap 的扩容过程 HashMap 1.7 与 1.8 的 区别,说明 1.8 做了哪些优化,如何优化的? final finally finalize 对象的四种引用 Java获取反射的三种方法 Java反射机制 Arrays.sort和Collections.sort实现原理和区别 Link 阅读详情

1. 在业务层使用JDBC直接操作数据库-最简单,最直接的操作

1)数据库url,username,password写死在代码中

     Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
     String url="jdbc:oracle:thin:@localhost:1521:orcl";
     String user="scott";
     String password="tiger";
     Connection conn= DriverManager.getConnection(url,user,password);  
     Statement stmt=conn.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
     String sql="select * from test";
     ResultSet rs=stmt.executeQuery(sql);

2)采用Facade和Command模式,使用DBUtil类封装JDBC操作;
数据库url,username,password可以放在配置文件中(如xml,properties,ini等)。
这种方法在小程序中应用较多。

2.DAO(Data Accessor Object)模式-松耦合的开始
DAO = data + accessor + domain object

例如User类-domain object (javabean)

UserDAO类-accessor ,提供的方法getUser(int id),save(User user)内包含了JDBC操作
在业务逻辑中使用这两个类来完成数据操作。

使用Factory模式可以方便不同数据库连接之间的移植。

3.数据库资源管理模式

  • 3.1 数据库连接池技术

资源重用,避免频繁创建,释放连接引起大大量性能开销;
更快的系统响应速度;

通过实现JDBC的部分资源对象接口( Connection, Statement, ResultSet ),可以使用Decorator设计模式分别产生三种逻辑资源对象: PooledConnection, PooledStatement和 PooledResultSet。

一个最简单地数据库连接池实现:

public class ConnectionPool {

        private static Vector pools;
        private final int POOL_MAXSIZE = 25;
        /**
         * 获取数据库连接
         * 如果当前池中有可用连接,则将池中最后一个返回;若没有,则创建一个新的返回
         */
        public synchronized Connection getConnection() {
               Connection conn = null;
               if (pools == null) {
                      pools = new Vector();
               }


               if (pools.isEmpty()) {
                      conn = cr
【Java架构师面试题】设计模式面试专题(共35题含答案) 设计模式(DesignPattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 本篇为设计模式面试专题,总共收录了35道常见面试题及答案解析,希望能帮到你~ 1、什么是设计模式? 就是经过实践验证的用来解决特定环境下特定问题的解决方案 2、设计模式用来干什么? 寻找合适的对象 决定对象的粒度 指定对象的接口 描述对象的实现 运用复用机制 重复使用经过实践验证的正确的,用来解决某一类问题的解决方案 阅读详情

相关推荐

java开发3~5年工作经验面试题

栈帧:小W相当于一个先进后出的队列,执行A方法时,会创建一个栈帧,小W会为该栈帧分配区域用于储存A方法的局部变量,如果A方法里调用了B方法,然后执行到了B方法时,再创建一个B方法的栈帧,小W会为该栈帧分配区域用于储存B方法的局部变量,执行完B方法后,该栈帧会被删除,意为出栈,最后执行完A方法后,删除A方法的栈帧。同理,静态变量是存储在方法区中,如果静态变量是一个对象,先把对象存储到堆里,也是在方法区中存储的对象的引用。1,get请求的参数拼接在url上面,post请求的参数在请求体中。

刻苦的樊同学 2117

Java面试题

N年前收集的面试题都放在这了,Java基础,前端,框架,数据库等…… 针对面试初级 一起复制的,有点乱,自己整理一下吧! jdbc的原理,怎么连接数据库的? 需要深入的了解 1)在开发环境中加载指定的数据库驱动程序  导入数据库驱动包 2)加载驱动程序  java程序中,通过Class.forName来指定数据库的驱动程序  3)创建数据库连接对象  通过DriverManager类创建

HackAge4619的博客 7114

java数据库面试题目

1.数据库三大范式: 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。 第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式,如下表所示。 上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。 2.第二范式(确保表中的每列都和主键相关) 第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。 比如要设计一个订单信息表,因为订单中可能会

瑞芯微RV1126平台人脸识别模型转换实战:从ONNX到RKNN的完整流程

本文详细介绍了在瑞芯微RV1126平台上,将人脸识别模型从ONNX格式转换为RKNN格式的完整实战流程。内容涵盖模型结构分析、RKNN-Toolkit环境搭建、量化数据集准备、核心转换脚本编写与参数解析,以及在设备端的部署测试与性能调优,旨在帮助嵌入式AI开发者高效完成模型转化,提升边缘设备上的人脸识别应用部署效率。

o5p6q的博客 570

VINS-Fusion实战:从零搭建无人机视觉惯性导航系统(附ROS配置指南)

本文提供了一份详尽的VINS-Fusion实战指南,涵盖从硬件选型、传感器标定到ROS节点配置与参数调优的全过程。重点解析了如何将VINS-Fusion视觉惯性里程计系统与PX4飞控深度集成,并实现室外GPS融合,旨在帮助开发者从零搭建稳定、高精度的无人机视觉惯性导航系统。

lll78的博客 865

Python量化交易实战:pytdx库高效获取通达信分笔成交数据

本文详细介绍了如何使用Python的pytdx库高效获取通达信分笔成交数据,为量化交易提供关键市场微观结构分析。通过环境搭建、服务器连接、数据获取与清洗的完整流程,帮助开发者快速掌握这一免费高质量数据源,并实现分笔数据的实战分析与应用。

weixin_29061509的博客 1349

稳定性性能系列之十五——系统稳定性监控体系建设:从指标到预警的完整方案

深入探讨Android系统稳定性监控体系的设计与实现,涵盖指标体系设计、数据采集方案、异常检测算法、预警响应机制,并提供完整的监控平台搭建实践。

Cheson的专栏 1358

STM32实战开发(76):STM32开发无线传感器网络(WSN)完整实现

本文介绍了如何基于STM32开发无线传感器网络,包括硬件选择、通信协议、系统设计和编程实现。通过STM32的强大性能和低功耗特性,我们能够构建高效、可靠的无线传感器网络。无论是Zigbee、LoRa、Wi-Fi还是BLE协议,STM32都能够与多种通信模块进行兼容,满足不同应用的需求。希望这篇文章能帮助您了解无线传感器网络的构建流程,并为您的项目提供有价值的参考。

2201_76125393的博客 1058

kaggle学习笔记-餐厅数据挖掘

分析Zomato数据集的基本思想是为了公平地了解影响在班加罗尔不同地方建立不同类型餐厅的因素,每个餐厅的总评级,班加罗尔是这样一个城市,拥有超过12,000家餐厅,餐厅供应来自世界各地的菜肴。每天都有新的餐馆开业,这个行业还没有饱和,需求也在与日俱增。然而,尽管需求不断增加,新餐馆却很难与老牌餐馆竞争。大多数餐厅都供应同样的食物。班加罗尔是印度的IT之都。这里的大多数人主要依靠餐馆的食物,因为他们没有时间自己做饭。由于对餐馆的需求如此巨大,因此研究一个地方的人口统计学就变得很重要。

优快云XXCQ的博客 1862

别再写XPath改DOM了!用OpenClaw零代码搞定爬虫全流程(抓取+清洗+存储)

免费版的大模型调用次数有限制(每天100次),但企业版是无限的,还能私有化部署;大模型分析DOM结构有时候会慢1-2秒,但比起节省的时间,完全可以接受;自定义Skill的文档还不够完善,但社区很活跃,有问题在Discord里问,很快就能得到回复。但总的来说,OpenClaw真的改变了我写爬虫的方式——以前我是“代码的奴隶”,现在我是“需求的提出者”,把时间花在更有价值的业务逻辑上,而不是重复繁琐的DOM调试上。如果你也在被传统爬虫折磨,强烈建议你试试OpenClaw,相信我,用了就回不去了。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1314

uniapp [全端兼容] - 详细实现集成接入萤石云摄像头监控示例代码,页面单个或多个九宫格监控画面同时监控播放推流(视频控制方向上下左右移动/调节音量声音/全屏/截屏录制/回放/对讲/切换清晰度)

uni-app,h5移动端网页,小程序,安卓,苹果ios,app,nvue,EZVIZ萤石,uniapp萤石云摄像头监控,uniApp项目集成萤石云详细示例代码,Uniapp中使用萤石云播放视频,使用萤石云播放视频,萤石云实现多窗口监控,展示多个监控画面同时播放,ezuikit.js,云台控制左右移动,莹石摄像头直播视频,萤石视频回放,摄像头黑屏不显示,加载慢报错出错,多个摄像头宫格布局,niapp萤石云视频监控对接,实现海康萤石直播预览、回放、云台控制功能,如何利用萤石实现直播推流回流,实时监控播放,监控

🏆 前端领域优质创作者 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 面试题——JDK、JRE、javac与JVM的关系
下一篇: 你真明白Java内存溢出吗?我看你就是浑水摸鱼!!!
Java大鲨鱼
博客等级 码龄5年 2211粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值