JDBC编程

目录

1. 添加目录

2.编程

3.?的使用


1. 添加目录

将安装好的驱动包复制下来

然后在这里新增一个目录

将复制好的驱动包复制进去

对其右键,选中添加为库

2.编程

在编程的时候,大部分代码都是固定的,会变的大多都是SQL语句,所以我就将一些比较零散注意事项写到代码注释里了

setUrl里面的内容代表数据源

其中jdbc:mysql: 是一个url 表示给jdbc的mysql使用的

127.0.0.1 是数据库服务器所造的IP地址,每台计算机都有自己的IP地址,而这一串数字相当于类里面的this,表示当前使用的计算机

3306 是端口号,在安装MySQL时,默认为3306(不改的化)

3306/后面 到 ?前面的test 是你使用的库的名字

&后面的 描述了请求的字符编码形式(当前数据库的字符集)

在后面的useSSL=false 是关闭加密功能

上面的这一串需要修改就只有数据库名了(基本上)

public static void main(String[] args) throws SQLException {
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");

        //选择java.sql  getConnection()需要添加异常声明
        Connection connection = dataSource.getConnection();

        String sql = "insert into student values(1,'张三'),(2,'李四')";//SQL语句
        PreparedStatement statement = connection.prepareStatement(sql);//选择java.sql

        int ret = statement.executeUpdate();
        System.out.println(ret);
        System.out.println(statement);
    }

SQL语句如果是增删改,那么后面的statement需要用executeUpdate方法

它可以返回SQL语句所修改的行数

如果是查询语句则需要用 executeQuery 接收返回的数据

同时 executeQuery 的返回值需要用 ResultSet(java.sql) 这个类型去接收

具体情况如下:

public static void main(String[] args) throws SQLException {
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("123456");
        Connection connection = dataSource.getConnection();//选择java.sql  getConnection()需要添加异常声明
        String sql = "select * from student";//SQL语句
        PreparedStatement statement = connection.prepareStatement(sql);//选择java.sql
        ResultSet resultSet = statement.executeQuery();
        while(resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id: " + id + " name: " + name);
        }
        System.out.println(statement);
    }

在用ResultSet接收后 要使用while循环,循环条件为resultSet.next() -- 代表一次输出一行

接收数据用get...()方法, 括号中填的是列名

3.?的使用

int n = scanner.nextInt();
String sql = "select * from student where id = ?";//SQL语句
PreparedStatement statement = connection.prepareStatement(sql);//选择java.sql
statement.setInt(1,n);

 在语句中的问号代表一个数据,可以使用statement.set...() 这个方法去赋值

它的第一个参数传入整形,代表赋值的是第几个问号,实例中代表:对第一个问号赋值为变量n

?的使用可以提高代码的安全性.

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

追梦不止~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值