唐诗数据库 --- 将数据插入数据库
目的:
将之前获取到的数据全部插入数据库。
步骤:
(1)建好数据库和表。
(2)将数据插入对应的表中。
具体实现:
(1) 建数据库和数据表
建表代码:
CREATE TABLE tangshi(id INT PRIMARY KEY AUTO_INCREMENT,sha256 CHAR(150) NOT NULL UNIQUE,title VARCHAR(40) NOT NULL,dynasty VARCHAR(30) NOT NULL,author VARCHAR(20)NOT NULL,content TEXT NOT NULL,words TEXT NOT NULL)CHARSET utf8mb4;
tangshi | 表的名称 |
---|---|
id | 主键,自增的唐诗序号 |
sha256 | 每首诗的唯一编码,避免数据库重复插入 |
title | 题目,不得为空 |
dynasty | 朝代,不得为空 |
author | 作者,不得为空 |
content | 正文,不得为空 |
words | 分词,不得为空 |
(2)连接数据库
通过 MysqlConnectionPoolDataSource 获取 Connection,带有连接池,参照线程池。
MysqlConnectionPoolDataSource dataSource = new MysqlConnectionPoolDataSource ();
dataSource.setServerName ("127.0.0.1");//连接至本机
dataSource.setPort (3306);
dataSource.setUser ("root");
dataSource.setPassword ("******");//密码
dataSource.setDatabaseName ("tangpoetry");
dataSource.setUseSSL (false);
dataSource.setCharacterEncoding ("UTF-8");
(3)将数据插入数据库
将数据一一插入表中
try(Connection connection = (Connection) dataSource.getConnection()){String sql = "INSERT INTO tangshi"+ "(sha256,title,dynasty,author,content,words)"//表中的数据项+ "VALUES(?,?,?,?,?,?)";try(PreparedStatement statement = connection.prepareStatement (sql)){//插入数据,即之前获取到的数据statement.setString (1,sha256);statement.setString (2,title);statement.setString (3,dynasty);statement.setString (4,author);statement.setString (5,content);statement.setString (6,words);statement.executeUpdate ();}
}
(1)MysqlConnectionPoolDataSource
单介绍一下数据源与连接池:
数据源(DataSource)是提供某种所需要数据的器件或原始媒体。
JDBC中提供了javax.sql.DataSource接口,负责建立与数据库的连接。
DataSource对象可以由Web服务器提供,前提是需要在服务器配置DataSource(包括连接池)数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。
而连接池的概念就像是一个水池,装载的东西就是一个一个的连接通道。
以前我们每次使用数据库,都建立连接,会需要重新登录,然后从中取出数据,最后再将数据库关闭。
但是如果有了连接池,每次访问数据库的连接通道被保存在连接池中。连接池起到了中介的作用,之后如果要进行相同的访问时,那么就可以很快的打开连接通道,从而提高加载速度。
MysqlConnectionPoolDataSource就是一个连接池,用于连接数据库。
(2)PreparedStatement
public interface PreparedStatement extends Statement
表示预编译的SQL语句的对象。
SQL语句已预编译并存储在PreparedStatement对象中。 然后可以使用该对象多次有效地执行此语句。
唐诗数据库 --- 将数据插入数据库相关推荐
- JAVA与下位机传感器进行DTU串口通信并将数据插入数据库
最近在做一个物联网项目,需求是将传感器数据在无网络的环境下收集到服务器.思前想后,决定走DTU通信. 前提: 1.DTU相关配置请自行百度,本项目使用的是原子云4G DTU,需要准备4G物联网卡. 相 ...
- POI:从Excel文件中读取数据,向Excel文件中写入数据,将Excel表格中的数据插入数据库,将数据库中的数据添加到Excel表
POI 简介: POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能. ...
- 数据库原理—数据、数据库(一)
数据库原理-数据.数据库(一) 数据库(Databases)
- 01219 oracle,ORA-01219: 数据库或可插入数据库未打开: 仅允许在固定表或视图中查询 oracle...
一周没用过oracle,打开数据库的时候报错: 执行请求的操作时遇到错误: ORA-01219: 数据库或可插入数据库未打开: 仅允许在固定表或视图中查询 01219. 00000 - "d ...
- ajax传递json数组php,怎么通过ajax传送json数组到php,并通过php将数据插入数据库
如题.本人刚开始学习php,基础并不好,百度了好久都无法实现,希望能给出例子.json数据是拼接得到的 t 1.php不会写 回复讨论(解决方案) 一般网站返回的格式是json POST提交的话 写成 ...
- 从word得到表格数据插入数据库(6位行业代码)
复制表格到excel 点击表格左上角选中全部表格,然后crtl+c,再贴到excel中 可以发现,大类代码,单元格往下走,碰到下一个有值的之前,都是上一个的范围 填充空白单元格 1.选中前四列,然后c ...
- 分布式实时分析数据库citus数据插入性能优化
前言 从可靠性和使用便利性来讲单机RDBMS完胜N多各类数据库,但当数据量到了一定量之后,又不得不寻求分布式,列存储等等解决方案.citus是基于PostgreSQL的分布式实时分析解决方案,由于其只 ...
- html数据插入到数据库,将数据插入到数据库中:text和html格式
将数据(文本和HTML格式)插入到mysql字段LONGTXT中时出现问题. 这里是错误将数据插入到数据库中:text和html格式 public 'error' => string 'You ...
- 使用Python将数据插入数据库(一)
假如我现在有一个Excel数据表格,需要将其数据插入MySQL数据库中.数据如下: 对应的Python实现代码如下: 1 #导入需要使用到的数据模块 2 import pandas as pd 3 i ...
最新文章
- 数据蒋堂 | Hadoop中理论与工程的错位
- 几个软件研发团队管理的小问题
- 参加51CTO培训,PMP考试通过啦
- 手机麦克风声音太大_全民K歌必备利器,得胜PH-125手机K歌麦克风让你轻松拥有好声音...
- python 32位和64位的区别在哪
- 【请收藏】自动化构建部署之Circle CI使用(GitHub/CircleCI/Vue)
- HDU4183 Pahom on Water(来回走最大流,一个点只经过一次)
- Swift和R3联手了,跨境支付市场竞争升级
- jni.h头文件详解一
- 记Python的一些用法
- canvas绘制圆形头像
- 算法归总—短除法求最大公约数
- MSE = Bias² + Variance?什么是“好的”统计估计器
- OneDrive 遇到的坑--0x8004deed,目前的免费网盘分析
- 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: Shared Memory Provider, error: 0-管道的另一端上无任何进程
- 被病毒感染后隐藏文件夹的隐藏属性变灰(不可修改)的解决办法!
- 全国大学生英语竞赛考题总结
- Maven国内源设置 - OSChina国内源失效了,别更新了
- 计算机毕业设计JAVA水利施工安全检测系统设mybatis+源码+调试部署+系统+数据库+lw
- 哈哈哈 记录一下此刻的小激动