在新建好项目的src下新建lib包,导入mysql的.jar包并添加为库使用Add as library,然后新建.properties配置文件,内容如下:
user=root
url=jdbc:mysql://localhost:3306/mydb2
password=123
driver=com.mysql.jdbc.Driver
其次是整个代码的实现:
package DAY2;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
import java.util.Scanner;
public class T {
private static String url;
private static String user;
private static String password;
private static String driver;
static {
try {
Properties properties=new Properties();
ClassLoader classLoader=T.class.getClassLoader();
URL res=classLoader.getResource("jdbc.properties");
String path=res.getPath();
properties.load(new FileReader(path));
url=properties.getProperty("url");
user=properties.getProperty("user");
password=properties.getProperty("password");
driver=properties.getProperty("driver");
Class.forName(driver);
} catch (IOException e) {
e.printStackTrace();
}catch (ClassNotFoundException e){
e.printStackTrace();
}
}
public static Connection getConn() throws SQLException{
return DriverManager.getConnection(url,user,password);
}
//Query
public static void Inquire()throws SQLException{
Connection conn=T.getConn();
boolean flag=false;
Scanner sc=new Scanner(System.in);
System.out.print("请输入要查询的编号:");
int num=sc.nextInt();
String sql = "select * from beauty where id=?";
PreparedStatement ptmt = conn.prepareStatement(sql);
ptmt.setInt(1, num);
ResultSet rs= ptmt.executeQuery();
while (rs.next()) {
System.out.print(rs.getString("name") + " ");
System.out.println(rs.getInt("age") + " ");
flag=true;
}
if(flag==true)System.out.println("查询成功!");
else System.out.println("id不存在,查询失败!");
close(ptmt,conn);
}
//DELETE
public static void Fade()throws SQLException{
Connection conn=T.getConn();
Scanner sc=new Scanner(System.in);
boolean flag=false;
Statement stat=conn.createStatement();
System.out.print("请输入要删除的编号:");
int num=sc.nextInt();
String verdict="select id from beauty ";
ResultSet rs=stat.executeQuery(verdict);
while (rs.next()) {
if(rs.getInt("id")==num)
flag=true;
}
if(flag==true){
String sql = "delete from beauty where id=?";
PreparedStatement ptmt = conn.prepareStatement(sql);
ptmt.setInt(1, num);
ptmt.execute();
System.out.println("删除成功!");
ptmt.close();}
else System.out.println("要删除的编号不存在!");
close(stat,conn);
}
//ALTER
public static void Alter()throws SQLException{
Connection conn=T.getConn();
Statement stat=conn.createStatement();
Scanner sc=new Scanner(System.in);
boolean flag=false;
ResultSet rs=null;
System.out.print("请输入要修改的编号:");
int id=sc.nextInt();
//String verdict="select * from beauty where id='"+id+"'";
String verdict="select id from beauty ";
rs=stat.executeQuery(verdict);
while (rs.next()) {
if(rs.getInt("id")==id)
flag=true;
}
if(flag==true){
System.out.print("请输入新的姓名:");
String name=sc.next();
System.out.print("请输入新的年龄:");
int age=sc.nextInt();
String sql = "update beauty set name='"+name+"',age='"+age+"' where id='"+id+"'";
stat.executeUpdate(sql);
System.out.println("修改成功!");}
else System.out.println("该编号不存在!");
close(stat,conn);
}
//插入
public static void Insert()throws SQLException{
Connection conn=T.getConn();
PreparedStatement ptmt=null;
Scanner sc=new Scanner(System.in);
System.out.print("请输入编号:");
int id=sc.nextInt();
System.out.print("请输入姓名:");
String name=sc.next();
System.out.print("请输入年龄:");
int age=sc.nextInt();
boolean flag=false;
ResultSet rs=null;
String verdict="select id,name from beauty ";
rs=ptmt.executeQuery(verdict);
while (rs.next()) {
if((rs.getInt("id")==id)||(rs.getString("name")==name))
flag=true;
}
if(flag!=true){
String sql = "insert into beauty (id,name,age) values(?,?,?)";
ptmt = conn.prepareStatement(sql);
ptmt.setInt(1, id);
ptmt.setString(2, name);
ptmt.setInt(3, age);
ptmt.execute();
System.out.println("插入成功!");
ptmt.close();}
else System.out.println("id或姓名重复!插入失败!");
close(ptmt,conn);
}
//关闭
public static void close(Statement stat,Connection conn){
if(stat!=null){
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//PRINT
public static void Print()throws SQLException{
Connection conn=T.getConn();
String sql = "select * from beauty";
Statement stat =conn.createStatement();
ResultSet rs= stat.executeQuery(sql);
while (rs.next()) {
System.out.print(rs.getString("id") + " ");
System.out.print(rs.getString("name") + " ");
System.out.println(rs.getInt("age") + " ");
}
close(stat,conn);
System.out.println("打印全部成功!");
}
public static void main(String[] args) throws SQLException{
try {
Connection conn=T.getConn();
if(conn!=null){
System.out.println("连接成功");
}
}
catch (SQLException e) {
e.printStackTrace();
}
Scanner sc=new Scanner(System.in);
boolean flag=true;
while(flag){
System.out.println("**1.添加**2.查询**3.修改**4.删除**5.打印**6.退出**");
int con_num=sc.nextInt();
switch (con_num){
case 1:{T.Insert();break;}
case 2:{T.Inquire();break;}
case 3:{T.Alter();break;}
case 4:{T.Fade();break;}
case 5:{T.Print();break;}
case 6:{flag=false; System.out.println("结束已退出");break;}
default:{ System.out.println("请重新输入");break;}
}
}
sc.close();
}
}
另外数据库表beauty字段及其类型为id(int),name(String),age(int) 。