-
2020-04-17 16:02:03
尝试一、修改pom.xml引入的mysql-connector-java版本为8.0.16(与MySQL版本一致);
对项目进行打包,打包后,检查程序包内的mysql-connector-java是否是设置的8.0.16版本,若不是的话,需要将程序内的mysql-connector-java替换成8.0.16版本的jar包;
对jar包进行运行测试;
若运行通过将不用再进行下面的尝试;
尝试二、
1、将driverClassName=com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver;
并将<property name="url" value="jdbc:mysql://IP:3306/数据库名?characterEncoding=utf8"/>
改为
<property name="url" value="jdbc:mysql://IP:3306/数据库名?useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&characterEncoding=utf8"/>
2、保留尝试一步骤
对项目进行打包,打包后,检查程序包内的mysql-connector-java是否是设置的8.0.16版本,若不是的话,需要将程序内的mysql-connector-java替换成8.0.16版本的jar包;
对jar包进行运行测试;
若运行通过将不用再进行下面的尝试;
尝试三、
在尝试一的基础上,将引入的mysql-connector-java版本降到5以上;
尝试四、
修改MySQL事务隔离级别
SHOW VARIABLES LIKE '%iso%';
SET SESSION transaction_isolation='READ-COMMITTED';上述步骤用于出现错误:
Could not retrieve transation read-only status server
Unknown system variable 'tx_read_only'
的解决办法
更多相关内容 -
数据库mysql项目实战 一
2021-10-22 23:10:26使用创建的数据库创建User表。 显示table。 CREATE DATABASE GQ_DB; #创建数据库 SHOW DATABASES; USE GQ_DB; #使用数据库 CREATE TABLE TBL_USER( #创建User表 U_ID INT PRIMARY KEY AUTO_INCREMENT, U_...目录
在 Node Server 服务器上通过SQL语句在数据库服务器上插入信息
数据库建模与建库建表
- 提出需求,保存用户的姓名性别,放在一个表格中。
- 先在数据库服务器创建一个数据库。
- 使用创建的数据库创建User表。
- 显示table。
CREATE DATABASE GQ_DB; #创建数据库
SHOW DATABASES;
USE GQ_DB; #使用数据库
CREATE TABLE TBL_USER( #创建User表
U_ID INT PRIMARY KEY AUTO_INCREMENT,
U_NAME VARCHAR(32),
U_GENGDER VARCHAR(8)
);SHOW TABLES; #显示table
注意事项:写SQL语句的时候。a.建议大写 b.在每个表的前面加上TBL,数据库加DB。再做一个项目之前首先想到的就是数据库建模。
mysql数据库编程连接与插入数据
首先建立连接,上面传输的是SQL语句。
SELECT *FROM TBL_USER;
INSERT TBL_USER(U_NAME, U_GENGDER) VALUES('GQ', 'man'); #插入姓名性别
SELECT *FROM TBL_USER;
在 Node Server 服务器上通过SQL语句在数据库服务器上插入信息
首先,需要在NS服务器上安装MySQL开发工具,在Ubuntu上执行下面命令:
sudo apt-get install libmysqlclient-dev
利用代码实现:
#include<stdio.h> #include<mysql.h> #include<string.h> #define GQ_DB_SERVER_IP "192.168.80.128" #define GQ_DB_SERVER_PORT 3306 #define GQ_DB_SERVER_USERNAME "admin" #define GQ_DB_SERVER_PASSWORD "521125" #define GQ_DB_SERVER_DEFAULTBD "GQ_DB" #define SQL_INSERT_TBL_USER "INSERT TBL_USER(U_NAME, U_GENGDER) VALUES('GQ', 'man'); " //C U R D int main(){ MYSQL mysql; //操作句柄 mysql | (管道) if(NULL == mysql_init(&mysql)){ printf("mysql_init: %s\n", mysql_error(&mysql)); return -1; } if(!mysql_real_connect(&mysql, GQ_DB_SERVER_IP, GQ_DB_SERVER_USERNAME, GQ_DB_SERVER_PASSWORD, GQ_DB_SERVER_DEFAULTBD, GQ_DB_SERVER_PORT, NULL, 0)){ printf("mysql_real_connect: %s\n", mysql_error(&mysql)); return -2; } //mysql --> insert if(mysql_real_query(&mysql, SQL_INSERT_TBL_USER, strlen(SQL_INSERT_TBL_USER))){ printf("mysql_real_query: %s\n",mysql_error(&mysql)); } mysql_close(&mysql); return 0; }
编译命令:
gcc -o mysql mysql.c -I /usr/include/mysql/ # -I加入系统头文件
gcc -o mysql mysql.c -I /usr/include/mysql/ -lmysqlclient # -lmysqlclient 引入编译所需库
代码结果:
我们修改第17行的信息.,增加用户信息。
#define SQL_INSERT_TBL_USER "INSERT TBL_USER(U_NAME, U_GENGDER) VALUES('GCJ', 'woman');
注意:值得关注第28行与第33行的if判断,Linux的API大部分返回0为成功(第42行是如此),而mysql提供的28行与33行两个接口恰好相反。
mysql数据库的查询操作
至少需要四个步骤:
int Gq_mysql_select(MYSQL *handle){ //mysql_real_query --> sql if(mysql_real_query(handle, SQL_SELECT_TBL_USER, strlen(SQL_SELECT_TBL_USER))){ printf("mysql_real_query: %s\n",mysql_error(handle)); return -1; } //sotre --> MYSQL_RES *res = mysql_store_result(handle); if(res == NULL){ printf("mysql_store_result: %s\n", mysql_error(handle)); return -2; } //rows / fields int rows = mysql_num_rows(res); printf("rows: %d\n", rows); int fields = mysql_num_fields(res); printf("fields: %d\n", fields); //fetch MYSQL_ROW row; while((row = mysql_fetch_row(res))){ int i = 0; for(i = 0; i < fields; i++){ printf("%s\t", row[i]); } printf("\n"); } mysql_free_result(res); return 0; }
代码运行结果:
mysql数据删除与存储过程调用
在MYSQL workbench 中输入如下命令:
DELETE FROM TBL_USER WHERE U_NAME='GQ';
出现了下面错误: DELETE FROM TBL_USER WHERE U_NAME='GQ' Error Code: 1046. No database selected Select the default DB to be used by double-clicking its name in the SCHEMAS list in the sidebar.
版本5.6以后提供了按照主键删除的方式,U_NAME不是主键(key)。如果非要这么做我们可以设置成安全模式:
SET SQL_SAFE_UPDATES=0; #设置安全模式
DELETE FROM TBL_USER WHERE U_NAME='GQ';
SET SQL_SAFE_UPDATES=1;SELECT *FROM TBL_USER;
可以看到用户GQ被删除成功。
代码实现时,我们要将三条语句一起实现,可以但是容易出错,这里我们引入一个存储过程,定义一个存储过程:
DELIMITER @@ #定义标识符,存储过程以什么结束
CREATE PROCEDURE PRCO_DELETE_USER(IN UNAME VARCHAR(32))#创建存储过程
BEGIN
SET SQL_SAFE_UPDATES=0;
DELETE FROM TBL_USER WHERE U_NAME=UNAME;
SET SQL_SAFE_UPDATES=1;
END @@CALL PROC_DELETE_USER('GQ') #D调用存储过程
下面看如何在代码实现,定义一个存储过程。
#define SQL_DELETE_TBL_USER "CALL PROC_DELETE_USER('GQ')" // mysql -->delete printf("case: mysql -->delete\n"); #if 1 if(mysql_real_query(&mysql, SQL_DELETE_TBL_USER, strlen(SQL_DELETE_TBL_USER))){ printf("mysql_real_query: %s\n",mysql_error(&mysql)); } #endif
我们先插入用户GQ再进行删除的结果:
完整代码:
#include<stdio.h> #include<mysql.h> #include<string.h> #define GQ_DB_SERVER_IP "192.168.80.128" #define GQ_DB_SERVER_PORT 3306 #define GQ_DB_SERVER_USERNAME "admin" #define GQ_DB_SERVER_PASSWORD "521125" #define GQ_DB_SERVER_DEFAULTBD "GQ_DB" #define SQL_INSERT_TBL_USER "INSERT TBL_USER(U_NAME, U_GENGDER) VALUES('GQ', 'man'); " #define SQL_SELECT_TBL_USER "SELECT *FROM TBL_USER;" #define SQL_DELETE_TBL_USER "CALL PROC_DELETE_USER('GQ')" int Gq_mysql_select(MYSQL *handle){ //mysql_real_query --> sql if(mysql_real_query(handle, SQL_SELECT_TBL_USER, strlen(SQL_SELECT_TBL_USER))){ printf("mysql_real_query: %s\n",mysql_error(handle)); return -1; } //sotre --> MYSQL_RES *res = mysql_store_result(handle); if(res == NULL){ printf("mysql_store_result: %s\n", mysql_error(handle)); return -2; } //rows / fields int rows = mysql_num_rows(res); printf("rows: %d\n", rows); int fields = mysql_num_fields(res); printf("fields: %d\n", fields); //fetch MYSQL_ROW row; while((row = mysql_fetch_row(res))){ int i = 0; for(i = 0; i < fields; i++){ printf("%s\t", row[i]); } printf("\n"); } mysql_free_result(res); return 0; } //C U R D int main(){ MYSQL mysql; //操作句柄 mysql | (管道) if(NULL == mysql_init(&mysql)){ printf("mysql_init: %s\n", mysql_error(&mysql)); return -1; } if(!mysql_real_connect(&mysql, GQ_DB_SERVER_IP, GQ_DB_SERVER_USERNAME, GQ_DB_SERVER_PASSWORD, GQ_DB_SERVER_DEFAULTBD, GQ_DB_SERVER_PORT, NULL, 0)){ printf("mysql_real_connect: %s\n", mysql_error(&mysql)); return -2; } //mysql --> insert printf("case: mysql --> insert\n"); #if 1 if(mysql_real_query(&mysql, SQL_INSERT_TBL_USER, strlen(SQL_INSERT_TBL_USER))){ printf("mysql_real_query: %s\n",mysql_error(&mysql)); } #endif Gq_mysql_select(&mysql); // mysql -->delete printf("case: mysql -->delete\n"); #if 1 if(mysql_real_query(&mysql, SQL_DELETE_TBL_USER, strlen(SQL_DELETE_TBL_USER))){ printf("mysql_real_query: %s\n",mysql_error(&mysql)); } #endif Gq_mysql_select(&mysql); mysql_close(&mysql); return 0; }
-
使用pycharm创建django项目,并且使用mysql数据库
2019-05-17 22:03:531、首先,使用pycharm创建django项目,同时创建app 然后修改项目下的setting内的时区,进行本地化 2、然后替换数据库,修改为下面 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', '...1、首先,使用pycharm创建django项目,同时创建app
然后修改项目下的setting内的时区,进行本地化
2、然后替换数据库,修改为下面
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'onedata', 'USER':'root', 'PASSWORD':'root', 'HOST':'127.0.0.1', 'PORT':'3306', } }
使用pycharm生成的django的app不用自己注册的,系统直接注册。
3、然后导入mysqlclient,如果没有的话,首先pip install mysqlclient
4、在models的文件中创建模型类
当使用外键的时候别忘了加一句话on_delete=models.CASCADE
hbook = models.ForeignKey('Bookinfo', on_delete=models.CASCADE)
否则会出现错误
5、进行数据库的映射
执行
python manage.py makemigrations
python manage.py migrate至此完成了数据库的映射及django的项目的创建。
-
SpringBoot项目连接MySQL数据库
2022-05-10 15:05:51一般在新建SpringBoot项目时,勾选了MySQL以及JDBC依赖,可以直接使用,无须再次导入依赖 依赖查找:https://mvnrepository.com/ 1.在pom文件中导入MySQL依赖 <dependency> <groupId>mysql</groupId...前言
本篇基于MySQL数据库 8.0.29版本进行说明,需要提前安装MySQL数据库。具体教程详见:《最新版MySQL 8.0 的下载与安装(详细教程)》
一、导入依赖
一般在新建SpringBoot项目时,勾选了MySQL以及JDBC依赖,可以直接使用,无须再次导入依赖
依赖查找:https://mvnrepository.com/1.在pom文件中导入MySQL依赖
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.29</version> </dependency>
2.在pom文件中导入JDBC依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
3.在pom文件中导入mybatis-plus依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>
二、连接数据库
在application.yml中进行连接数据库的简单配置,yml文件中格式不能错位,不然不会读取配置
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver type: com.zaxxer.hikari.HikariDataSource url: jdbc:mysql://localhost:3306/sbvue?useUnicode=true&characterEncoding=utf-8&useSSL=true username: root password:
数据库中的数据
三、测试
使用mybatis-plus进行映射
1.创建UserPo实体类
采用了Lombok简化代码
@Data @NoArgsConstructor @AllArgsConstructor @TableName("user") public class UserPO { @TableId(value = "id",type = IdType.AUTO) private int id; @TableField("name") private String name; @TableField("age") private int age; }
2.在Mapper包下创建UserMapper
@Repository public interface UserMapper extends BaseMapper<UserPO> { }
3.在启动类增加注解
在启动类SbvApplication 增加@MapperScan(“包名”),包名需要一直到mapper包
@SpringBootApplication @MapperScan("com.wsnk.sbv.mapper") public class SbvApplication { public static void main(String[] args) { SpringApplication.run(SbvApplication.class, args); } }
4.测试
在SbvApplicationTests 测试类中,查询所有用户
@SpringBootTest class SbvApplicationTests { @Autowired private UserMapper userMapper; @Test public void ceshi(){ for (UserPO userPO : userMapper.selectList(null)) { System.out.println(userPO.toString()); } } }
查询成功
-
使用docker部署springboot项目并连接上mysql数据库
2020-02-19 16:37:31使用docker部署springboot项目并连接上mysql数据库 需要的知识 Linux操作系统 docker(了解git的工作方式即可) 工具 xshell(用来连接linux服务器) xftp用来给linux服务器上传文件 sqlyog(或者navicat)在服务器... -
使用IDEA创建SpringBoot+MyBatis+MySql项目连接数据库实例(绝对可行)
2019-02-19 16:12:281、首先我们先在IDEA上创建一个SpringBoot的Web项目 (1)file ——&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; new ——&amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; project (2)——&amp;... -
idea JavaEE项目使用JDBC连接Mysql数据库
2020-03-01 16:49:16步骤: 1、首先在本地安装Java环境,即jdk+jre。 2、本地安装Tomcat服务器。 3、本地安装Mysql。 4、下载Idea,创建Java EE项目。...5、使用JDBC连接Mysql数据库,尝试读取数据。 一、安装Java环境 ... -
php+mysql简单小项目
2020-09-22 10:17:51之前看见的一个博客没写全的项目,就把它粘下来改了改补全了(至少增删改查这些基础数据库操作加上了),分了一下mvc,因为我只是刚学四五天的小白,MVC不是很明确,model还写不好,于是处理mysql的都单独写在了... -
java maven项目连接mysql数据库
2020-05-05 19:27:22在maven项目下新建class文件,编辑该文件,部分具体代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public static void main(String[] args) { ... -
创建springboot+mybatis+mysql项目
2022-04-15 00:33:24创建这个项目是要建立在有java基础之上,并且对ideal开发工具熟练操作。 有了以上的基础,就按照一步一步的操作进行就可以了 第一步:打开deal开发工具,创建项目如图所示: 图1到6 点击finish... -
Java项目中数据库从mysql 5.7更换到mysql8.0.18版本
2021-06-09 20:19:21我们从网上下载或者购买一个项目之后,要想在本地运行起来,首先要做的事情就是查看所需要的环境是否一致,即Tomcat/IDEA/JDK/Mysql等版本要保持一致。今天yg -
MySQL 一一 MySQL基本使用
2018-01-08 21:49:021、数据库 简单来说,所谓的数据库就是存储数据的...随着时间的推移,瑞典AB公司把MySQL数据库转让给Sun公司(Java语言的创始公司) 后来,Sun公司经营不善,又把MySQL数据库转让给甲骨文公司(Oracle数据库) 4、数 -
IDEA项目连接MySQL数据库
2019-07-01 20:41:48IDEA项目连接MySQL数据库 一、前提 电脑已经安装好IntelliJ IDEA、MySQL和SQLyog并配置好,博主使用版本: 1)IntelliJ IDEA 2018.2.2 2)MySQL 5.5.58 3)SQLyog 12.0.8.0 4)jdk 1.8.0_181 5)Tomcat 7.0.94... -
eclipse中的web项目连接MySQL数据库
2021-12-12 19:17:51JSP连接MySQL数据库实现将内容打印在页面上以及登录显示登录者的信息 -
Mysql使用SSL连接
2021-09-27 16:51:04Mysql使用SSL连接1.描述2.安装 OpenSSL3. 使用 OpenSSL 创建 SSL 证书和私钥3.1 修改mysql 的my.ini配置文件3.2 创建 SSL 证书和私钥3.3 验证是否连接成功4. 添加信任证书到密钥库5.jdbc访问 1.描述 项目部署时... -
ABP中使用MySql数据库
2021-12-06 11:43:33ABP使用Mysql数据库 -
C#连接和使用MySQL数据库详细教程
2021-03-20 18:51:55在VS2019项目内,引用mysql.data.dll文件 进入DLL官网下载mysql.data.dll文件(可自选版本下载) 点击下载 下载完成,然后解压mysql.data.dll文件 在项目中右键引用->添加引用->浏览->选中MySql.Data.... -
mysql索引有哪些类型?
2021-08-20 14:02:15通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。索引优化时mysql中的一种优化方式。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 下面我们来看看MySQL目前... -
C++中使用MySQL数据库
2021-04-09 09:48:24文章目录1. 安装MySQL2. 拷贝include和lib文件夹到C++工程中3....因为项目需要使用C++的方式调用MySQL数据库,因为以前使用的都是Qt的数据库类,因此在网上查阅相关资料后,特整理一下使用方法。(下方的 -
Docker部署springboot项目并连接上docker的mysql
2022-03-23 15:38:50并查看Docker的版本信息 第二步:使用Docker安装mysql:5.7 1可以先在docker hub上查找mysql的镜像 docker search mysql 2,我这次安装的mysql:5.7 所以直接从docker hub上拉取mysql:5.7 docker pull mysql:5.7 3,... -
mysql5.6 和MySQL8.0 使用主要区别
2021-06-15 15:21:38MySQL 的版本实际使用来说,mysql5.6 mysql5.7 mysql8.0 是大家目前使用最多的版本,而这三个版本之间有什么别较大的区别呢,个人总结如下: -
Spring项目使用mysql8.0时需要注意的两点
2018-06-26 10:05:07一.之前的连接url配置jdbc:mysql://localhost:3306/steam?unicode=utf8根据MySQL ...符合现有的应用程序不使用SSL的verifyservercertificate属性设置为“false”。你需要显式禁用SSL设置usessl = false,或设置... -
VUE项目中使用node.js搭建server连接本地mysql数据库
2020-02-29 15:59:05最近在研究vue项目中使用node.js搭建server服务器,链接本地mysql数据库,进行数据操作。 准备工作: 1.vue 2.node.js 3:mysql 前面两项对于入行前端的小伙伴应该不是问题了吧, 如果有的话,可以参考vue安装项目。 ... -
maven项目连接MySQL(使用原生的jdbc)
2018-05-07 17:53:121.引入依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version>...2.项目目录结构 jdbc... -
Mysql数据库切换成Oracle数据库,使用Mybatis+Oracle整合项目,Mysql与Oracle差别总结
2018-11-12 10:09:49最近公司给我一个任务,把现有项目由Mysql切换成Oracle,而且还要求兼容Mysql和Oracle数据库。网上有很多类似的资源,说了这两个数据库的差别,但是没有进行完整的总结。在这个任务完成后,我在这里总结一下。 1.... -
Spring Boot中使用mysql数据库
2018-07-16 19:44:29我们在上一篇文章中已经尝试Spring Boot中使用MongoDB数据库,本章来...我们在Spring Boot现有的项目上增加mysql的访问,使用方案为Spring data jpa 官网参考如下: https://spring.io/guides/gs/accessing-data-m... -
CentOS7中使用Docker部署SpringBoot+MySQL项目
2019-05-13 12:05:55使用 Docker 部署应用的方式有多种,如每个应用单独部署再连接容器,如 docker-compose... 本博客是单独部署的每一个容器。 本篇博客的操作有: ① 在本地创建一个 SpringBoot 项目;配置 Dockerfile ② 把 ... -
Vue项目通过node连接MySQL数据库并实现增删改查操作
2022-03-01 13:47:19Vue项目通过node连接MySQL数据库 1.创建Vue项目 vue create 项目名 2.下载安装需要的插件 下载express npm install express 下载cors,用于处理接口跨域问题 npm install cors 下载mysql npm install mysql... -
springBoot常用注解【Mysql+ClickHouse】项目搭建
2022-02-22 14:26:05从根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。springBoot并不是一个全新的框架,他不是spring解决方案的一个替代品,而是spring的一个封装。所以,以前可以用spring做的事,... -
gradle项目链接mysql
2017-08-02 12:47:13build.gradle中增加jar包 compile ("mysql:mysql-connector-java:5.1.24") 项目中连接修改 @Configuration @Profile("dev") public class DevConfig { @Bean public DataSource dataSource() throws SQLException {