问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用eclipse连接MySQL,实现简单的增删改差,比如手机话费,但update增方法时,出问题了

发布网友 发布时间:2022-04-08 18:09

我来回答

6个回答

懂视网 时间:2022-04-08 22:30

  Exception in thread "main" java.sql.SQLException: Could not retrieve transation read-only status server

  ……?

  Caused by: java.sql.SQLException: Unknown system variable ‘tx_read_only‘

我捣鼓了一整个下午,参考别人的代码,甚至完全套用别人的工程来跑一遍结果还是报这个错误。

排除语法错误后我以为是connector有问题,但重新下了一个仍无济于事,

最后我索性把MySQL卸掉,到官网重下了个最新版,以及最新版connector,结果大功告成。

所以结论是:connector和MySQLserver的版本不匹配或者其中某一个有问题?

java连接MySQL进行增删改操作时报错

标签:

热心网友 时间:2022-04-08 19:38

Android 连接数据库
Android采用关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作上有很广泛的,WM采用的也是SQLite3

关于过于、原理方面的东西在这篇文章里不会提到,但是如果你想能够快速的学会操作SQLite3,那这就是你要找的文章!

首先,我们看一下api,所有数据库相关的接口、类都在.database和android.database.sqlite两个包下,虽然只有两个包,但是如果你英文不好或是太懒的话也要迷茫一段时间,其实,我们真正用的到的没有几个!

1、SQLiteOpenHelper (android.database.sqlite.SQLiteOpenHelper)

这是一个抽象类,关于抽象类我们都知道,如果要使用它,一定是继承它!

这个类的方法很少,有一个构造方法

SQLiteOpenHelper(android.content.Context context, java.lang.String name,android.database.sqlite.SQLiteDatabase.CursorFactory factory, int version);

参数不做过多的解释,CursorFactory一般直接传null就可以

public void onCreate(SQLiteDatabase db)

此方法在创建数据库是被调用,所以,应该把创建表的操作放到这个方法里面,一会儿在后面我们会再详细的说如何创建表

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

从方法名上我们就能知道这个方法是执行更新的,没错,当version改变是系统会调用这个方法,所以在这个方法里应该执行删除现有表,然后手动调用onCreate的操作

SQLiteDatabase getReadableDatabase()

可读的SQLiteDatabase对象

SQLiteDatabase getWritableDatabase()

获取可写的SQLiteDatabase对象

2、SQLiteDatabase(android.database.sqlite.SQLiteDatabase)

关于操作数据库的工作(增、删、查、改)都在这个类里

execSQL(sql)

执行SQL语句,用这个方法+SQL语句可以非常方便的执行增、删、查、改

除此之外,Android还提供了功过方法实现增、删、查、改

long insert(TABLE_NAME, null, contentValues)添加记录

int delete(TABLE_NAME, where, whereValue)删除记录

int update(TABLE_NAME, contentValues, where, whereValue) 更新记录

Cursor query(TABLE_NAME, null, null, null, null, null, null) 查询记录

除此之外,还有很多方法,如:beginTransaction()开始事务、endTransaction()结束事务...有兴趣的可以自己看api,这里就不多赘述了

3、Cursor(android.database.Cursor)

游标(接口),这个很熟悉了吧,Cursor里的方法非常多,常用的有:

boolean moveToPosition(position)将指针移动到某记录

getColumnIndex(Contacts.People.NAME)按列名获取id

int getCount()获取记录总数

boolean requery()重新查询

boolean isAfterLast()指针是否在末尾

boolean isBeforeFirst()时候是开始位置

boolean isFirst()是否是第一条记录

boolean isLast()是否是最后一条记录

boolean moveToFirst()、 boolean moveToLast()、 boolean moveToNext()同moveToPosition(position)

4、SimpleCursorAdapter(android.widget.SimpleCursorAdapter)

也许你会奇怪了,之前我还说过关于数据库的操作都在database和database.sqlite包下,为什么把一个Adapter放到这里,如果你用过Android的SQLite3,你一定会知道

,这是因为我们对数据库的操作会经常跟列表联系起来

经常有朋友会在这出错,但其实也很简单

SimpleCursorAdapter adapter = new SimpleCursorAdapter(

this,

R.layout.list,

myCursor,

new String[] {DB.TEXT1,DB. TEXT2},

new int[]{ R.id.list1,R.id.listText2 });

my.setAdapter(adapter);

一共5个参数,具体如下:

参数1:Content

参数2:布局

参数3:Cursor游标对象

参数4:显示的字段,传入String[]

参数5:显示字段使用的组件,传入int[],该数组中是TextView组件的id

到这里,关于数据库的操作就结束了,但是到目前为止我只做了翻译的工作,有些同学可能还是没有掌握,放心,下面我们一起顺着正常开发的思路理清一下头绪!

前面的只是帮没做过的朋友做下普及,下面才是你真正需要的!

一、写一个类继承SQLiteOpenHelpe

public class DatabaseHelper extends SQLiteOpenHelper

构造方法:

DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

在onCreate方法里写建表的操作

public void onCreate(SQLiteDatabase db) {

String sql = "CREATE TABLE tb_test (_id INTEGER DEFAULT '1' NOT NULL PRIMARY KEY AUTOINCREMENT,class_jb TEXT NOT NULL,class_ysbj TEXT NOT NULL,title TEXT NOT NULL,content_ysbj TEXT NOT NULL)";

db.execSQL(sql);//需要异常捕获

}

在onUpgrade方法里删除现有表,然后手动调用onCtreate创建表

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

String sql = "drop table "+tbname;

db.execSQL(sql);

onCreate(db);

}

对表增、删、查、改的方法,这里用的是SQLiteOpenHelper提供的方法,也可以用sql语句实现,都是一样的

关于获取可读/可写SQLiteDatabase,我不说大家也应该会想到,只有查找才会用到可读的SQLiteDatabase

/**

* 添加数据

*/

public long insert(String tname, int tage, String ttel){

SQLiteDatabase db= getWritableDatabase();//获取可写SQLiteDatabase对象

//ContentValues类似map,存入的是键值对

ContentValues contentValues = new ContentValues();

contentValues.put("tname", tname);

contentValues.put("tage", tage);

contentValues.put("ttel", ttel);

return db.insert(tbname, null, contentValues);

}

/**

* 删除记录

* @param _id

*/

public void delete(String _id){

SQLiteDatabase db= getWritableDatabase();

db.delete(tbname,

"_id=?",

new String[]{_id});

}

/**

* 更新记录的,跟插入的很像

*/

public void update(String _id,String tname, int tage, String ttel){

SQLiteDatabase db= getWritableDatabase();

ContentValues contentValues = new ContentValues();

contentValues.put("tname", tname);

contentValues.put("tage", tage);

contentValues.put("ttel", ttel);

db.update(tbname, contentValues,

"_id=?",

new String[]{_id});

}

/**

* 查询所有数据

* @return Cursor

*/

public Cursor select(){

SQLiteDatabase db = getReadableDatabase();

return db.query(

tbname,

new String[]{"_id","tname","tage","ttel","taddr"},

null,

null, null, null, "_id desc");

}

热心网友 时间:2022-04-08 20:56

把你的update方法贴出来

热心网友 时间:2022-04-08 22:31

明显编译有错误还没解决怎么跑得起来

热心网友 时间:2022-04-09 00:22

sql语句有问题,你的sql语句里面是不是没有问号?追问有点

追答能拍一下你的sql语句吗?清晰一点的

热心网友 时间:2022-04-09 02:30

你这个也看不清啊!
怎么才能实现增删改查,我刚学习java,老师让写一个项目

实现增删改查 有很多种方法 一种是基于内存的 一种是基于缓存的,还有一种是基于数据库的,还有一个是基于文件的 每一种增删改查方式都不一样 比如 基于内存 又分 用数组方式存贮,集合方式存贮 缓存 如redis存贮 数据库 分 结构数据库 那就是 常用的mysql、orcale sql sql server 还有非结...

用JD-eclipse反编译出现 throw new RuntimeException("Stub!")_百度...

so there’s no reason to make the SDK bigger because of this. To better undersand, if you look at these classes using a decompiler (with jad for example) you will only see: public void something(…)

在线商城设计文档-如何用c#语言+web+mysql编制一个购物商城

mysql>delimiter$$mysql>createproceduretest1()->begin->selectt2.`name`asp_name,,sum(_num)asnum->fromcarast1->=->;->end$$QueryOK,0rowsaffected(0.04sec... 继续访问 最新发布基于javaweb+mysql的简单购物车 基于javaweb+mysql的简单购物车运行环境Java≥8、MySQL≥5.7、Tomcat≥8开发工具eclipse/idea/...

小白自学JAVA怎么入门?

建议一:有系统的学习方案,系统的学习教程,先把Java学了一遍之后才是真正的入门,然后就是不断的练习,不断的巩固,为之后的工作打下坚实的基础。建议二:学习Java不要先看书学,一定要先把一块的知识点学完一遍,并且自己多多少少会动手操作,然后去看书温习。还有不要盲目的看视频,很多人都是光看...

java工程师工资真的高吗

最重要连项目都没有。后来我找到一份很好的视频,是IT学习联盟这个网站一套视频叫<<零基础Java就业班>>(喜欢《零基础Java就业班》的可以复制 t.cn/8sx5z6L 粘贴浏览器地址栏按回车键即打开)的教程还不错,很完整。还赠送11个顶级企业项目。价格很合理,于是我买下来。于是开始了我的自学Java的路...

应该怎样学习JAVA?顺序是什么?

第一部分:JavaSE:Java语言最基本的一套库 学习JavaEE或JavaME之前,JavaSE是必学的。Java开发环境搭建 Java基础语法 面向对象 数组 异常 集合 线程 IO流 反射机制 注解Annotation 网络编程 第二部分:数据库 【MySQL + JDBC】只要学习编程,数据库是一定要学习的,是一门公共的学科。java、C、python...

如何打好Java的基础?

就“学生管理系统”来说,在前端上,只要实现一个包含table、textbox、button,能发送REST请求到server,能实现学生的“增删改查”的简单页面即可。作为一个练手项目,目标就是把Java的主要技能点串起来,所以自不求尽善尽美(也不可能),所以1个月时间足够了。.最后 按照上面的过程,4个月的时间刚刚...

实现一个类的增删改成 javaeclipse怎么用 多表怎么实现增删改 spring增删改 用eclipse eclipse怎么使用 java eclipse elk增删改 php增删改
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...版,我需要这百度网盘资源,可我找不到,希望分享一下! 哪位大佬有 5G:关键技术与系统演进,我需要这百度网盘资源,我找不... 求几本末世类的小说,最好是丧尸类。种马后宫就不要了。文笔要好一些,剧 ... 求好的末世小说 不要YY,不要花痴、不要后宫、不要穿越。类似黑暗血时... 桂林四绝的是哪四个 桂林风景中独特的秀山清水 人称四绝 桂林的四绝具体包括哪些自然景观? 可以加什么旁 萌爸日记宇文玛瑙为什么经常穿丝袜 萌爸日记上的玛瑙那个女孩叫什么名字 中考投档审核,是一个城市一分一档的和所在城市的名额选,还是整个地区一起审核_百度问一问 - 信息提示 邯郸四中2019年中考分数线是多少 邯郸市一中分配生怎样填志愿 大衣后面腰带的系法 邯郸2021年中考录取分数是多少 416分在邯郸能上哪所高中 2020年河北省邯郸市中考裸分卷面分最高是多少? 2017年河北省邯郸市中考满分是多少? 08年河北省邯郸市中考成绩排名在哪里查啊?566分(算体育分的)能排多少名啊?能上一中吗?谢谢 邯郸市三中和四中中考分数线一样吗 邯郸中考多少科目,一共多少分 邯郸中考的总分是多少分 2021年邯郸主城区中考成绩428占多少名 上初中大概背多大的书包? 尺寸为38×25×12的书包有多大? 订制书包的尺寸大小如何选择? 高中生书包正常尺寸应该是多少 多少度适合灌香肠 16寸书包多大 马扎出现在2000年前,为何说它的出现改变了中国人整体坐姿? 聪明的一休是哪一年在中国发行的 聪明的一休有几个版本 百变魔术卡小樱和神龙斗士(魔神英雄传)的国语版是哪个机构或公司配音的? 聪明的一休里何老板的蛋糕店叫什么 {急求}《聪明的一休》李韫慧配音版下载 高悬赏 qq三国45FB怎么走 求QQ三国45FB走法 QQ三国45副本走法 qq三国45副本地图怎么走? qq三国45副本怎么走(最好有坐标)? QQ三国45副本的图,要怎么走,那些图上有BOSS? QQ三国45级副本怎样走?45级以后又有哪些任务?在什么地方接? QQ三国45FB八阵图怎么走?我都55J啦、这任务还没过、那里面路太多老迷路? QQ三国45副本怎么走到杜门 QQ三国 45FB怎么跑 QQ三国里怎么样走45FB? QQ三国 45FB 路线图 要附带图的 QQ三国45FB地图怎么走啊? QQ三国45副本的杜门怎么走进去 QQ三国45FB从哪进