发现非常水啊,全是一个套路,就是根据sql语句通过字符串实现这个操作。然后注意插入时主码要不一样,否则会报错。
给出我的代码。
我的mysql表名称为test下的,然后表的名字为tablename,tablename1之类的。
这几个操作,全都实现了一遍?发现好简单啊。?
所以玩了一个晚上发现,可以搞搞大作业了啊?
package mywork.com;
import java.sql.*;
import java.text.DecimalFormat; // DecimalFormat df = new DecimalFormat("#0.000");
import java.util.Scanner;
import java.math.*;
import java.io.*;
import java.text.*;
import java.util.Arrays; // Arrays.sort(s);
import java.math.BigInteger;
import java.util.Queue;
import java.util.LinkedList;
import java.util.Random;
public class code1 {
public final static Scanner cin = new Scanner(System.in);
public static void main(String[] args) {
int a = 6;
// // System.out.println(a);
// try {
// Class.forName("com.mysql.jdbc.Driver"); // 线加载驱动
// // System.out.println(888);
// } catch (ClassNotFoundException e) {
// System.out.println("找不到驱动程序类 ,加载驱动失败!");
// e.printStackTrace();
// }
try {
Class.forName("com.mysql.jdbc.Driver"); // 先加载驱动
// System.out.println(888);
String url = "jdbc:mysql://localhost:3306/test"; // 数据库名称
String username = "root"; // 账号
String password = "root"; // 密码
Connection con = DriverManager.getConnection(url, username,
password); // 通过这个接口连接数据库。
// String sql =
// "CREATE TABLE tableName5(id int not null, name varchar(20) not null, age int null, primary key (id));";
// // 创建一个表,名字为tablename (id为int,name为字符串,age为int,这个好像是主码?主码为id)
// PreparedStatement pstmt = con.prepareStatement(sql);
// pstmt.executeUpdate();
String[] createtable = new String[100];
for (int i = 0; i < 0; i++) {
cin.useDelimiter("\n"); // 输入带有空格的字符串
createtable[i] = cin.nextLine();
// String sql =
// "CREATE TABLE tableName5(id int not null, name varchar(20) not null, age int null, primary key (id));";
// // 创建一个表,名字为tablename (id为int,name为字符串,age为int,这个好像是主码?主码为id)
// 这样就可以直接通过输入创建多个表了,很简单,,只要改改名字就可以拉?
PreparedStatement pstmt = con.prepareStatement(createtable[i]);
pstmt.executeUpdate();
}
String[] insert = new String[100];
for (int i = 0; i < 0; i++) {
// String sqlq=cin.next();
cin.useDelimiter("\n"); // 输入带有空格的字符串
insert[i] = cin.nextLine();
// String sqlq
// ="insert into tableName(id,name,age) values(524323,'123456',22)";
// 这个直接改成输入,,然后就可以插入N条数据啦= =
// 插入时注意每个主码必须是不同的。
Statement stmt = con.createStatement();
stmt.executeUpdate(insert[i]);
}
String[] delete = new String[100];
for (int i = 0; i < 0; i++) {
cin.useDelimiter("\n"); // 输入带有空格的字符串
delete[i] = cin.nextLine();
// String qq="delete from tablename5 where id>=2;";
// 直接输入要删除的表的特征,然后就可以删除N条数据啦。
Statement stmt1 = con.createStatement();
stmt1.executeUpdate(delete[i]);
}
String[] update = new String[100];
for (int i = 0; i < 0; i++) {
cin.useDelimiter("\n"); // 输入带有空格的字符串
update[i] = cin.nextLine();
// String
// sql11="update tablename set age=20,set name='lalal' where id=52323 ";//生成一条mysql语句
// 直接输入要更新的表的特征,然后就可以更新N条数据啦。
Statement lalala = con.createStatement();
lalala.executeUpdate(update[i]);
}
String[] query = new String[100];
for (int i = 0; i < 0; i++) {
// String sql123 =
// "SELECT `id`, `name`,`age` FROM `test`.`tablename` LIMIT 0, 1000;";
// 要执行的SQL
cin.useDelimiter("\n"); // 输入带有空格的字符串
query[i] = cin.nextLine();
// 还是一个套路啊,将上面的sql语句改成输入,,然后tablename换一下名字,0,1000为1000条表中的数据
Statement stmt11 = con.createStatement();
ResultSet rs = stmt11.executeQuery(query[i]);// 创建数据对象,通过rs来调用表中的数据
System.out.println("编号" + "\t" + "姓名" + "\t" + "年龄");
while (rs.next()) {
System.out.print(rs.getInt(1) + "\t"); // 第一个数据
System.out.print(rs.getString(2) + "\t"); // 第二个为字符串类型的
System.out.print(rs.getInt(3) + "\t"); // 第三个
System.out.println();
}
rs.close();
stmt11.close();
con.close();
}
System.out.println("success");
con.close();
} catch (ClassNotFoundException e) {
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace();
} catch (SQLException se) {
System.out.println("失败");
se.printStackTrace();
}
}
}