linux部署jsp之sqlite数据库错误集

分享一下我在部署jsp页面时其中对数据库相关操作时时遇到的一些错误

1class not found 

        这是纠结我最久的bug了,当时都快疯了,一模一样的项目拷到服务器里咋就不行了呢?驱动无论是是放在WEB-INF 下面还是TOMCAT 的LIB 下面还是解压缩了放哪都不行,后来经过我室友的提醒好像linux和windos下java有点不同,linux下你的外部jar包必须放在classpath下,你要是不在classpath下申明的话jvm是不会理你的
知道问题原因了就好解决了,我在classpath申明一下就好了。
首先因为我是用的腾讯云的集成镜像,所以里面有好几个jdk版本,这个时候用java -version命令找到当前的版本号,然后在文件管理里面逛了几圈最终确定了当前java的安装目录是这个:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.51-1.b16.el6_7.x86_64
  
好了找到安装路径之后就可以添加classpath了
在/etc目录下找到proflie环境配置文件,在它的末尾添加这样三行,
第一行是java的路径,因为它之前没有配置所以得自己加,第三行最后面则是我的数据库驱动的jar包,我是把它放在了java目录下的ext文件内,不知道放其他地方行不行,建议大家也放这里,我也是在网上找的教程
 
 

配置好了之后我发现还是不行,还有最后很关键的一步,重启服务器,之后就ok了
虽然还是在报错,但好在至少不是class not found了

2 .attempt to write a readonly database


3 .Unable to open the database file

下面我们就来到了我的第二个和第三个错误,这两个放在一起描述是因为它们是同一个原因导致的——文件读写权限问题
我首先在这里学习了一下权限修改命令相关的用法:http://www.runoob.com/linux/linux-comm-chmod.html,然后我就cd 到我的目录下然后对我的数据库文件使用chmod a+rw cloudnotes.db3来修改权限,然后错误从第一个变到了第二个。。。。我不得已右继续搜索相关问题,然后终于知道了“打开数据库文件时,还会自动生成一个临时文件。服务器不仅需要对数据库文件可写,而且要对包含该数据库文件的文件夹可写” 然后我就cd ../到上一个文件夹,接着对整个文件夹使用chmod a+rw ROOT修改权限,finally访问成功了!!!没有报错,正常运行


2017-5-17 于吉林大学鼎新图书馆
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux下可以使用SQLite数据库进行操作,SQLite是一种轻量级的关系型数据库,可以在Linux系统中进行安装和使用。SQLite数据库的操作可以通过命令行工具或者编程语言进行实现。 在Linux系统中,可以使用命令行工具sqlite3来进行SQLite数据库的操作。通过sqlite3命令可以打开一个SQLite数据库,然后可以使用SQL语句进行数据的增删改查等操作。例如,可以使用以下命令打开一个SQLite数据库sqlite3 test.db 其中test.db是数据库文件的名称,如果该文件不存在,则会自动创建一个新的数据库文件。然后可以使用SQL语句进行数据操作,例如: 创建表: CREATE TABLE student (id INTEGER PRIMARY KEY, name TEXT, age INTEGER); 插入数据: INSERT INTO student (id, name, age) VALUES (1, '张三', 20); 查询数据: SELECT * FROM student; 更新数据: UPDATE student SET age = 21 WHERE id = 1; 删除数据: DELETE FROM student WHERE id = 1; 除了命令行工具,还可以使用编程语言来进行SQLite数据库的操作。在Linux系统中,可以使用C、C++、Python等编程语言来进行SQLite数据库的操作。例如,在Python中可以使用sqlite3模块来进行SQLite数据库的操作,例如: import sqlite3 # 打开数据库连接 conn = sqlite3.connect('test.db') # 创建游标对象 cursor = conn.cursor() # 创建表 cursor.execute('CREATE TABLE student (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)') # 插入数据 cursor.execute("INSERT INTO student (id, name, age) VALUES (1, '张三', 20)") # 查询数据 cursor.execute('SELECT * FROM student') result = cursor.fetchall() print(result) # 更新数据 cursor.execute("UPDATE student SET age = 21 WHERE id = 1") # 删除数据 cursor.execute("DELETE FROM student WHERE id = 1") # 提交事务 conn.commit() # 关闭游标和连接 cursor.close() conn.close() 以上是在Python中使用sqlite3模块进行SQLite数据库的操作的示例代码。通过编程语言进行SQLite数据库的操作,可以更加灵活和方便地进行数据处理。 ### 回答2: LinuxSQLite数据库操作是一种简易和轻量级的数据库操作方式,该数据库嵌入式在应用程序中,因此应用程序与数据库的交互非常方便,而且无需配置和管理数据库服务。 在Linux系统中,我们可以安装SQLite库并通过C语言或其他编程语言来操作SQLite数据库。一般情况下,SQLite库已经预安装在Linux系统中,我们可以通过终端命令'which sqlite3'来确认。 SQLite数据库的数据类型是基本数据类型,如文本、整数、实数和布尔型等,并且不需要创建表空间、用户等等,使用方便。 下面是SQLite数据库的常用操作方法: 1. 创建数据库并连接 可以使用终端命令Sqlite3来创建一个新的SQLite数据库并链接到它: sqlite3 MyDatabase.db 此时我们进入了一个SQLite的控制台,在这里可以执行常用的SQL命令,例如创建表等。 2. 创建表 使用CREATE TABLE 语句来创建表: CREATE TABLE table_name ( column1 datatype constraint, column2 datatype constraint, ..... ); 例如创建一个名为student的表: CREATE TABLE student ( id integer PRIMARY KEY, name text NOT NULL, age integer CHECK (age >= 16) ); 3. 插入数据 使用INSERT INTO语句来向表中插入数据: INSERT INTO table_name (col1, col2, ..., coln) VALUES (value1, value2, ..., valuen); 例如向上面的student表中插入数据: INSERT INTO student (id, name, age) VALUES (1, 'Tom', 18); INSERT INTO student (id, name, age) VALUES (2, 'Jack', 17); 4. 查询数据 使用SELECT语句来查询数据: SELECT column1, column2, ..., columnn FROM table_name WHERE condition; 例如查询student表中的所有记录: SELECT * FROM student; 5. 更新数据 使用UPDATE语句来更新表中的数据: UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition; 例如将id为1的记录的年龄修改为20: UPDATE student SET age = 20 WHERE id = 1; 6. 删除数据 使用DELETE语句来删除表中的数据: DELETE FROM table_name WHERE condition; 例如删除id为2的记录: DELETE FROM student WHERE id = 2; 以上就是LinuxSQLite数据库的基本操作方法。由于SQLite数据库非常轻量级,所以在小型项目中使用SQLite数据库是非常方便的,它可以通过一些简单的命令就能够完成对数据库的操作,从而大幅度减少了开发人员的工作量。同时,SQLite数据库还支持跨平台使用,这在实际的开发过程中也非常有用。 ### 回答3: SQLite是一种轻型的、基于文件的关系型数据库系统,与MySQL、PostgreSQL等数据库系统相比较,它更加简单易用和灵活可靠,被广泛用于各种移动设备和嵌入式系统。Linux是一个开放源代码的计算机操作系统,拥有一系列强大的命令行工具和图形界面工具,可以很方便地对SQLite数据库进行操作。 在Linux系统中,我们可以通过安装sqlite3命令行工具来进行SQLite数据库的操作。首先,我们需要创建一个SQLite数据库文件,可以使用以下命令: ``` $ sqlite3 database.db ``` 这条命令将会创建一个名为database.db的空白SQLite数据库文件,并进入sqlite3交互式环境。在这个环境下,我们可以通过自己的SQL语句来操作数据库。 创建表格 表格是SQLite中最基本的数据存储方式,我们可以使用CREATE TABLE语句来创建一个新的表格。例如,我们要创建一个名为students的表格,其中包含学生的姓名、年龄和成绩三个字段: ``` sqlite> CREATE TABLE students ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER, score REAL ); ``` 这个命令将会在当前的数据库中创建一个名为students的表格,其中id为整数类型主键,name为文本类型,必填项,age为整数类型,score为实数类型。 插入数据 新建表格之后,我们可以使用INSERT INTO语句来向表格中插入一条新的记录。例如,要向students表格中插入一条记录,可以使用以下命令: ``` sqlite> INSERT INTO students ( name, age, score ) VALUES ( 'Tom', 18, 95.5 ); ``` 这个命令将会向students表格中插入一条新记录,其中包含姓名Tom、年龄18、成绩95.5三个字段。如果成功插入记录,SQLite将会返回一个整数值1。 查询数据 除了插入数据,我们还可以使用SELECT语句来查询表格中的数据。例如,要查询所有学生的姓名和成绩,可以使用以下命令: ``` sqlite> SELECT name, score FROM students; ``` 这个命令将会从students表格中查询出所有记录的姓名和成绩,并以表格的形式进行输出。 更新数据 有时候我们需要对已有的记录进行修改,可以使用UPDATE语句来更新表格中的数据。例如,要将学生Tom的成绩修改为90,可以使用以下命令: ``` sqlite> UPDATE students SET score=90 WHERE name='Tom'; ``` 这个命令将会在students表格中查找出姓名为Tom的记录,并将其成绩修改为90。 删除数据 如果需要删除students表格中的某条记录,可以使用DELETE FROM语句来删除。例如,要删除姓名为Tom的学生记录,可以使用以下命令: ``` sqlite> DELETE FROM students WHERE name='Tom'; ``` 这个命令将会在students表格中查找出所有姓名为Tom的记录,并将其全部删除。 总之,Linux系统自身提供了非常强大的命令行工具和广泛的应用软件库,可以很方便地操作SQLite数据库。对于开发者而言,使用SQLite等嵌入式数据库系统可以大幅减少开发成本和复杂度,提高系统性能和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值