JDBC插入数据返回数据主键代码实例
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。
代码如下
package com.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date;
import java.util.Properties;
/**
* 数据库连接对象管理类
* @说明
* @author cuisuqiang
* @version 1.0
* @since
*/
public class ConnectionManager {
private static final String url = "jdbc:mysql://localhost:3306/test";
private static final String username = "root";
private static final String userpass = "root";
@SuppressWarnings("deprecation")
public static void main(String[] args) throws Exception{
Connection conn = getConnection();
if (null != conn) {
String sql = "insert into common_user (name) values(?)";
// 指定返回生成的主键
PreparedStatement pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
// 如果使用静态的SQL,则不需要动态插入参数
pstmt.setString(1, new Date().toLocaleString());
pstmt.executeUpdate();
// 检索由于执行此 Statement 对象而创建的所有自动生成的键
ResultSet rs = pstmt.getGeneratedKeys();
if (rs.next()) {
Long id = rs.getLong(1);
System.out.println("数据主键:" + id);
}
}
}
public static Connection getConnection() {
Connection conn = null;
try {
com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
Properties properties = new Properties();
properties.put("user", username);
properties.put("password", userpass);
conn = driver.connect(url, properties);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
}
打印生成的主键:
数据主键:25
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
java中JDBC实现往MySQL插入百万级数据的实例代码
想往某个表中插入几百万条数据做下测试,原先的想法,直接写个循环10W次随便插入点数据试试吧,好吧,我真的很天真.... DROP PROCEDURE IF EXISTS proc_initData;--如果存在此存储过程则删掉 DELIMITER $ CREATE PROCEDURE proc_initData() BEGIN DECLARE i INT DEFAULT 1; WHILE i<=100000 DO INSERT INTO text VALUES(i,CONCAT('姓名',i),
-
JDBC连接MySQL数据库批量插入数据过程详解
这篇文章主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.读取本地json数据 2.jdbc理解数据库 3.批量插入 maven 引入jar包: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2
-
Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(100000),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: 通过使用addBatch()和executeBatch()这一对方法可以实现批量处理数据. 不过值得注意的是,首先需要在数据库链接中设置手动提交,connection.setAutoCommit(false),然后在执行Statement之后执行connection.commit(). import java.io.Bu
-
java实现jdbc批量插入数据
首先介绍三种JDBC批量插入编程方法,进行比较,具体内容如下 JDBC批量插入主要用于数据导入和日志记录因为日志一般都是先写在文件下的等. 我用Mysql 5.1.5的JDBC driver 分别对三种比较常用的方法做了测试 方法一:使用PreparedStatement加批量的方法 try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(o_url, userName, pass
-
JDBC连接MySql数据库步骤 以及查询、插入、删除、更新等
主要内容: JDBC连接数据库步骤. 一个简单详细的查询数据的例子. 封装连接数据库,释放数据库连接方法. 实现查询,插入,删除,更新等十一个处理数据库信息的功能.(包括事务处理,批量更新等) 把十一个功能都放在一起. 安装下载的数据库驱动程序jar包,不同的数据库需要不同的驱动程序(这本该是第一步,但是由于属于安装类,所以我们放在最后) 一.JDBC连接数据库(编辑)步骤(主要有六个步骤) 1.注册驱动: Class.forName("com.mysql.jdbc.Driver");
-
使用JDBC在MySQL数据库中如何快速批量插入数据
使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个方法特别值得注意: void addBatch() throws SQLException Adds a set of parameters to this PreparedStatement object's batch of commands. int[] executeBatch() throws SQLException Submits
-
JDBC链接mysql插入数据后显示问号的原因及解决办法
1.在cmd中进入mysql查看默认的编码格式: mysql> show variables like "%char%"; 若不是utf8(因为我用的是utf8),关掉mysql服务,在my.ini中添加 [client] default-character-set=utf8 [mysqld] default-storage-engine=INNODB character-set-server=utf8 collation-server=utf8_general_ci [mysq
-
Java使用JDBC或MyBatis框架向Oracle中插入XMLType数据
先来了解一下什么是XMLType类型. XMLType是Oracle从9i开始特有的数据类型,是一个继承了Blob的强大存在,可以用来存储xml并提供了相当多的操作函数.理论上可以保存2G大小的数据. 那怎么样通过java来插入XMLType类型的数据呢?项目当中采用的是Mybatis,总是出现莫名的异常,都搞不清楚到底是Mybatis的问题还是jdbc本身的问题,所以打算一步步来,先搞定jdbc,再解决Mybatis. JDBC 在折腾了半天之后,发现jdbc操作主要有3种方法: 一.在Jav
-
mybatis insert返回主键代码实例
这篇文章主要介绍了mybatis insert返回主键代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在使用ibatis插入数据进数据库的时候,会用到一些sequence的数据,有些情况下,在插入完成之后还需要将sequence的值返回,然后才能进行下一步的操作. 使用ibatis的selectKey就可以得到sequence的值,同时也会将值返回.不过对于不同的数据库有不同的操作方式. 对于oracle: <insert id="
-
JDBC插入数据返回数据主键代码实例
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.JDBC也是Sun Microsystems的商标.我们通常说的JDBC是面向关系型数据库的. 代码如下 package com.test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Re
-
Mybatis批量插入返回插入成功后的主键id操作
我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,<insert>标签属性. 2.不支持生成自增主键的数据库:使用<selectKey>. 但是怎么对批量插入数据返回自增主键的解决方式网上看到的还是比较少,至少百度的结果比较少. Mybatis官网资料提供如下: First, if your database supports auto-generated key
-
Django模型序列化返回自然主键值示例代码
场景 在设计表结构时,难免需要建立一些外键关联.例如这样两个模型: from django.db import models class Person(models.Model): username = models.CharField(max_length=100) birthdate = models.DateField() class Book(models.Model): name = models.CharField(max_length=100) author = models.Fo
-
MySQL 处理插入过程中的主键唯一键重复值的解决方法
本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE:接下来就分别看看这三种方式的处理办法. IGNORE 使用ignore当插入的值遇到主键(PRIMARY KEY)或者唯一键(UNIQUE KEY)重复时自动忽略重复的记录行,不影响后面的记录行的插入, 创建测试表 CREATE TABLE Tignore (ID INT NOT NULL PRIMARY KEY , NAME1 INT )d
-
Java实现TCP/IP协议的收发数据(服务端)代码实例
这篇文章主要介绍了Java实现TCP/IP协议的收发数据(服务端)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 功能如下: 注: 只有服务端,没有客户端,测试时采用第三方软件作为客户端的. 收发数据目前能正常收发数据,只是中文的会变成乱码显示. 采用Thread类实现一个收发数据的线程. 服务端代码: import java.io.IOException; import java.io.InputStream; import java
-
java从命令行获取数据的三种方式代码实例
这篇文章主要介绍了java从命令行获取数据的三种方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一种:利用Scanner对象 import java.util.Scanner; public class TestInputOuput { public static void main(String[] args) { System.out.println("请输入:"); Scanner inp = new Scanne
-
Ajax异步提交数据返回值的换行问题实例分析
本文实例分析了Ajax异步提交数据返回值的换行问题.分享给大家供大家参考,具体如下: 前面分析介绍了<Javascript基于AJAX回调函数传递参数>及<IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别>,学习了ajax回调函数传参与针对不同浏览器处理中文乱码问题的方法.这里就来分析一下ajax异步提交返回值中换行问题的处理技巧. 背景介绍: 需要实现的功能是:在下拉框中选择分类,提交到PHP根据选择的分类返回该分类下的成员名称,返回值各成员姓名以换行的形式显示到tex
-
Oracle数据库中创建自增主键的实例教程
在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现. 创建表Student Create Table Student( id number(12) primary key, --通过序列和触发器实现id的自增 name varchar2(20) , age number(3) , sex number(1) ) 创建序列Sequence Create Sequence SEQ_
-
利用Python对文件夹下图片数据进行批量改名的代码实例
1. 前言 我们最近在做一个使用flask 模拟 instagram 的图片分享网站, 需要一些基本的图片数据, 我们这里采用的是本地提供, 但是,使用爬虫从网上爬下来的图片,名字都是乱七八糟的,不利于编程,这里就需要对他们进行批量改名操作. 2. 基本思路 使用python 的os 模块,对文件夹进行遍历(listdir), 同时使用rename 进行改名操作 3. 实现效果 4. 实现代码 代码非常简单 # -*- coding:utf8 -*- import os class BatchR
随机推荐
- asp.net实现生成缩略图及给原始图加水印的方法示例
- 正则表达式高级学习技巧
- JavaScript截取指定长度字符串点击可以展开全部代码
- java8学习教程之lambda表达式的使用方法
- 关于微信jssdk实现多图片上传的一点心得分享
- django+js+ajax实现刷新页面的方法
- C# WindowsForm程序同时启动多个窗口类
- php自动识别文件编码并转换为UTF-8的方法
- asp中的ckEditor的详细配置小结
- python和shell变量互相传递的几种方法
- PHP笔记之:日期函数的使用介绍
- C# 常用协议实现模版及FixedSizeReceiveFilter示例(SuperSocket入门)
- Java中一些关键字的使用技巧总结
- 不使用myeclipse注册机得到myeclipse注册码的方法(myeclipse序列号)
- 使用GetInvalidFileNameChars生成文件名
- 利用Laravel生成Gravatar头像地址的优雅方法
- Python实现学生成绩管理系统
- centos6搭建gitlab的方法步骤
- PHP Swoole异步MySQL客户端实现方法示例
- spring boot使用自定义的线程池执行Async任务
