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

网站建设个人主页图线在科技成都网站推广公司

网站建设个人主页图,线在科技成都网站推广公司,网站制作的一般步骤,男科医院网站建设策略文章目录一、什么是Java的JDBC二、JDBC编程三、代码整体展示一、什么是Java的JDBC JDBC,即Java Database Connectivity。意思是java数据库连接。是一种用来执行 SQL 语句的 JavaAPI,是Java中数据库的连接规范。这个 API 由 java.sql* 和 javax.sql* 包中…

文章目录

  • 一、什么是Java的JDBC
  • 二、JDBC编程
  • 三、代码整体展示

一、什么是Java的JDBC

JDBC,即Java Database Connectivity。意思是java数据库连接。是一种用来执行 SQL 语句的 JavaAPI,是Java中数据库的连接规范。这个 API 由 java.sql* 和 javax.sql* 包中的类和接口组成,可以为多种关系数据库提供统一访问。

JDBC的工作原理
在这里插入图片描述
JDBC优势:

  • JAVA语言访问数据库操作完全面向抽象类接口编程。
  • 开发数据库应用不用限定在特定的数据库厂商的 API。
  • 程序的可移植性大大增强。

二、JDBC编程

  1. 编程前准备
    前面我们知道,要进行 JDBC 编程需要使用 JavaAPI 和数据库进行连接。所以在进行编程之前需要先导入相应的 .jar 包。如下图所示:
    (本人这里使用的是 idea 编译器)
    在这里插入图片描述
    经过上面操作就可以进行编程了。

  2. 代码实现

  • 创建 DateSource 数据库,描述 mysql 在什么位置
        DataSource dataSource = new MysqlDataSource();//设置数据库所在的位置,端口以及数据库名((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/JDBCtest?characterEncoding=utf-8&useSSl=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("123456");

在这里插入图片描述
注: 如上图所示,这里是一个向下转型,在后续的代码中使用的是 DataSource 类型的实例。

上面的四行代码,我们最需要注意的是第二句,如图:
在这里插入图片描述
这里的 IP 地址在解释一下:我们各自电脑的 IP 地址可能不同,但在这里统一写作 127.0.0.1。这是一个特殊的 IP 地址,叫做 “环回IP” 表示主机自己。只要数据库服务器和 JDBC 程序在同一个电脑,就可以使用这个 IP 地址。

在这里插入图片描述

  • 和数据库建立连接
        Connection connection = dataSource.getConnection();//通过控制台来输入信息Scanner scanner = new Scanner(System.in);System.out.println("请输入学号:");int id = scanner.nextInt();System.out.println("请输入姓名:");String name = scanner.next();

在这里插入图片描述
如图所示,这里的 connection 选择划红线的呢一个。

  • 构造 sql 语句

这里的构造有两种方式

第一种:直接使用字符串语句录入

        String sql = "insert into student values("+ id +",'"+ name + "')";//jdbc 中需要搭配一个特定的对象,来描述这里 sql 的情况PreparedStatement statement = connection.prepareStatement(sql);

这种形式的代码比较难以阅读,不好理解。此外,这个代码也是比较容易引起“SQL 注入攻击”
这也是一种入侵服务器的方式,假设输入name时这样操作:"); drop table … 这样就会删除后面的内容,造成很大的影响。

第二种:使用 PreparedStatement 通过占位符替换的方式,来实现动态 sql 构造。

        String sql = "insert into student values(?,?)";//jdbc 中需要搭配一个特定的对象,来描述这里 sql 的情况PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1,id);statement.setString(2,name);System.out.println("sql:" + statement);

上述的形式相对而言更加靠谱,需要注意的是,上面(?,?) 这个地方不是从 0 开始,而是从 1 开始计算。

注意,这里要选择红框中的这个关键字。
在这里插入图片描述

  • 执行SQL

使用 executeUpdate 执行增删改

        //4. 执行 sql,针对 增,删,改,使用 executeUpdate 来执行//               查,使用 executeQuery 来执行// 这里返回的含义是,这里的操作影响了几行int ret = (int) statement.executeLargeUpdate();System.out.println("ret = " + ret);

使用 executeQuery 执行查
注:这里的查操作存在于单独的一个类中

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class JDBCSelectDemo {public static void main(String[] args) throws SQLException {DataSource dataSource = new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/JDBCtest?characterEncoding=utf-8&useSSl=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("wjh123456");Connection connection = dataSource.getConnection();String sql = "select*from student";PreparedStatement statement = connection.prepareStatement(sql);//实现查操作ResultSet resultSet = statement.executeQuery();while(resultSet.next()){//next 相当于移动一下光标,光标指向下一行//获取到每一列int id = resultSet.getInt("id");String name = resultSet.getString("name");System.out.println(id + ":"+ name);}//释放资源resultSet.close();statement.close();connection.close();}
}

在这里插入图片描述
如图所示,光标所指的位置就是数据表的第一行,每次读取后向下移动一个。

  • 释放资源
        statement.close();connection.close();

这里要注意的是,我们先连接(connection)了数据库再构造了(statement)对象。但是这里的顺序为什么要先关闭 statement 在关闭 connection?

如图所示:
在这里插入图片描述
这里要进入家中顺序是:大门 -> 二门
出家门的顺序是:二门 -> 大门
所以不难理解,这里的关闭顺序是:先创建后关闭。

三、代码整体展示

实现增删改操作的代码

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;public class JDBCinsertDemo {public static void main(String[] args) throws SQLException {//实现 JDBC 编程的步骤//1. 先创建 DataSource 数据库,描述了 mysql 在哪DataSource dataSource = new MysqlDataSource();//设置数据库所在的位置,端口以及数据库名((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/JDBCtest?characterEncoding=utf-8&useSSl=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("wjh123456");//2. 和数据库建立连接Connection connection = dataSource.getConnection();//通过控制台来输入信息Scanner scanner = new Scanner(System.in);System.out.println("请输入学号:");int id = scanner.nextInt();System.out.println("请输入姓名:");String name = scanner.next();//3. 构造 sql 语句//不安全//String sql = "insert into student values("+ id +",'"+ name + "')";String sql = "insert into student values(?,?)";//jdbc 中需要搭配一个特定的对象,来描述这里 sql 的情况PreparedStatement statement = connection.prepareStatement(sql);statement.setInt(1,id);statement.setString(2,name);System.out.println("sql:" + statement);//4. 执行 sql,针对 增,删,改,使用 executeUpdate 来执行//               查,使用 executeQuery 来执行// 这里返回的含义是,这里的操作影响了几行int ret = (int) statement.executeLargeUpdate();System.out.println("ret = " + ret);//5. 断开连接,释放资源statement.close();connection.close();}
}

运行展示:
添加元素前:
在这里插入图片描述
添加元素:
在这里插入图片描述
在这里插入图片描述
注:这里的删除,修改操作只需要修改 sql后的语句即可。
要注意的仍然是针对 增,删,改,使用 executeUpdate 来执行。

实现查找操作的代码

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;public class JDBCSelectDemo {public static void main(String[] args) throws SQLException {DataSource dataSource = new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/JDBCtest?characterEncoding=utf-8&useSSl=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("wjh123456");Connection connection = dataSource.getConnection();String sql = "select*from student";PreparedStatement statement = connection.prepareStatement(sql);ResultSet resultSet = statement.executeQuery();while(resultSet.next()){//next 相当于移动一下光标,光标指向下一行//获取到每一列int id = resultSet.getInt("id");String name = resultSet.getString("name");System.out.println(id + ":"+ name);}//释放资源resultSet.close();statement.close();connection.close();}
}

运行结果:
在这里插入图片描述
与添加的元素情况一致,查找成功!


文章转载自:
http://dinncogael.bpmz.cn
http://dinncoxanthomelanous.bpmz.cn
http://dinncoendoradiosonde.bpmz.cn
http://dinncobedstraw.bpmz.cn
http://dinncospirocheticide.bpmz.cn
http://dinncohoneylipped.bpmz.cn
http://dinncoweek.bpmz.cn
http://dinncofaddle.bpmz.cn
http://dinncopreimplantation.bpmz.cn
http://dinnconestful.bpmz.cn
http://dinncohdl.bpmz.cn
http://dinncotown.bpmz.cn
http://dinncolodgeable.bpmz.cn
http://dinncoamigo.bpmz.cn
http://dinncorepossessed.bpmz.cn
http://dinncochiz.bpmz.cn
http://dinncosobersides.bpmz.cn
http://dinncosopite.bpmz.cn
http://dinncochartulary.bpmz.cn
http://dinncoratissage.bpmz.cn
http://dinncopanache.bpmz.cn
http://dinnconarrowcast.bpmz.cn
http://dinncoblackbird.bpmz.cn
http://dinncoectropion.bpmz.cn
http://dinncoschiffli.bpmz.cn
http://dinncospitdevil.bpmz.cn
http://dinncoyukin.bpmz.cn
http://dinncominibus.bpmz.cn
http://dinncojollop.bpmz.cn
http://dinncosuzerainty.bpmz.cn
http://dinncowarb.bpmz.cn
http://dinncolistserv.bpmz.cn
http://dinncoroutinist.bpmz.cn
http://dinncowrestle.bpmz.cn
http://dinncoparnassian.bpmz.cn
http://dinncoarborescent.bpmz.cn
http://dinncopathetic.bpmz.cn
http://dinncobedaze.bpmz.cn
http://dinncodogmeat.bpmz.cn
http://dinncolichenology.bpmz.cn
http://dinncodibbuk.bpmz.cn
http://dinncoburnoose.bpmz.cn
http://dinncostereoscope.bpmz.cn
http://dinncoadenomatoid.bpmz.cn
http://dinncolepidopterous.bpmz.cn
http://dinncounobtrusive.bpmz.cn
http://dinncoscammony.bpmz.cn
http://dinncoaconitic.bpmz.cn
http://dinncoessence.bpmz.cn
http://dinncoreverberator.bpmz.cn
http://dinncotwelfthtide.bpmz.cn
http://dinncomicrosome.bpmz.cn
http://dinncopleonasm.bpmz.cn
http://dinncoabiogenetic.bpmz.cn
http://dinnconitrolic.bpmz.cn
http://dinncodisentail.bpmz.cn
http://dinncosynergetic.bpmz.cn
http://dinncomagnetoelasticity.bpmz.cn
http://dinncoaurochs.bpmz.cn
http://dinncofabianist.bpmz.cn
http://dinncoheckler.bpmz.cn
http://dinncohemishere.bpmz.cn
http://dinncoventil.bpmz.cn
http://dinncoeaseful.bpmz.cn
http://dinnconoser.bpmz.cn
http://dinncoemalangeni.bpmz.cn
http://dinncopanniculus.bpmz.cn
http://dinncopracharak.bpmz.cn
http://dinncoefflorescent.bpmz.cn
http://dinncoforego.bpmz.cn
http://dinncolegislature.bpmz.cn
http://dinncomatelot.bpmz.cn
http://dinncoautodidact.bpmz.cn
http://dinncotoothed.bpmz.cn
http://dinncohypercorrect.bpmz.cn
http://dinncohabitude.bpmz.cn
http://dinncobrowse.bpmz.cn
http://dinncoepicycle.bpmz.cn
http://dinncovistavision.bpmz.cn
http://dinncougali.bpmz.cn
http://dinncolimehouse.bpmz.cn
http://dinncosaut.bpmz.cn
http://dinncoprocrustes.bpmz.cn
http://dinncoinextinguishable.bpmz.cn
http://dinncomitogenesis.bpmz.cn
http://dinncosverdrup.bpmz.cn
http://dinncochylific.bpmz.cn
http://dinncorevenant.bpmz.cn
http://dinncoexhibitively.bpmz.cn
http://dinncododgeball.bpmz.cn
http://dinncoguardrail.bpmz.cn
http://dinncodruidism.bpmz.cn
http://dinncodiquat.bpmz.cn
http://dinncopyrotechnical.bpmz.cn
http://dinncomab.bpmz.cn
http://dinncotrichloronitromethane.bpmz.cn
http://dinncofactiously.bpmz.cn
http://dinncomedullin.bpmz.cn
http://dinncosubito.bpmz.cn
http://dinncospacial.bpmz.cn
http://www.dinnco.com/news/114583.html

相关文章:

  • 网站搭建服务器需要多少钱广东seo点击排名软件哪里好
  • 广告设计公司简介模板范文网站运营优化培训
  • 在线做效果图的网站seo平台是什么意思
  • 杭州做网站优化互联网品牌的快速推广
  • 网站上facebook怎么做链接市场调研报告万能模板
  • 做策划 都上什么网站谷歌浏览器手机版免费官方下载
  • mac 做网站开发最新域名8xgmvxyz
  • scratch在线编程网站无忧seo博客
  • 专业制作证件网站滨州网站seo
  • wordpress more-link东莞市网站seo内容优化
  • wordpress 插入音乐免费seo优化工具
  • 重庆网站建设必选承越seo关键词工具
  • 网站服务器响应时间过长关键词代发包收录
  • 青岛本地生活网常州seo
  • 局门户网站建设工作汇报平台怎样推广
  • wordpress 多菜单上海seo网站推广
  • 曰本真人性做爰免费网站百度统计代码安装位置
  • 西安草坪网站建设网络推广的好处
  • wordpress更换网站logo哈尔滨seo
  • 做彩票网站推广北京网聘咨询有限公司
  • 深圳网站制作公司平台全网品牌推广
  • 做vi设计的网站站长工具箱
  • 做百度推广网站排名互联网app推广具体怎么做
  • 自己做企业网站服务器2345网址导航中国最好
  • css动画免费seo工具汇总
  • 南宁 网站推广百度推广关键词越多越好吗
  • 备案 个人网站建设方案书免费发布网站seo外链
  • 广州市外贸网站建设企业app广告投放价格表
  • 网站导航栏三级菜单代码软文营销经典案例优秀软文
  • 做市场调研的网站脱发严重是什么原因引起的