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

中国联通网站备案及ip地址备案管理要求建设银行资讯网站

中国联通网站备案及ip地址备案管理要求,建设银行资讯网站,鄞州做网站,网站开发整体制作流程一、引言1、数据的存储开发java程序的时候,数据都是存储在内存中,属于临时存储,当程序停止或重启时,内存中的数据就丢失了。为了解决数据的长期存储问题,有如下解决方案:1、数据通过I/O流技术,存…

一、引言

1、数据的存储

开发java程序的时候,数据都是存储在内存中,属于临时存储,当程序停止或重启时,内存中的数据就丢失了。为了解决数据的长期存储问题,有如下解决方案:

1、数据通过I/O流技术,存储在本地磁盘中,解决了持久化问题,但是没有结构和逻辑,不方便管理和维护。

2、通过关系型数据库,将数据按照特定的格式交由数据库管理系统维护。关系型数据库是通过库和表分隔不同的数据,表中存储的方式是行和列,区分相同格式不同值的数据

2、数据的操作

通过jdbc使用java程序对数据库进行(CRUD)操作

二、JDBC

1、概念

1、JDBC:Java DataBase Connectivity,意为java数据库连接

2、JDBC是java提供的一组独立于任何数据库管理系统的API

3、Java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现类封装成jar文件,也就是我们俗称的数据库驱动jar包

4、学习JDBC,充分体现了面向接口编程的好处,程序员只关心标准和规范,而无需关注实现过程 

2、JDBC的核心组成

接口规范:

1、为了项目代码的可移植性、可维护性,制定了Java程序连接各种数据库的统一接口规范。这样的话,不管是连接哪一种DBMS软件,Java代码可以保持一致性。

2、接口存储在java.sql和javax.sql包下

实现规范:

1、接口规范交由各个数据库厂商实现

2、将实现内容封装成jar文件,我们只需引入即可

三、JDBC快速入门

1、JDBC搭建步骤

1、准备数据库

2、官网下载数据库连接驱动jar包(使用mavan,不需下载)

3、创建Java项目,在项目下创建lib文件夹,将下载的驱动jar包复制到文件夹里

4、选中lib文件夹右键->Add as Library,与项目集成

5、编写代码

2、代码实现

1、以下为示例数据库的sql文件代码

-- 图书管理系统数据库(简化版)
CREATE DATABASE IF NOT EXISTS library_management;
USE library_management;-- 图书表
CREATE TABLE books (id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(255) NOT NULL,author VARCHAR(100) NOT NULL,publisher VARCHAR(100) NOT NULL,publish_year YEAR NOT NULL,isbn VARCHAR(20) UNIQUE NOT NULL,category VARCHAR(50) NOT NULL,total_copies INT NOT NULL DEFAULT 1,available_copies INT NOT NULL DEFAULT 1,location VARCHAR(50) NOT NULL -- 书架位置
);-- 插入图书假数据
INSERT INTO books (title, author, publisher, publish_year, isbn, category, total_copies, available_copies, location) VALUES
('Python编程:从入门到实践', '埃里克·马瑟斯', '人民邮电出版社', 2016, '9787115428028', '编程', 5, 5, 'A区-1架'),
('数据结构与算法分析', '马克·艾伦·维斯', '机械工业出版社', 2019, '9787111641247', '计算机', 3, 3, 'A区-2架'),
('红楼梦', '曹雪芹', '人民文学出版社', 2018, '9787020002207', '文学', 4, 4, 'B区-1架'),
('三国演义', '罗贯中', '人民文学出版社', 2015, '9787020090008', '文学', 6, 6, 'B区-1架'),
('算法导论', '托马斯·H·科尔曼', '机械工业出版社', 2013, '9787111407010', '计算机', 2, 2, 'A区-3架'),
('人类简史', '尤瓦尔·赫拉利', '中信出版社', 2017, '9787508647357', '历史', 5, 5, 'C区-2架'),
('活着', '余华', '作家出版社', 2012, '9787506365437', '文学', 8, 8, 'B区-2架'),
('数学之美', '吴军', '人民邮电出版社', 2014, '9787115379320', '数学', 3, 3, 'D区-1架'),
('解忧杂货店', '东野圭吾', '南海出版公司', 2014, '9787544270878', '小说', 7, 7, 'B区-3架'),
('三体', '刘慈欣', '重庆出版社', 2008, '9787536692930', '科幻', 10, 10, 'E区-1架');

2、以下为java程序的实现,由于使用maven进行管理,无需导包等操作,只需要在pom.xml中添加依赖即可

package org.lib_mana;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class quickSQL {public static void main(String[] args) throws Exception {
//        1、注册驱动(由于使用maven进行管理则省去该步骤0//        2、获取连接对象
//        这是url的固定结构String url = "jdbc:mysql://localhost:3306/library_management";String username = "root";String password = "20050824";Connection connection = DriverManager.getConnection(url, username, password);//        3、获取执行sql语句的对象Statement statement = connection.createStatement();//        4、编写sql语句并执行ResultSet resultSet = statement.executeQuery("select id,title,author,isbn,location from books");while (resultSet.next()) {int id = resultSet.getInt("id");String title = resultSet.getString("title");String author = resultSet.getString("author");String isbn = resultSet.getString("isbn");String location = resultSet.getString("location");System.out.println(id+","+title+","+author+","+isbn+","+location);}//        5、释放资源resultSet.close();statement.close();connection.close();}
}

四、核心API理解

1、注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");

在Java中,当使用JDBC连接数据库时,需要加载数据库特定的驱动程序,以便与数据库进行通信

从JDK6开始,不需要显式地调用Class.forName()来加载JDBC驱动程序,只要在类路径中集成了对应的jar文件,会自动在初始化时注册驱动程序

2、Connection

1、Connection接口是JDBC API的重要接口,用于建立与数据库的通信通道。换而言之,Connection对象不为空,则代表一次数据库连接

2、在建立连接时,需要指定数据库URL、用户名、密码参数

URL:jdbc:mysql://localhost:3306/atguigu

jdbc:mysql://IP地址:端口号/数据库名?参数键值对1&参数键值对2

3、Connection接口还负责管理事务,接口提供了commit和rollback方法,用于提交事务和回滚事务

4、可以创建Statement对象,用于执行SQL语句并与数据库进行交互

5、在使用JDBC技术时,必须要先获取Connection对象,并且最后需要释放资源

3、Statement

1、Statement接口用于执行SQL语句并与数据库进行交互。它是JDBC API中一个重要接口。通过Statement对象,可以向数据库发送SQL语句并执行结果

2、结果可以是一个或多个结果

增删改:受影响行数单个结果

查询:单行单列、多行多列、单行多列结果

3、但是Statement接口在执行SQL语句时会产生SQL注入攻击问题:

当使用Statement执行动态构建的SQL查询时,往往需要将查询条件与SQL语句拼接在一起,直接将参数和SQL语句一并生成,让SQL的查询条件始终为true得到结果

4、PreparedStatement

1、preparedStatement是Statement接口的子接口,用于执行预编译的SQL查询,作用如下:

预编译的SQL语句:在创建PreparedStatement时,就会预编译SQL语句,也就是SQL语句以及固定

防止SQL注入:PreparedStatement支持参数化查询,将数据作为参数传递到SQL语句中,采用?占位符的方式。将传入的参数用一对单引号包裹起来,无论传递什么都作为值,有效防止传入关键字或值导致SQL注入问题

性能提升:PreparedStatement是预编译SQL语句,同一SQL语句多次执行的情况下,可以复用,不必每次重新编译和解析

2、后续的学习我们都是基于PreparedStatement进行实现,更安全,效率更高!

以下为示例代码:

package org.lib_mana;import java.sql.*;
import java.util.Scanner;public class quickSQL {public static void main(String[] args) throws Exception {
//        1、注册驱动(由于使用maven进行管理则省去该步骤0//        2、获取连接对象
//        这是url的固定结构String url = "jdbc:mysql://localhost:3306/library_management";String username = "root";String password = "20050824";Connection connection = DriverManager.getConnection(url, username, password);//        3、获取执行sql语句的对象String sql = "select * from books where id= ?";PreparedStatement statement = connection.prepareStatement(sql);//        4、编写sql语句并执行Scanner input = new Scanner(System.in);String book_id = input.nextLine();statement.setString(1,book_id);System.out.println(sql);ResultSet resultSet = statement.executeQuery();while (resultSet.next()) {int id = resultSet.getInt("id");String title = resultSet.getString("title");String author = resultSet.getString("author");String isbn = resultSet.getString("isbn");String location = resultSet.getString("location");System.out.println(id+","+title+","+author+","+isbn+","+location);}//        5、释放资源resultSet.close();statement.close();connection.close();}
}

此时输入的任何的值都会被解析为值,防止被sql注入

5、ResultSet

1、ResultSet是JDBC API中的一个接口,用于表示从数据库中执行查询语句所返回的结果集。它提供了一种用于遍历和访问查询结果的方式

2、遍历结果:ResultSet可以使用next()方法将游标移动到结果集的下一行,逐行遍历数据库查询的结果,返回值为boolean类型,true代表有下一行,false则代表没有

3、获取单列结果:可以通过getXxx的方法获取单列的数据,该方法为重载方法,支持索引和列名进行获取

http://www.dtcms.com/a/489217.html

相关文章:

  • 青岛网站建设的流程有哪些网站节约化建设
  • 网站快照不更新原因源码下载网站有哪些
  • 济南简单网站制作排名公司邯郸做网站
  • 设置网站的黑名单怎么做网站备案安全责任书是谁盖章
  • 上海网站建设哪家宜春网站开发公司电话
  • 邵阳竞价网站建设设计定制网站建设简介
  • 做外汇需要了解的网站wordpress 去掉头部
  • 创建百度网站wordpress seo tdk
  • 网站建设 开票税率网址大全浏览器官网
  • 湘乡网站建设wordpress 虚拟主机 推荐
  • 北京网站推广排名公司大学生网站的设计风格
  • 珠海建设工程备案网站网站301在哪做
  • 小程序怎么赚钱的快推达seo
  • 易语言做网站简单教程wordpress 自动分享
  • 做淘宝客怎么做官方网站手机版网站模板下载
  • 做网站外包好吗微信分销网站建设多少钱
  • 北京建网站公司哪家便宜网站做好了怎么和域名
  • 怎么制作网站?无锡市住房和城乡建设局网站
  • 南昌网站建设联系方式html 音乐网站
  • 响应式网站建站工具河北网站设计推荐柚米科技
  • iis7 默认网站目录帮企业做网站赚钱
  • 木木科技 网站艰涩阿里wordpress怎么安装教程
  • dw网站根目录怎么做dede门户网站模版
  • 做英文网站赚钱重庆住房和城乡建设部网站的打印准考证
  • 网站地图制作方法潍坊企业网站设计
  • 全球建站免费网站建设推广服务
  • 中文html网站模板下载建设厅网站上报名
  • c 网站开发实战好大夫在线网站官网做提眉的医生
  • 网站seo的关键词排名怎么做的手机可以做软件开发吗
  • 做搜狗手机网站优化软软件开发包括哪些阶段