DML插入一条数据

本文提供了一个使用 Java 进行 MySQL 数据库操作的例子,演示了如何通过命令行参数接收 ID 和姓名,然后利用 JDBC 将这些数据插入到名为 'c' 的表中。此示例涵盖了加载数据库驱动、建立连接、执行 SQL 插入语句及资源释放等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class TestDML2 {

public static void main(String[] args) {

Connection conn = null;
Statement stat = null;
int id = 0;
String name = args[1];

if (args.length != 2) {
System.out.println("Parameter Error! Please Input Again!");
System.exit(-1);
}
id = Integer.parseInt(args[0]);
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/student?user=root&password=root");
stat = conn.createStatement();
String sql = "insert into c values(" + id +",'" + name +"')";
System.out.println(sql);
stat.executeUpdate(sql);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try{
if(null != stat){
stat.close();
stat = null;
}
if(null != conn) {
conn.close();
conn = null;
}
} catch(SQLException e) {
e.printStackTrace();
}
}

}

}

### DML 插入数据 示例教程 #### 单条记录插入 单条记录插入是最基本的 `INSERT` 操作形式之一。通过指定目标表以及对应的列名和值来完成数据插入。 ```sql -- 向名为 user_info 的表中插入一条记录 INSERT INTO user_info (id, name, age) VALUES (1, 'Alice', 25); ``` 上述 SQL 语句表示向 `user_info` 表中的 `id`, `name`, 和 `age` 列分别插入值 `1`, `'Alice'`, 和 `25`[^1]。 如果省略列名,则需要确保 `VALUES` 中的值顺序与表定义时的列顺序完全一致: ```sql -- 省略列名的情况 INSERT INTO user_info VALUES (2, 'Bob', 30); ``` 此方法适用于所有列都需要赋值的情形,但如果某些列为可选字段或者有默认值,则建议显式指定列名以提高代码清晰度和灵活性[^2]。 --- #### 多条记录批量插入 当需要一次性插入多条记录时,可以通过扩展 `VALUES` 子句实现更高效的写法。 ```sql -- 批量插入三条订单信息到 order_info 表 INSERT INTO order_info (order_id, month, amount, quantity) VALUES ('034656', '202201', 1542.5, 36), ('025479', '202201', 2623.5, 30), ('028752', '202201', 1263.5, 40); ``` 以上示例展示了如何利用逗号分隔多个 `(value)` 组合的方式一次插入多行数据[^3]。注意每组括号内的值数量需匹配所声明的目标列数。 另外,在特定场景下也可以不提供列名列表,前提是所提供的每一项都严格对应于创建该表格时预设好的结构布局。 --- #### 动态查询结果集作为源进行插入 (`INSERT ... SELECT`) 除了手动罗列具体数值外,还可以基于另一张已存在的表执行动态查询并将返回的结果存放到新的位置里去。 假设存在一张临时存储客户交易明细的 staging 表格 customer_staging ,现在希望把这些资料迁移到正式版 customers_final 当中: ```sql -- 将来自 customer_staging 的全部内容复制至 customers_final INSERT INTO customers_final (customer_id, first_name, last_name, email) SELECT id AS customer_id, fname AS first_name, lname AS last_name, contact_email AS email FROM customer_staging; ``` 这里的关键在于 `SELECT` 部分会决定最终要传递给接收端的确切项目集合,并且它们的数量/类型应该能够兼容目的区域的要求。 --- #### 注意事项 - **约束验证**:在实际应用过程中需要注意数据库层面的各种限制条件比如主键冲突等问题。 - **性能考量**:对于大规模的数据导入任务来说,采用事务控制机制或是调整批处理大小往往能带来显著的速度提升效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值