java 数据库基本操作
1、java数据库操作基本流程
2、几个常用的重要技巧:
可滚动、更新的记录集
批量更新
事务处理
java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接
1、取得数据库连接
1)用DriverManager取数据库连接
例子
String className,url,uid,pwd;
className = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:orasvr;
uid = "system";
pwd = "manager";
Class.forName(className);
Connection cn = DriverManager.getConnection(url,uid,pwd);
2)用jndi(java的命名和目录服务)方式
例子
String jndi = "jdbc/db";
Context ctx = (Context) new InitialContext().lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup(jndi);
Connection cn = ds.getConnection();
多用于jsp中
2、执行sql语句
1)用Statement来执行sql语句
String sql;
Statement sm = cn.createStatement();
sm.executeQuery(sql); // 执行数据查询语句(select)
sm.executeUpdate(sql); // 执行数据更新语句(delete、update、insert、drop等)statement.close();
2)用PreparedStatement来执行sql语句
String sql;
sql = "insert into user (id,name) values (?,?)";
PreparedStatement ps = cn.prepareStatement(sql);
ps.setInt(1,xxx);
ps.setString(2,xxx);
...
ResultSet rs = ps.executeQuery(); // 查询
int c = ps.executeUpdate(); // 更新
3、处理执行结果
查询语句,返回记录集ResultSet
更新语句,返回数字,表示该更新影响的记录数
ResultSet的方法
1、next(),将游标往后移动一行,如果成功返回true;否则返回false
2、getInt("id")或getSting("name"),返回当前游标下某个字段的值
4、释放连接
cn.close();
一般,先关闭ResultSet,然后关闭Statement(或者PreparedStatement);最后关闭Connection
可滚动、更新的记录集
1、创建可滚动、更新的Statement
Statement sm = cn.createStatement(ResultSet.TYPE_SCROLL_ENSITIVE,ResultSet.CONCUR_READ_ONLY);
该Statement取得的ResultSet就是可滚动的
2、创建PreparedStatement时指定参数
PreparedStatemet ps = cn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet.absolute(9000);
批量更新
1、Statement
Statement sm = cn.createStatement();
sm.addBatch(sql1);
sm.addBatch(sql2);
...
sm.executeBatch()
一个Statement对象,可以执行多个sql语句以后,批量更新。这多个语句可以是delete、update、insert等或兼有
2、PreparedStatement
PreparedStatement ps = cn.preparedStatement(sql);
{
ps.setXXX(1,xxx);
...
ps.addBatch();
}
ps.executeBatch();
一个PreparedStatement,可以把一个sql语句,变换参数多次执行,一次更新。
事务的处理
1、关闭Connection的自动提交
cn.setAutoCommit(false);
2、执行一系列sql语句
要点:执行每一个新的sql语句前,上一次执行sql语句的Statement(或者PreparedStatemet)必须先close
Statement sm ;
sm = cn.createStatement(insert into user...);
sm.executeUpdate();
sm.close();
sm = cn.createStatement("insert into corp...);
sm.executeUpdate();
sm.close();
3、提交
cn.commit();
4、如果发生异常,那么回滚
cn.rollback();
分享到:
相关推荐
这份名为“从Java菜鸟到专家的资料”的压缩包文件包含了丰富的学习资源,旨在帮助初学者逐步成长为Java领域的专家。以下是对各个文件的详细解读: 1. **J2EE研究文集.chm**:这个文件专注于Java企业级应用开发,...
Java反射机制是Java语言的一项强大功能,它允许程序在运行时动态地获取类的信息并操作类的对象。这一特性使得Java具有高度的灵活性和强大的扩展性,尤其是在开发框架和库时,反射机制起到了至关重要的作用。本文将...
在《JAVA优化编程详解》这本书中,作者深入探讨了如何将Java编程技能提升到一个全新的层次,特别是聚焦于性能优化这一关键领域。Java优化不仅仅是关于提高代码运行速度,更是关于资源的有效利用,确保应用程序在复杂...
#### 五、高级Java数据库操作技巧 1. **批量操作**:使用BatchUpdate进行批量插入、更新等操作,提高性能。 2. **事务管理**:确保数据的一致性和完整性,使用Connection对象的beginTransaction()和commit()方法控制...
数据库交互是Web应用的重要部分,课程可能涉及JDBC(Java Database Connectivity)API的使用,包括连接数据库、执行SQL语句、处理结果集等操作。同时,可能会讲解ORM(Object-Relational Mapping)框架,如Hibernate...
细品这杯香浓的咖啡——阿里中间件高级专家沈询的Java之旅.docx 给你一次机会面试架构师 你会问什么问题?.docx 超全面:程序员跳槽神级攻略.docx 跳还是不跳,是一个问题——跳槽时该如何权衡?.docx 进入IT企业...
2. **JAVA API**: API(Application Programming Interface)是软件之间交互的接口,JAVA API则是基于JAVA语言的一组预定义类和方法,允许开发者访问和操作操作系统、数据库、硬件设备等功能。 3. **二次开发**: 在...
【Oracle DBA与Java知识点详解】 Oracle数据库管理系统是全球广泛使用的商业级数据库系统,而Java是一种多平台的、面向对象的编程语言。这两者在IT领域中都有着举足轻重的地位,尤其在企业级应用开发中,Oracle作为...
这份资料由国际知名的Java专家编写,它以实际的应用程序小程序展示了Java语言的核心特性以及标准库的广泛功能。通过这些经典代码,你可以对Java编程有更直观、更深入的认识。 在描述中提到,这份资料涵盖了Java API...
### JAVA学习推荐路线详解 在IT领域中,Java作为一门广泛应用的编程语言,其学习路径对初学者至关重要。...这一路线图旨在为Java学习者提供一个全面且系统的指导,帮助他们在编程旅程中不断进步,成为Java领域的专家。
在Java世界里,ORM(Object-Relational Mapping)框架如Hibernate、TopLink和JPA等已经深入人心,它们为开发者提供了方便的数据访问层抽象,使得数据库操作更加便捷。然而,对于某些特定场景,如高性能、低延迟或高度...
### Java程序员必备技能详解 #### 一、语法基础 对于一名Java程序员而言,掌握扎实的语法基础至关重要。这意味着在编写代码时,面对IDE...通过上述十个方面的深入学习,相信每位Java开发者都能够逐步成长为技术专家。
"牛人给java学者的建议.rar"和"java大礼包"这两个文件名暗示了这是一些专家或者经验丰富的开发者分享的Java学习建议和资源集合,可能包括最佳实践、常见问题解答、实战项目案例等,对于初学者和进阶者来说都是宝贵的...
JDBC是Java数据库连接。 - **定义**:JDBC是Java平台提供的一个标准API,用于实现Java应用程序与数据库之间的连接和交互。 - **用途**:JDBC使得Java开发者能够以统一的方式访问不同的数据库系统,简化了数据库操作...
JPA简化了对象关系映射,使得Java对象可以直接操作数据库记录。实例能让你了解如何在J2EE应用中实现事务管理和持久化操作。 7. **Web服务和SOAP**:J2EE支持通过SOAP(Simple Object Access Protocol)创建和消费...
【JAVA学习目标详解】 在学习Java的过程中,有多个关键领域需要深入理解和掌握,这涵盖了从基础语法到高级特性的广泛内容。以下是对标题和描述中提及的一些知识点的详细解释: 1. **面向对象编程(OOA/OOD)与设计...