一文简单的带你走进Java的JDBC世界

1、何为JDBC

jdbc:(java database connection),从这个专有名词的全拼来看,就是Java用来连接数据库的,就是这么简单,那么接下来就是介绍如何连接和一系列操作了。

一、连接
注意:Java连接数据库需要使用到第三方的库,mysql-connector-java-8.0.19,目前我的版本是最新的,适配数据库8.0版本。
jar包的下载官网地址:https://dev.mysql.com/downloads/connector/j/

1、导包
在这里插入图片描述
在自己程序的根目录创建一个lib文件,然后把下载的库丢进去,然后鼠标右键单击选择add as Library,编译器就能将这个库解析了,这样才能使用这个库。

2、加载驱动

 Class.forName("com.mysql.cj.jdbc.Driver");
            String url="jdbc:mysql://localhost:3306/javajdbc?useSSL=false&serverTimezone=Asia/Shanghai";
            String users="root";
            String pwd="abcdef";      

第一句是将库中的Driver驱动类加载进程序,这个类是所有数据库的标准连接方式,

第二句就是数据库的URL地址 格式:
jdbc:mysql://数据库的ip地址:端口号/数据库名称?useSSL=false&serverTimezone=Asia/Shanghai";
?表示是否需要加参数,&表示参数之间的连接
从库的第六个版本就需要加上useSSL=false&serverTimezone=Asia/Shanghai";这两个参数,一个是协议,一个是时区**

第三、第四句就是数据库使用者的名称和登录密码

3、连接

connection= DriverManager.getConnection(url,users,pwd);

我个人比较喜欢使用这种方式去连接数据库
那么经过上面三步,只要书写正确那么就已经能正确的与自身电脑或者服务器的数据库取得连接了,当然当中的异常我并没指出,下面就是我完整的连接代码


public class Text{

    public static void main(String[] args){
        Connection connection=null;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String url="jdbc:mysql://localhost:3306/javajdbc?useSSL=false&serverTimezone=Asia/shanghai";
            String username="Travel Time";
            String pwd="abcdef";
            connection= DriverManager.getConnection(url,username,pwd);
            if(connection!=null) System.out.println("Successful");
            else System.out.println("Error");
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        if(connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
 }

结果:Successful

2、SQL 语句的注入

	一、Statement接口
		**由于不能直接实例化,所以需要用到连接对象来产生Statement对象**
		Statement statement=connection.createStatement();
		**执行SQL语句***
		statement.executeQuery(SQL语句);
	
	二、PrepareStatement接口
	**SQL语句***
		String sql="SELECT * FROM tbl_user WHERE userId=?";
		**得到Statement对象***
        prepareStatement ps=connection.prepareStatement(sql);
        **对占位符进行设置***
        ps.setInt(1,1);//第一个参数表示ps的第一个问号
        **进行查询***
        resultSet=ps.executeQuery();

Statement和PrepareStatement的区别

1、Statement对于SQL语句的操作太固定,而且如何需要操作到大量的SQL语句时太复杂而且对于SQL语句的适配性太差,

2、而PrepareStatement引入了占位符,只需要在后期对占位符进行设置便可以设配同类型的SQL语句,而且PrepareStatement最大的特点就是采用了预编译的功能,对编译过的代码有缓存区。

3、查询
查询我们需要使用到一个方法:executeQuery();
返回结果为一个Result类型的结果集

		String sql="SELECT * FROM tbl_user WHERE userId=?";
            pstat=connection.prepareStatement(sql);
            pstat.setInt(1,1);//第一个参数表示pstat的第一个问号
            resultSet=pstat.executeQuery();
            UserInformation user=null;
            while(resultSet.next()){//next()方法一次取一行数据
               //操作语句;
            }

4、增、删、改

**在JDBC中这三个操作的思想都是一样的,对数据表中的数据进行更新操作。响应的语句为:executeUpdate();方法 其他的操作都大致相同,不同的地方就在于SQL语句,因为这始终是在操作数据库,这只不过是通过Java来实现操作而已,所以想学好JDBC,SQL知识少不了

一、增加

String sql = "INSERT INTO tbl_user(username,password,sex,hobby,nativePlace,identify)" +
                    "values(?,?,?,?,?,?)";
            pstat = connection.prepareStatement(sql);
            pstat.setString(1,"张三");
            pstat.setString(2,"99999999");
            pstat.setString(3,"男");
            pstat.setString(4,"唱歌跳舞");
            pstat.setString(5,"长沙天心区");
            pstat.setString(6,"身份证");

            int row=pstat.executeUpdate();

PrepareStatement是可以使用多个占位符的,只需要在后期进行挨个设置就行了,所以这个比Statement更方便的点就在这里

二、删除

 String sql = "DELETE  FROM tbl_user WHERE userId=?";
            pstat = connection.prepareStatement(sql);
            pstat.setInt(1,4);
            int row=pstat.executeUpdate();

三、改

 String sql = "UPDATE tbl_user set hobby=? WHERE userId=1";
            pstat=connection.prepareStatement(sql);
            pstat.setString(1,"琴棋书画");
            int result=pstat.executeUpdate();


是吧,操作都差不多吧,主要的还是在SQL语句,所以其他的数据库操作通过其他的SQL语句便能完成,所以这种只要知道SQL语句就行


但是,上面的这种方法在如果要向数据库内写入上万条数据时,是非常慢的,而且在实际应用开发时也不可能使用这种方式,(这里只是入门而已)
如果京东这种大型的网站在剁手节采用了这种设计,那么不出十秒,整个服务器……崩溃。
所以这是需要优化的,我们后期揭晓,嘿嘿🤭

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark是一个快速通用的集群计算框架,它可以处理大规模数据,并且具有高效的内存计算能力。Spark可以用于各种计算任务,包括批处理、流处理、机器学习等。本文将你了解Spark计算框架的基本概念和使用方法。 一、Spark基础概念 1. RDD RDD(Resilient Distributed Datasets)是Spark的基本数据结构,它是一个分布式的、可容错的、不可变的数据集合。RDD可以从Hadoop、本地文件系统等数据源中读取数据,并且可以通过多个转换操作(如map、filter、reduce等)进行处理。RDD也可以被持久化到内存中,以便下次使用。 2. Spark应用程序 Spark应用程序是由一个驱动程序和多个执行程序组成的分布式计算应用程序。驱动程序是应用程序的主要入口点,它通常位于用户的本地计算机上,驱动程序负责将应用程序分发到执行程序上并收集结果。执行程序是运行在集群节点上的计算单元,它们负责执行驱动程序分配给它们的任务。 3. Spark集群管理器 Spark集群管理器负责管理Spark应用程序在集群中的运行。Spark支持多种集群管理器,包括Standalone、YARN、Mesos等。 二、Spark计算框架使用方法 1. 安装Spark 首先需要安装Spark,可以从Spark官网下载并解压缩Spark安装包。 2. 编写Spark应用程序 编写Spark应用程序通常需要使用Java、Scala或Python编程语言。以下是一个简单Java代码示例,用于统计文本文件中单词的出现次数: ```java import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import java.util.Arrays; import java.util.Map; public class WordCount { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("WordCount").setMaster("local"); JavaSparkContext sc = new JavaSparkContext(conf); JavaRDD<String> lines = sc.textFile("input.txt"); JavaRDD<String> words = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator()); Map<String, Long> wordCounts = words.countByValue(); for (Map.Entry<String, Long> entry : wordCounts.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); } sc.stop(); } } ``` 3. 运行Spark应用程序 将编写好的Spark应用程序打包成jar包,并通过以下命令运行: ```bash spark-submit --class WordCount /path/to/wordcount.jar input.txt ``` 其中,--class参数指定应用程序的主类,后面跟上打包好的jar包路径,input.txt是输入文件的路径。 4. 查看运行结果 Spark应用程序运行完毕后,可以查看应用程序的输出结果,例如上述示例中的单词出现次数。 以上就是Spark计算框架的基本概念和使用方法。通过学习Spark,我们可以更好地处理大规模数据,并且提高计算效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值