- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
JDBC面试题及答案(实战版)
1.什么是JDBC?它的核心作用是什么?
答案:JDBC是JavaDatabaseConnectivity的缩写,本质是Java提供的一套操作数据库的API(接口+抽象类),比如java.sql.Connection、java.sql.Statement等。
核心作用是“跨数据库统一访问”——不管是MySQL、Oracle还是PostgreSQL,Java程序都能通过JDBC的标准接口操作,不用因数据库类型不同改写代码。比如用JDBC查MySQL和查Oracle,加载的驱动不同,但调用的executeQuery()方法是一样的。
2.用JDBC连接MySQL的完整步骤是什么?请写关键代码(以MySQL8.0为例)
答案:共5步,关键代码带实际配置:
//1.加载驱动(MySQL8.0驱动类名:com.mysql.cj.jdbc.Driver,5.7是com.mysql.jdbc.Driver)
Class.forName(com.mysql.cj.jdbc.Driver);
//2.获取数据库连接(URL需带时区参数,否则可能报错)
Stringurl=jdbc:mysql://localhost:3306/test_db?serverTimezone=UTCuseSSL=false;
Stringuser=root;
Stringpwd=123456;
Connectionconn=DriverManager.getConnection(url,user,pwd);
//3.创建执行SQL的对象(这里用PreparedStatement防注入)
Stringsql=SELECT*FROMuserWHEREid=?;
PreparedStatementpstmt=conn.prepareStatement(sql);
pstmt.setInt(1,1);//给?占位符赋值
//4.执行SQL并处理结果
ResultSetrs=pstmt.executeQuery();//查询用executeQuery,增删改用executeUpdate
while(rs.next()){//遍历结果集
System.out.println(用户名:+rs.getString(username));
}
//5.关闭资源(顺序:ResultSet→Statement→Connection,用finally保证关闭)
finally{
if(rs!=null)rs.close();
if(pstmt!=null)pstmt.close();
if(conn!=null)conn.close();
}
3.Statement和PreparedStatement的区别?实际开发中用哪个?
答案:核心区别3点,实际开发优先用PreparedStatement:
SQL注入风险:Statement直接拼接SQL,比如SELECT*FROMuserWHEREname=+inputName+,若inputName是OR1=1,会变成查询所有数据,有注入风险;PreparedStatement用?占位符,参数单独赋值,自动转义特殊字符,能防注入。
性能:PreparedStatement会预编译SQL(第一次执行时编译,后续同结构SQL直接用编译结果),若多次执行相同SQL(比如批量插入),性能比Statement高;Statement每次执行都重新编译。
代码可读性:PreparedStatement参数和SQL分离,比如pstmt.setInt(1,id)比拼接字符串更清晰。
4.JDBC怎么控制事务?比如转账场景(A减钱、B加钱,必须同时成功或失败)
答案:JDBC默认事务是“自动提交”(执行SQL后立刻提交),需手动关闭自动提交,再手动控制提交/回滚:
Connectionconn=null;
try{
conn=DriverManager.getConnection(url,user,pwd);
conn.setAutoCommit(false);//1.关闭自动提交,开启手动事务
//执行转账SQL(A减100,B加100)
PreparedStatementpstmt1=conn.prepareStatement
您可能关注的文档
最近下载
- 2024全国建材行业职工助推高质量发展主题竞赛题库大全-中(多选题汇总).pdf VIP
- Pumpkin Tool v.1.4中文指导手册-零维化学动力学仿真反应路径分析.docx VIP
- 宠物与人类健康PPT.ppt VIP
- 体育经济学知到课后答案智慧树章节测试答案2025年春西安体育学院.docx VIP
- 水泥混凝土路面施工方案(精品).docx VIP
- 浸矿对离子型稀土矿体结构影响的试验研究及其应用.doc VIP
- 【Green Fashion Society - PZ Academy】2024纺织服装行业企业ESG研究报告.pdf VIP
- 拟提拔干部考察材料.docx VIP
- 20S517- 排水管道出水口.pdf VIP
- 7.《神奇瑞兽》第2课课件 人美2024版七年级上册.pptx
文档评论(0)