JAVA使用JDBC及Properties类配置文件简单地对表实现增删改查

在新建好项目的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) 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值