当前位置: 首页 > news >正文

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

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

相关文章:

  • HTML+CSS期末大作业 中国传统美食网站设计 节日美食13页 html5网页设计作业代码 html制作网页案例代码 html大作业网页代码
  • 基于Java+Spring+Vue+elementUI大学生求职招聘系统详细设计实现
  • matlab在管理学中的应用简matlab基础【二】
  • 【安装Ubuntu18.04遇到的问题】未找到WIFI适配器
  • 发明专利与实用新型专利的不同
  • 【Educoder作业】CC++数组实训
  • Qt+Win10使用QAxWidget控件实现远程桌面控制
  • java毕业设计现有传染病查询系统mybatis+源码+调试部署+系统+数据库+lw
  • C++ 语法基础课4 —— 数组
  • 【Pygame实战】这游戏有毒,刷爆朋友圈:小编已与病毒版贪吃蛇大战了三百回合,最高分339?
  • 软件测试 | 怎么写测试用例?设计测试用例的思路和方法......
  • shell命令以及运行原理
  • 【MySQL】 B+ 树存储的原理
  • 网络安全——SQL注入之安全狗bypass深度剖析
  • java每日一练(2)
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Git的一些常用操作
  • IOS评论框不贴底(ios12新bug)
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python 基础起步 (十) 什么叫函数?
  • Python爬虫--- 1.3 BS4库的解析器
  • React-flux杂记
  • React系列之 Redux 架构模式
  • tweak 支持第三方库
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Xmanager 远程桌面 CentOS 7
  • 不上全站https的网站你们就等着被恶心死吧
  • 从setTimeout-setInterval看JS线程
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何优雅地使用 Sublime Text
  • 事件委托的小应用
  • 跳前端坑前,先看看这个!!
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一道面试题引发的“血案”
  • 一些css基础学习笔记
  • nb
  • Java总结 - String - 这篇请使劲喷我
  • mysql面试题分组并合并列
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (LeetCode) T14. Longest Common Prefix
  • (poj1.2.1)1970(筛选法模拟)
  • (pojstep1.3.1)1017(构造法模拟)
  • (翻译)terry crowley: 写给程序员
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)Sql Server 保留几位小数的两种做法
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core 3.0 linux,.NET Core 3.0 的新增功能