当前位置: 首页 > news >正文

做内网网站网站界面设计如何实现功能美与形式美的统一

做内网网站,网站界面设计如何实现功能美与形式美的统一,扬州哪里做网站,六安网站怎么做seo一般使用到数据库存储#xff0c;涉及到的数据量都较大#xff0c;采用文件存储也能完成#xff0c;但是文件操作复杂#xff0c;效率低#xff0c;大量结构化数据通常采用关系型数据库存储较为合适。Android中已经嵌入了轻量级的关系型数据库SQLite#xff0c;直接按照数…  一般使用到数据库存储涉及到的数据量都较大采用文件存储也能完成但是文件操作复杂效率低大量结构化数据通常采用关系型数据库存储较为合适。Android中已经嵌入了轻量级的关系型数据库SQLite直接按照数据库操作实现增删改查即可。如果你想要完成一个简单增删改查作品可以使用UI设计页面跳转对话框数据库技术架构。 数据库操作一般分为两个步骤创建数据库接下来写SQL语句执行并查看结果常见操作为增删改查。 第1步配置权限主要是因为API版本可能不同配置一下权限较好高版本都无需配置我测试使用的是API34所以我没有配置 uses-permission android:nameandroid.permission.WRITE_EXTERNAL_STORAGE/ 第2步设计布局 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticaltools:context.MainActivityLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text用户名 /EditTextandroid:idid/usernameandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hint请输入用户名 //LinearLayoutLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:orientationhorizontalTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:text密 码 /EditTextandroid:idid/pwdandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:hint请输入密码 //LinearLayoutButtonandroid:idid/addandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text增加 /Buttonandroid:idid/deleteandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text删除 /Buttonandroid:idid/updateandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text修改 /Buttonandroid:idid/queryandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:text查询 //LinearLayout 设计图效果 增加操作输入用户名和密码点击增加往数据库中添加一条数据。 删除操作根据用户输入的用户名删除一条数据。注当然如果不存在删除肯定会失败这些处理我就没有关注了案例主要想表达的是能删除如果需要做的精致或者实际开发中用到请务必考虑周全 修改操作根据用户输入的用户名来更新密码所以此时输入的密码相当于是覆盖旧值。 查询操作将表中的数据全部查出并显示即可实际开发中结合ListViewArrayAdapter效果更佳 第3步请求权限并获得授权后创建数据库。如果你没有配置权限则这一步都可以跳过了 具体操作在onCreate回调方法中动态请求权限授权成功后创建数据库 if (Build.VERSION.SDK_INT Build.VERSION_CODES.M) {requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);File file new File(data/data/com.yibinu.sqlitedemo/testdb.db3);Log.i(目录, onCreate: file);if (file.exists() !file.isDirectory()) {sqLiteDatabase SQLiteDatabase.openOrCreateDatabase(file, null);String sql create table testdb(username varchar(10),pwd varchar(6));sqLiteDatabase.execSQL(sql);} else {Log.i(, onCreate: 文件不存在);}} 如果你在测试时创建失败还可以去指定目录位置手动创建文件testdb.db3 由于我的测试版本较高就没有去写授权直接使用 第4步逻辑文件 package com.yibinu.sqlitedemo;import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity;import android.Manifest; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast;import java.io.File;public class MainActivity extends AppCompatActivity implements View.OnClickListener {Button add;Button delete;Button update;Button query;EditText username;EditText pwd;SQLiteDatabase sqLiteDatabase null;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);add findViewById(R.id.add);delete findViewById(R.id.delete);update findViewById(R.id.update);query findViewById(R.id.query);username findViewById(R.id.username);pwd findViewById(R.id.pwd);delete.setOnClickListener(this);add.setOnClickListener(this);update.setOnClickListener(this);query.setOnClickListener(this);File file new File(data/data/com.yibinu.sqlitedemo/testdb.db3);Log.i(目录, onCreate: file);if (file.exists() !file.isDirectory()) {sqLiteDatabase SQLiteDatabase.openOrCreateDatabase(file, null);String sql create table testdb(username varchar(10),pwd varchar(6));sqLiteDatabase.execSQL(sql);} else {Log.i(, onCreate: 文件不存在);}}Overridepublic void onClick(View v) {int id v.getId();if (id R.id.add) {String userName username.getText().toString().trim();String pWD pwd.getText().toString().trim();String addSql insert into testdb(username,pwd) values(?,?);;sqLiteDatabase.execSQL(addSql, new String[]{userName, pWD});Toast.makeText(this, 插入数据成功, Toast.LENGTH_SHORT).show();} else if (id R.id.delete) {String delUserName username.getText().toString().trim();String deleteSql delete from testdb where username?;sqLiteDatabase.execSQL(deleteSql, new String[]{delUserName});Toast.makeText(this, 删除数据成功, Toast.LENGTH_SHORT).show();} else if (id R.id.update) {String newUserName username.getText().toString().trim();String pWDD pwd.getText().toString().trim();String updateSql update testdb set pwd? where username ?;sqLiteDatabase.execSQL(updateSql, new String[]{pWDD, newUserName});Toast.makeText(this, 更新数据成功, Toast.LENGTH_SHORT).show();} else if (id R.id.query) {String queryDateSql select * from testdb;Cursor cursor sqLiteDatabase.rawQuery(queryDateSql, null);while (cursor.moveToNext()) {String myname cursor.getString(0);String mypwd cursor.getString(1);Log.i(【查询结果】, 姓名: myname 密码 mypwd);}Toast.makeText(this, 查询成功请查看日志, Toast.LENGTH_SHORT).show();}} }效果 运行成功后出现主界面 接下来看动态演示 SQLite效果 核心技术 SQLiteDatabase类通过该类对象可以执行SQL语句具体操作通过openOrCreateDatabase方法创建一个数据库对象需要两个参数 public static SQLiteDatabase openOrCreateDatabase(NonNull File file,Nullable CursorFactory factory) 数据库名游标工厂 当然一般方法和构造方法都可以重载所以如果你看到有多个参数也可以查看一下原型就可以直接使用了。 接下来就通过数据库对象执行SQL语句核心方法是 public void execSQL(String sql, Object[] bindArgs) SQL语句参数 看个添加一行数据的案例 String userName username.getText().toString().trim(); String pWD pwd.getText().toString().trim(); String addSql insert into testdb(username,pwd) values(?,?);; sqLiteDatabase.execSQL(addSql, new String[]{userName, pWD}); 前两行获取用户输入的用户名和密码第3行构造一个SQL语句如果有参数就使用占位置第4行执行SQL语句由于有参数所以要把真实的数据去替换所占据的位置。如果没有参数就写为null执行结束后数据库中就已经添加上该条数据了。 修改和删除是一样的道理查询要复杂一点它的复杂在于数据库的主要功能就是查询查询结果通常是多行数据就需要使用到游标如果你会Oracle数据库操作游标就非常简单了 查询可以是带参的也可以是不带参数的 String queryDateSql select * from testdb;Cursor cursor sqLiteDatabase.rawQuery(queryDateSql, null);while (cursor.moveToNext()) {String myname cursor.getString(0);String mypwd cursor.getString(1);Log.i(【查询结果】, 姓名: myname 密码 mypwd);} 游标可以简单理解为指向这个结果集第一次移动则来到第一行再移动一次就来到第二行 所以只要移动后数据不为空则表示移动后的位置是有一条数据的就可以获取到对应的值 移动主要依靠moveToNext方法读取对应的值则使用getXXX方法
http://www.pierceye.com/news/846370/

相关文章:

  • 网站开发运维网页制作设计多少费用
  • 网站开发技术协议上海百度推广
  • 粤icp备网站建设 中企动力广州网站开发是什
  • 佛山+网站建设开发系统 平台
  • 运输房产网站建设健康南充app
  • 营销型网站推广公司最好的app开发公司
  • 做网站硬件江西省城乡建设陪训网官方网站
  • 深圳做小程序网站开发短视频剪辑在哪里学
  • 集约化网站建设广州网站制作
  • 如何做网站链接wordpress 视
  • 北京专业建设网站公司做网站那几步
  • 网站版式布局宁波百度推广优化
  • 邵阳专业网站设计网站建设打造营销型网站
  • 网站内部链接的策略成都装修公司网站建设
  • 网页制作与网站建设答案联合易网北京网站建设公司怎么样
  • 虚拟主机安装网站wordpress xss
  • 营销网站的优点网上服务大厅用户登录
  • 阿里云网站建设服务费会计科目网站域名改了帝国cms
  • 塑业东莞网站建设网站建设的课件
  • 制作网页网站教程网站开发一般用
  • 网站换空间 sitewordpress 下载功能
  • 国外优秀的字体设计网站西安地产网站制作公司
  • 微网站和普通网站区别租腾讯服务器做网站行吗
  • 西安网站品牌建设福州建设发展集团网站
  • 网站源码怎么有wordpress内嵌播放器
  • 南宁网站快速排名提升一起来做网站17
  • 网站做数据分析什么软件是做网站的
  • 邯郸移动网站建设建设网站的报价
  • 做网站优化期间能收到网站吗科技创新与应用
  • 有没有做的很炫的科技型网站wordpress企业主题二次开发下载