使用JDBC技术连接mysql数据库学习笔记及方法

1.JDBC技术api是jdk提供的
2.连接不同的数据库,需要不同的连接驱动(需要自己下载然后加入到项目中去)
步骤:
(1)下载mysql的连接驱动
在这里插入图片描述
(2)放入项目的lib目录(可放可不放),复制文件粘贴进去即可
在这里插入图片描述
(3)在项目中引用mysql的连接驱动
在File中找到Project Structure选项打开(使用快捷键亦可)
在这里插入图片描述
找到Libraries,点击加号,选择Java
在这里插入图片描述
找到自己项目中的lib目录,将驱动添加进去。如果没有放入lib目录,则找到自己放置驱动文件的地方添加,点击OK即可

3.实际代码操作(根据自己的数据库进行操作)

//JDBC连接数据库(查询)
public class Mysql {
    public static void main(String[] args) throws Exception {
        //1、加载连接驱动(表示具备连接mysql的资格)
        Class.forName("com.mysql.jdbc.Driver");
        //2、连接mysql中的mychool数据库
        //通过DriveManager驱动可以得到一个数据库的连接
        //jdbc://musql://127.0.0.1:3306/myschool
        //使用jdbc技术连接127.0.0.1主机上的mysql,端口号是3306,数据库的名字是myscool
       Connection conn= DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/myschool","root","root");
       //3、取得执行对象(从conn连接中创建一个执行对象)
        Statement statement=conn.createStatement();
        //4、执行SQL语句并获取返回结果集
        ResultSet rs=statement.executeQuery("select * from student");
        //5、处理结果:解析rs的结果  rs.next()将指针移动到下一条数据
        while(rs.next()){
            //打印rs中的结果
            System.out.print(rs.getInt("StudentNo")+"\t");
            System.out.print(rs.getString("studentName")+"\t");
            System.out.println(rs.getString("address"));
        }
        rs.close();
        statement.close();
        conn.close();
    }
}
//增删改使用executeUpdate
//JDBC连接数据库增删改的方法
public static void main(String[] args) throws Exception {
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/myschool","root","root");
    Statement statement=conn.createStatement();
        Scanner input =new Scanner(System.in);
        System.out.println("请输入要删除的学生学号:");
        int num=input.nextInt();
        //增删改返回的是受影响的行数
        int count=statement.executeUpdate("delete from student where studentNo="+num);
        if (count>0){
            System.out.println("删除成功");
        }else{
            System.out.println("删除失败");
        }
        statement.close();
        conn.close();
    }
}

由于增删改的过程中,使用+进行拼接的话,比较容易被sql注入,被植入病毒。所以拼接的形式不理想,容易出现bug。所以通常都使用占位符。当时当前执行对象不支持占位符,所以使用 PreparedStatement接口,代码如下:

```java
//JDBC连接数据库最常用增删改方法(改良版)
public static void main(String[] args) throws Exception {
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/myschool","root","root");
    //执行对象
    Scanner input =new Scanner(System.in);
    System.out.println("请输入要删除的学生学号:");
    int num=input.nextInt();
    PreparedStatement ps=conn.prepareStatement("delete from student where studentNo=?");
    //检查sql语句是否存在占位符,如果存在需要给占位符赋值
    ps.setInt(1,num);
    int count=ps.executeUpdate();
    if (count>0){
        System.out.println("删除成功");
    }else{
        System.out.println("删除失败");
    }
    ps.close();
    conn.close();
    }
    

为什么使用PreparedStatement接口及优点:
在这里插入图片描述

ResultSet常用方法:

在这里插入图片描述
Statement常用方法:
在这里插入图片描述

总结:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值