JDBC-增删查改操作
使用场景:测试家族族长分成时需要批量添加家族流水记录,但手动添加和SQL语句添加较为麻烦
操作步骤
运行环境:Java8+IDEA
1.打开IDEA
点击File—>New—>Project—>Package—>Java Class,文件目录如下:
Add--增加 Delete--删除
Find--查询 Revise--更改
2.下载Java连接MySQL驱动
下载网址:http://www.manong5.com/104575704/
下载好将包和之前的文件放在同一目录即可
3.编写代码
代码如下:
Add--增加
package Data;
import java.sql.*;
import java.util.Scanner;
public class Add {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入id:");
int id = in.nextInt();
System.out.println("请输入uid:");
int uid= in.nextInt();
System.out.println("请输入family_id:");
int family_id = in.nextInt();
System.out.println("请输入room_uid:");
int room_uid = in.nextInt();
System.out.println("请输入gift_record_id:");
int gift_record_id = in.nextInt();
System.out.println("请输入charm_value:");
int charm_value = in.nextInt();
System.out.println("请输入type:");
int type = in.nextInt();
System.out.println("请输入create_time:");
String create_time = in.next();
try {
Class.forName(Driver.class.getName());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
//建立连接
try {
Connection con;
String url = "jdbc:mysql://host:port/dbname";
String user = "root";
String password = "password";
con = DriverManager.getConnection(url, user, password);
String sql = "INSERT INTO family_charm_record (id,uid,family_id,room_uid,gift_record_id,charm_value,type,create_time) values(?,?,?,?,?,?,?,?)";
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, id);
ps.setInt(2, uid);
ps.setInt(3, family_id);
ps.setInt(4, room_uid);
ps.setInt(5, gift_record_id);
ps.setInt(6, charm_value);
ps.setInt(7, type);
ps.setString(8, create_time);
int num = ps.executeUpdate();
System.out.println(num);
ps.close();
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
BatchAdd--批量增加
package Data;
import java.sql.*;
//import java.util.Scanner;
public class BatchAdd {
public static void main(String[] args) {
/*
Scanner in = new Scanner(System.in);
System.out.println("请输入id:");
int id = in.nextInt();
System.out.println("请输入uid:");
int uid = in.nextInt();
System.out.println("请输入family_id:");
int family_id = in.nextInt();
System.out.println("请输入room_uid:");
int room_uid = in.nextInt();
System.out.println("请输入gift_record_id:");
int gift_record_id = in.nextInt();
System.out.println("请输入charm_value:");
int charm_value = in.nextInt();
System.out.println("请输入type:");
int type = in.nextInt();
System.out.println("请输入create_time:");
String create_time = in.next();
*/
try {
Class.forName(Driver.class.getName());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
//建立连接
try {
Connection con;
String url = "jdbc:mysql://host:port/dbname";
String user = "root";
String password = "password";
con = DriverManager.getConnection(url, user, password);
String sql = "INSERT INTO family_charm_record (id,uid,family_id,room_uid,gift_record_id,charm_value,type,create_time) values(?,?,?,?,?,?,?,?)";
//PreparedStatement ps = con.prepareStatement(sql);
int i = 1;
while (i < 5) {
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, 983 + i);
ps.setInt(2, 161004534);
ps.setInt(3, 91);
ps.setInt(4, 62480729);
ps.setInt(5, 230121);
ps.setInt(6, 1000);
ps.setInt(7, 2);
ps.setString(8, "2019-07-19 00:00:00");
i++;
int num = ps.executeUpdate();
System.out.println(num);
ps.close();
}
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
Delete--删除
package Data;
import java.sql.*;
public class Delete {
public static void main(String[] args) {
try {
Class.forName(Driver.class.getName());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
String url = "jdbc:mysql://host:port/dbname";
String user = "root";
String password = "password";
try {
Connection con = DriverManager.getConnection(url, user, password);
String sql = "delete from family_charm_record where id in (985,986)";
PreparedStatement ps = con.prepareStatement(sql);
int num = ps.executeUpdate();
System.out.println(num);
ps.close();
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
Find--查询
package Data;
import java.sql.*;
public class Find {
public static void main(String[] args) {
try {
Class.forName(Driver.class.getName());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
try {
String url = "jdbc:mysql://host:port/dbname";
String user = "root";
String password = "password";
Connection con = DriverManager.getConnection(url, user, password);
String sql = "SELECT a.phone,n.noble_name FROM account a,noble_users n WHERE a.uid=n.uid;";
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
/*
int id = rs.getInt(1);
String name = rs.getString(2);
String sex = rs.getString(3);
int age = rs.getInt(4);
String address = rs.getString(5);
System.out.printf("%4s %4s %4s %4s %4s\n",id,name,sex,age,address);
*/
String phone=rs.getString(1);
String noble_name=rs.getString(2);
System.out.printf("%4s %4s\n",phone,noble_name);
}
rs.close();
ps.close();
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
Revise--更改
public class Revise {
public static void main(String[] args) {
try {
Class.forName(Driver.class.getName());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
String url = "jdbc:mysql://host:port/dbname";
String user = "root";
String password = "password";
try {
Connection con = DriverManager.getConnection(url, user, password);
String sql = "update family_charm_record set uid=?,family_id=?,room_uid=?,gift_record_id=?,charm_value=?,type=?,create_time=? where id=984";
PreparedStatement ps = con.prepareStatement(sql);
/*
ps.setString(1, "小林子");
ps.setString(2, "女");
ps.setInt(3, 21);
ps.setString(4, "海南");
ps.setInt(5, 7);
*/
ps.setInt(1, 161004535);
ps.setInt(2, 91);
ps.setInt(3, 62480728);
ps.setInt(4, 231089);
ps.setInt(5, 2000);
ps.setInt(6, 2);
ps.setString(7, "2019-07-19 17:00:30");
int num = ps.executeUpdate();
System.out.println(num);
ps.close();
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
注:使用时注意将host:port/dbname,password需要修改为自己项目的数据库连接
4.使用总结
使用循环批量增加数据时需要注意数据表的主键唯一性,不要和已有的发生冲突
JDBC-增删查改操作的更多相关文章
- 在Eclipse上实现简单的JDBC增删查改操作
在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图 编写Product类 public clas ...
- 利用dbutils工具实现数据的增删查改操作(dbutis入门)
一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...
- Mybatis基础配置及增删查改操作
一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)
php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...
- myBatis 实现用户表增删查改操作<方法1 没有使用接口的>(最终版)
在UserMapper.xml中添加增删改查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...
- SSM框架-MyBatis框架数据库的增删查改操作
话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:
- java操作ElasticSearch(es)进行增删查改操作
有时间是要了解一下ES这个东西的~ ---------------------------------------------------------------------------------- ...
- myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)
这2种方法的区别:1.添加接口 2.运用接口来实现 其他的都一样 添加接口 //接口的名字和xml的名字一样,这样xml中的namespace就不用改 public interface UserMap ...
- JDBC增删查改(使用配置文件)
JDBCDemo2.java package com.zhangbz.jdbc; import java.sql.Connection; import java.sql.ResultSet; impo ...
随机推荐
- w3cschool-Hibernate 教程
什么是 ORM? ORM 表示 Object-Relational Mapping (ORM),是一个方便在关系数据库和类似于 Java, C# 等面向对象的编程语言中转换数据的技术.一个 ORM 系 ...
- 一文读懂 es6 中class方法中的this绑定
一直以来有这么个疑问? class 的方法中没有自动的绑定this 为什么手动绑定之后,在绑定之后的方法里调用class中的其他的方法(这个方法为什么就能使用this,不也应该是null或者undef ...
- 字符流:FileReader/FileWriter的使用
读取文件 1.建立一个流对象,将已存在的一个文件加载进流. FileReader fr = new FileReader(new File("Test.txt"));2.创建一个 ...
- 如何解决:Android Studio (version 4.1); Flutter plugin not installed and Dart plugin not installed errors
出现的现象 android studio 4.1已经安装了flutter和dart插件,但是执行 flutter doctor依然报错. [!] Android Studio (version 4.1 ...
- pytest自动化测试 - 我对测试用例超时处理的一点看法
1 pytest自动化测试 - 我对测试用例超时处理的一点看法 1.1 背景 用例在执行过程中,可能由于网络等待,或者等待一些特殊的文件,而又由于一些异常,导致这些条件一直不能满足,用例卡死,这种 ...
- 安川Yaskawa机器人DX100示教器维修的方法
安川Yaskawa机器人DX100示教器维修的优劣势分析 安川Yaskawa机器人示教编程,工业机器人维修,即操作人员经过安川机器人示教器,ABB机器人保养,手动操控机器人的关节运动,以使机器人运动到 ...
- warning C291: not every exit path returns a value 在switch分支中使用return
switch(data) { case 1: ...
- 【博客搭建】Hexo使用笔记
[博客搭建]Hexo 使用笔记 Hexo 是一款前端博客框架,可以自动根据基于 Markdown 的文章生成博客网站代码. 基本概念 项目结构 目录 描述 _config.yml 网站的配置信息 th ...
- autMan奥特曼机器人-对插件权限的管理
为了避免某些插件在用户不知情的情况下读取使用用户隐私数据,受" 安卓手机上安装的应用需申请电话.位置.通讯录等权限 "的启发,autMan增加了数据桶读取权限设置页面. 当前受限制 ...
- Nginx - [02] 安装部署&配置
官网下载地址:http://nginx.org/en/download.html 001 || 安装[windows] 解压之后,在命令提示符窗口启动nginx.exe 在浏览器访问80端口:loca ...