Javaweb之JDBC操作数据库部分的学习

web:全球广域网,也称万维网,能够通过浏览器访问网站。

JavaWeb:用Java技术解决相关web互联网领域的技术栈。就是用Java语言开发网站。

JavaWeb分为网页,JavaWeb程序和数据库。                                                                                          网页:展现数据;数据库:存储和管理数据;JavaWeb程序:逻辑处理。

       网页中有许多数据库中的数据,但网页不能直接从数据库中获取数据,而JavaWeb可以从数据库中获取数据并且把数据呈现给网页。

数据库

   数据库:存储数据的仓库,数据是有组织的进行存储。英文名字简称DB。

   数据库管理系统:管理数据库的大型软件。简称DBMS。

  SQL:操作关系型数据库的编程语言。定义操作所有数据库的统一标准。                                             sql分类:1、DDL:数据定义语言,用来定义数据库对象:数据库,表,列;2、DML:数据库操作语言:用来对数据库中表的数据进行增删改;3、DQL:数据查询语言,用来查询数据库中表的记录(数据);4、DCL:数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。

  关系型数据库:是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库。

JDBC

  JDBC(Java DataBase Connectivity)是使用Java语言操作关系型数据库的一套API,全程Java数据库连接。

  JDBC定义了一套操作所有关系型数据库的规则,本质就是接口,我们可以通过接口操作各种数据库,而操作数据库的实现类是由数据库本身提供,也就是数据库的驱动jar包。我们使用JDBC接口操作数据库,实际上是执行的驱动jar包中的实现类。

  JDBC API

    1、 DriverManager(驱动管理类),作用:注册驱动;获取数据库连接。

Connection con;
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mysql";
String useName = "root";
String psw = "quwenhao";
con = DriverManager.getConnection(url, useName, psw);

url为数据库的连接路径,url语法为:jdbc:mysql://ip地址:端口号/数据仓库名称?参数键值对1&参数键值对2....。配置useSSL=false参数,禁用安全连接方式,解决警告提示。

  2、 Connection (数据库连接对象),作用:(1)获取执行sql对象;(2)管理事物。

      获取执行sql的对象:1、普通执行Statement createStatement();2、预编译sql执行PreparedStatement prepareStatement(sql)防止sql注入;3、执行存储过程的对象 CallableStatement prepareCall(sql)(不常用)。

 3、 Statement作用:执行sql语句。 int executeUpdate(sql)返回值为DML语句影响的行数,或DDL语句,执行成功后也可能返回0。ResultSet executeQuery(sql)返回ResultSet结果对象。

 4、ResultSet(结果集对象),作用:(1)封装了DQL查询语句的结果,ResultSet  stmt.executeQuery(sql)执行sql语句,返回ResultSet对象。(2)获取查询结果:1 boolean next():将光标前进一行,并判断当前是否为有效行,true为有效,false为无效;2 getXxx()获取对应类型的数据。

         PrepareStatement继承Statement,作用:用于预编译sql语句(这时sql中的参数不是用字符串拼凑出来的,而是用占位符?表示)。PrepareStatement是通过将敏感字符进行转义,就比如将   '  转义为  \'. 。

         预编译步骤:1、获取PreparedStatement对象,PrepareSttament ptmt=conn.prepareStatement(sql);2、设置参数:setXxx(参数1,参数2)。参数1是sql语句中的第几个“?”,参数2是要代替sql语句中对应的?的实际值;3、执行sql,executeUpdate()或者executeQuery(),不需要传sql。

JDBC与web的联系 :想再web网页中显示数据库中的信息,先通过JDBC与数据库建立联系并获取数据,然后把每一组数据封装成一个对象,然后把每个对象放入一个List集合中,最后在web中显示集合中各个元素。

数据库连接池

  数据库连接池是个容器,负责分配,管理数据库管理;它允许应用程序重复使用一个现有的数据库连接,而不是在重新建立一个(建立或删除1个连接很耗时间);释放空余时间超过最大空余时间的数据库连接来避免因为没有释放数据库连接而引起数据库连接泄漏。

  数据库连接池中提前已经创建好了很多数据库连接,有客户需要时会从中取出,用完了,数据库连接不会被释放掉而是回归连接池中。这样就不会当场创建或者删除数据库连接了。

  数据库连接池的标准接口是DataSource,其中有getConnection()方法。使用数据库连接池中的连接时,不用DriverManager连接。下面是使用的Druid数据库连接池。

在使用Druid数据库连接池前需要先在pom文件中增加下面的2个依赖。

        
            mysql
            mysql-connector-java
            8.0.21
        
        
        
            com.alibaba
            druid
            1.2.3
        
Properties properties=new Properties();
                properties.load(new FileInputStream(""));
                DataSource dataSource= DruidDataSourceFactory.createDataSource(properties);
                con=dataSource.getConnection();
                con = DriverManager.getConnection(url, useName, psw);
                Statement stmt=con.createStatement();

JDBC操作数据库的7个步骤:1获取Connection;2定义sql;3获取PrepareStatement对象;4设置参数;5执行sql;6处理结果,List<>;7释放资源。在实现对数据库的不同操作时,其中只有第2,4,6步的细节需要变动。

你可能感兴趣的:(学习,数据库)