java连接数据库的常见问题及解决办法
前言:java连接数据库时,同学们容易出现一些问题。这里把jdbc连接实现过程写出来以及列举一些常见的问题。简介:Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。
1 在进行数据库连接之前,需要准备一个对应版本的数据库驱动,那么我们首先需要找到电脑上mysql的版本是多少怎么查看?如果你的安装目录上写有版本号,就不用再看了1) 找到安装的mysql,进入bin目录,在路径上输入cmd,回车
2) 输入登录mysql的命令:mysql -u root -p,回车,输入正确密码,回车,这个时候我们就可以看到mysql的版本是8.0.28
3) 根据版本选择驱动下载,我们是8.0以上的版本,所以选择8.0以上版本的驱动,去官网进行下载
2 准备一个数据库
1 创建一个Java项目
2 创建一个类
3 把jar包复制到项目中,然后构建路径
4 编写连接数据库的代码,需要用到操作数据库的各种接口和类型:
5 开始编写代码,查询全部数据
6 模拟登录操作,条件查询
7 分页查询首先添加数据
剩下的其他操作类似,就不一一列举了
总结一下,连接数据库容易出问题的地方1 连接数据库驱动错误,数据库驱动需要选择数据库对应版本的驱动,目前是5.0和8.0版本的。解决办法:更换为正确版本的驱动2 连接数据库时,数据库名,数据库的用户名和密码,填写错误,这样会导致连接不上数据库。解决办法:填写正确的数据库名,用户名和密码3 sql语句错误,sql语句错误一般是语法错误或者符号错误。解决办法:打印一下sql语句,把sql语句拿到数据库里去执行,看是否有问题,数据库能够执行成功,就可以了4 传参错误,传参方法与传参类型一致,int类型使用setInt方法,以此类推。解决办法:修改方法与类型一致5 如果你们还遇到了其他问题,可以联系源妹儿。
你知道吗?5个基于JAVA开源NoSQL数据库
| 责编:王迪
如今,随着NoSQL越来越得到开发者和企业的关注,尤其是大数据的时代,普通的关系型数据库正在逐渐暴露出其力不从心的一面。利用NoSQL,让我们在数据分析上更加得心应手,所以我们开发者要重视NoSQL的存在。本文分享了7个基于JAVA的开源NoSQL数据库,一起来看看。
Apache HBase
这个不用多说,肯定都听说过,Google开发的,HBase是继其开发的分布式存储系统Bigtable之后的另一个开源的、分布式、版本化的、非关系型数据库。
Neo4j
开源的图形数据库,用Java实现。开发者将Neo4j描述为“嵌入式,基于磁盘,完全事务的Java持久引擎,将数据结构化存储在图中而不是在二维表格中”。
Terrastore
Terrastore是一个基于Terracotta(一个业界公认的、快速的分布式集群组件)实现的高性能分布式文档数据库。可以动态从运行中的集群添加/删除节点,而且不需要停机和修改任何配置。支持通过http协议访问Terrastore。Terrastore提供了一个基于集合的键/值接口来管理JSON文档并且不需要预先定义JSON文档的架构。易于操作,安装一个完整能够运行的集群只需几行命令。
Voldemort
分布式键值存储系统。本质上说是一个大型,分布式,持久的,容错哈希表。对于应用,它可以使用类似active-record或者hibernate的O/R映射工具,这些可以提供水平扩展和更高的可用性,但是会损失巨大的便利性。
InfoGrid
作为一款网页图形数据库,InfoGrid的整体框架非常清晰,但是缺点是Java API并不完善。
第七章:Python之数据库编程
第一节:数据库API与全局变量及核心类基本流程
- 数据库API
- python DB API 2.0
- 通过全局变量查看 DB API特性
- 全局变量用于判断该数据库模块所支持的功能,通常有以下3个全局变量
- apilevel:显示数据库模块的API版本号
- threadsafety:指定该数据库模块的线程安全等级
- paramstyle:指定当SQL语句需要参数时,可以使用哪种风格(qmark、numeric、named)的参数
- 核心API
- connect()函数:链接数据库,返回数据库链接
- 数据库链接:用于打开游标,开启或提交事务
- 游标:用于执行SQL语句,获取执行结果
- 操作数据库的流程
第二节:案例实操-动态创建数据表
- 导入sqlite3模块
- python自带了sqlite数据库和sqlite数据库的API模块,无需再安装,如果是导入其他sqlite自身未带有的模块,就需要大家手动去安装了
- 导入sqlite3模块,通过全局变量可了解该模块支持的特性
- 执行DDL创建数据库
- 按照前面的步骤操作SQLite数据库,只要用游标执行DDL语句即可
- SQLite数据库特性
- SQLite 内部只支持NULL 、INTEGER 、REAL(浮点型)、TEXT(文本)和BLOB(大二进制对象)这五种数据类型
- SQLite允许输入数据时忽略底层数据列实际的数据类型,因此在编写建表语句时可以省略数据列后面的类型声明
第三节:使用SQLite Expert
- 下载安装SQLite EXpert
- 登录http://www.sqliteexpert.com/download.html下载软件
- 安装:跟安装普通软件相同,按照步骤安装即可
- 使用SQLite EXpert创建数据库
- 主界面左上角的第一个和第二个按钮(创建内存中的数据库)都可以创建数据库
- 创建数据库之后就可以创建数据表:选择工具栏中的SQL->New SQL Tab
- 使用SQLite EXpert打开数据库
- 单击主界面工具条上第三个按钮即可打开数据库,打开数据库之后 ,可查看该数据库包含的数据表以及表中包含的数据
第四节:执行DML语句
- 执行DML语句
- 使用游标的execute()方法也可以执行语句的insert、update、delete语句
- SQLite数据 API默认就是开启事务,因此必须提交事务,否则程序对数据所做的修改(包括插入数据、删除数据,整理数据)不会生效
- 重复执行多次DML语句
- 使用executemany()方法则可以将同一条DML语句重复执行多次
- 该方法的第二个参数包含几个元组,该DML语句就会被执行几次
第五节:执行查询
- 使用execute执行查询语句
- 此时改为执行select语句,由于select语句执行完成后可以得到查询结果,因此程序可通过游标的fetchone()、fetchmany(n)、fetchall()来获取查询结果,也可以直接将游标当成可迭代对象来获取查询结果
- fetchone():返回一个元组,该元组代表一行数据
- fetchmany(n):返回一个长度小于等于n的列表,列表每个元素都是一个元组(每个元组代表一行数据)
- fetchall():尽量避免使用fetchall()来获取查询返回的全部记录,原因是可能导致内存开销过大,严重时可能导致系统崩溃
第六节:案例实操-使用事务控制数据库操作
- 事务:事务由一步或者几步数据库操作序列组成的逻辑执行单元
- 事务具备的4个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability),简称ACID
- 事务回滚两种方式:显示回滚和自动回滚
- 显示回滚:调用数据库连接对象的rollback
- 自动回滚:系统错误或者强行退出(退出之前没有提交)
第七节:案例实操-用程序执行SQL脚本
- 编写SQL脚本
- 多条SQL语句组成SQL脚本
- 执行SQL脚本
- 游标对象还包含一个executescript()方法,可执行一段SQL脚本,它并不是一个标准的API,但是大部分的数据库API模块中都有这个方法
- 便捷方法:
- execute(sql[, parameters]):执行一条SQL语句
- executemany(sql[, parameters]):根据序列重复执行SQL语句
- executescript(sql_script):执行SQL脚本
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。