JDBC的使用方式

本文介绍了一个使用JDBC进行数据库操作的示例程序,包括如何建立数据库连接、执行增删改查等基本操作。

JDBC 概述

JDBC TM 是一种 应用编程接口,它制定处理表格数据和常见的关系型数据的标准框架。

数据库的基本概念:

数据库本质上是表的“智能”容器。

     表是由行组成的容器。

     (概念上) 是由列组成的容器。

     列是具有名称、类型和值的单个数据项目。

通过JDBC 访问数据库

public class DbUTools {
    static Properties p =new Properties();
    
    static{
        InputStream is =DbUTools.class.getResourceAsStream("/jdbc.properties");
        try {
            p.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取连接
     */
    public static Connection getConnection() throws Exception{
        String url=p.getProperty("url");
        String driverClass=p.getProperty("driverClass");
        String userName =p.getProperty("userName");
        String password =p.getProperty("password");
        Class.forName(driverClass);
        Connection conn =DriverManager.getConnection(url, userName, password);
        return conn;
    }
}

Jdbc的增删改查方法

public class StudentManager {
Scanner sc =new Scanner(System.in);

//添加
    public void addStudent() throws Exception{
        System.out.println("请输入班级id:");
        int classId =sc.nextInt();
        
        System.out.println("请输入学生姓名:");
        String sname =sc.next();
        
        System.out.println("请输入学生年龄:");
        int sage =sc.nextInt();
        
        System.out.println("请输入学生性别:");
        String ssex =sc.next();
        
        String sql ="insert into student(cid,sname,sage,ssex) values (?,?,?,?)";
        
        Connection conn =Dbuit.getConnection();
        PreparedStatement ps =conn.prepareStatement(sql);
        
        ps.setInt(1, classId);
        ps.setString(2, sname);
        ps.setInt(3, sage);
        ps.setString(4, ssex);
        int index= ps.executeUpdate();
        if (index>0) {
            System.out.println("添加成功"+index+"行受影响");
        }
        
        ps.close();
        conn.close();
    }
    
//删除
    public void deleteStudent()throws Exception{
        System.out.println("请输入要删除的学生id:");
        int stuId =sc.nextInt();
        
        String sql ="delete from student where sid=?";
        Connection con =Dbuit.getConnection();
        
        PreparedStatement ps =con.prepareStatement(sql);
        ps.setInt(1, stuId);
        
        int index= ps.executeUpdate();
        if (index>0) {
            System.out.println("删除成功"+index+"行受影响");
        }
        
        ps.close();
        con.close();
}

//修改
    public void updateStudent()throws Exception{
        String sql ="update student set cid=?,sage=?,ssex=? where sid=?";
        
        System.out.println("请输入要修改的学生id");
        int stuId =sc.nextInt();
        
        System.out.println("请输入新的班级id:");
        int cid =sc.nextInt();
        
        System.out.println("请输入新的年龄:");
        int sage =sc.nextInt();
        
        System.out.println("请输入新的性别:");
        String ssex =sc.next();
        
        Connection conn =Dbuit.getConnection();
        PreparedStatement ps =conn.prepareStatement(sql);
        ps.setInt(1, cid);
        ps.setInt(2, sage);
        ps.setString(3, ssex);
        ps.setInt(4, stuId);
        
        int index =ps.executeUpdate();
        if (index>0) {
            System.out.println("修改成功"+index+"行受影响");
        }
        
        ps.close();
        conn.close();
}

//根据条件查询
    public void listStudent()throws Exception{
        System.out.println("请输入要查看的学生id");
        int sid =sc.nextInt();
        
        String sql ="select * from student where sid=?";
        
        Connection conn =Dbuit.getConnection();
        PreparedStatement ps=conn.prepareStatement(sql);
        ps.setInt(1, sid);
        
        ResultSet rSet =ps.executeQuery();  //执行sql语句
        ResultSetMetaData metaData = rSet.getMetaData();  //new一个getMetaData
        int columnCount = metaData.getColumnCount();  //获取表中的总列数
        
        for (int i = 1; i <= columnCount; i++) {
            System.out.print(metaData.getColumnLabel(i)+"\t");  //获取列名
        }
        System.out.println();
        while (rSet.next()) {
            for (int i = 1; i <=columnCount ; i++) {
                System.out.print(rSet.getString(i)+"\t");        
            }
            System.out.println();
        }
}

//查询所有
    public void list() throws Exception{
        String sql ="select * from student";
        
        Connection conn =Dbuit.getConnection();
        PreparedStatement ps=conn.prepareStatement(sql);

        
        ResultSet rSet =ps.executeQuery();  //执行sql语句
        ResultSetMetaData metaData = rSet.getMetaData();  //new一个getMetaData
        int columnCount = metaData.getColumnCount();  //获取表中的总列数
        
        for (int i = 1; i <= columnCount; i++) {
            System.out.print(metaData.getColumnLabel(i)+"\t");  //获取列名
        }
        System.out.println();
        while (rSet.next()) {
            for (int i = 1; i <=columnCount ; i++) {
                System.out.print(rSet.getString(i)+"\t");        
            }
            System.out.println();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值