Java完整实现数据库表的增删查改操作
本文将介绍如何使用Java语言来实现对数据库的增删查改操作,主要涉及Java SQL API,包括连接数据库、执行SQL语句以及使用PreparedStatement预编译语句。 在Java编程中,与数据库交互是常见的任务,通常我们会使用Java的JDBC(Java Database Connectivity)API来实现。以下是一个简单的例子,展示了如何使用Java实现数据库的增删查改操作: 首先,我们需要引入Java SQL相关的库,这通常通过在代码顶部添加`import java.sql.*;`来完成。这会包含所有与数据库操作相关的类和接口。 在给定的例子中,创建了一个名为TEST的类,并在其中的`main`方法中执行数据库操作。首先,通过`Class.forName()`加载数据库驱动,这里是Microsoft SQL Server的驱动`com.microsoft.jdbc.sqlserver.SQLServerDriver`。然后,使用`DriverManager.getConnection()`建立到数据库的连接。连接字符串包含了数据库的URL、数据库名、用户名和密码。 在连接建立后,创建一个`Statement`对象,用于执行SQL语句。在这个例子中,使用`executeUpdate()`方法执行了`USE xxx`语句,切换到了名为“xxx”的数据库。 接着,执行一系列的插入操作。通过循环,生成不同的数据并构建`INSERT INTO`语句,然后使用`executeUpdate()`将数据插入到`student`表中。 为了查询数据,使用`executeQuery()`执行`SELECT * FROM student`语句,获取`ResultSet`对象。遍历这个结果集,可以获取并打印出所有记录的`name`字段。 最后,展示了如何使用`PreparedStatement`来进行更新操作。`PreparedStatement`是一种预编译的SQL语句,它可以防止SQL注入攻击,提高性能。在`upd`变量中定义了`UPDATE`语句,然后通过`prepareStatement()`创建对应的PreparedStatement对象。设置参数值,最后调用`executeUpdate()`来执行更新。 值得注意的是,示例中的数据库连接没有被关闭,这可能导致资源泄漏。在实际开发中,确保每次操作完成后关闭`Connection`、`Statement`和`ResultSet`是非常重要的,通常使用`finally`块来确保这些资源的正确释放。 这个例子展示了Java进行数据库操作的基本流程,包括连接数据库、执行SQL语句(增、查、改)以及处理结果集。在实际项目中,可能还需要考虑事务管理、异常处理和性能优化等更复杂的方面。
class TEST{
public static void main(String [] args) throws Exception{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn = DriverManager.getConnection(
"jdbc:sqlserver://localhost:1433;" +
" databasename=xxx;" +
"user=sa;password=123456");
/*************增加表数据*************************/
Statement stmt = conn.createStatement();
stmt.executeUpdate("use xxx");
for(int i=1;i<=5;i++){
String x = "1060423"+i;
String y ="张"+i;
int z = ((int)Math.random()*40)+60;
String sql="insert into student(id,name,score) values("+x+",'"+y+"',"+z+")";
stmt.executeUpdate(sql);
}
//conn.close();
/*************查表*************************/
String sel="select * from student";
ResultSet rs = stmt.executeQuery(sel);
while(rs.next()){
String id = rs.getString(3);
String name = rs.getString(2);
String score = rs.getString(1);
System.out.println(name);
下载后可阅读完整内容,剩余1页未读,立即下载
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦