Android开发中怎样调用mysql数据库中的数据

Android开发中怎样调用mysql数据库中的数据,数据库可以是本地也可以是联网的。

5个回答

Android本地是不能直接调用MySQL的,因为很简单,你的Android手机上面不可能安装MySQL服务的。你只能借助于网络通信,
让手机和电脑通过网络连接起来,这样你想在Android端访问MySQL数据库时,就可以通过一定的方式发送一些网络消息请求,
让电脑端去查询数据库,再通过网络把数据返回给Android端。当然,最简单的网络方式就是使用http协议,在电脑端用servlet去接收请求并处理。

发一个请求通过servlet。,,或者其他的

android 应用中通过http请求服务器,服务器上的web应用连接数据库获取数据,将数据返回给apk

qq_32885471
qq_32885471 服务器端怎么写呢,问题在于无不会写服务器端的webservice接口啊
大约 4 年之前 回复

不一定是webservice,普通的http server 就可以,比如java ,php, c# ==都可以。

qq_32885471
qq_32885471 那怎么实现呢,我是新手,不知道该怎么写
大约 4 年之前 回复

客户端的话可以找支付宝或者微信之类的公开的sdk看看他们客户端怎么写的。服务端的话,可真是一句话说不清楚啊,会android的话,
应该会java,可以用struts,spring 之类的框架,也可以自己写servlet,用个tomcat之类的做个测试的web工程。

qq_32885471
qq_32885471 我是新手,实在是不知道从哪块开始啊!
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
android开发 服务器端访问MySQL数据库,怎么把客户端发送过来的数据写入数据库?

android开发 服务器端访问MySQL数据库,怎么把客户端发送过来的数据写入数据库? 客户端应该怎么写通过什么传递数据,服务端通过什么接收数据,新手一枚,请各位大神指点一下,或者推荐一些博客。谢谢!

android如何连接服务器的MySQL数据库?

想要做一个android的登录注册功能,不想要使用android自己带有的数据库,想要使用外部的MySQL,没有做过,网络上也没有比较满意的答案,希望可以得到比较详细的解答

Android直接连接mysql,并将数据用listview显示出来,代码一直有问题,求大神解决

这是代码 package com.example.wcms; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.GridView; import android.widget.ListView; import android.widget.SimpleAdapter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; //import com.example.girdviewtext.R; public class MainActivity extends Activity { private Connection con; private Statement stat; private ResultSet rs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn=(Button)findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener(){ @Override public void onClick(View arg0) { sqlCon(); sqlList(); } private void sqlList() { // TODO 自动生成的方法存根 ListView lv=(ListView)findViewById(R.id.lsit); List<Map<String,Object>> listItems= new ArrayList<Map<String,Object>>(); try { while(rs.next()) { //System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3)); Map<String,Object> listItem=new HashMap<String,Object>(); listItem.put("mac",rs.getString(1)); listItem.put("pcname", rs.getString(2)); listItem.put("username", rs.getString(3)); listItems.add(listItem); } rs.close(); stat.close(); con.close(); } catch (SQLException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } SimpleAdapter simpleAdapter=new SimpleAdapter(MainActivity.this,listItems, R.layout.list_item, new String[] {"mac","pcname","username"}, new int[]{R.id.mac,R.id.pcname,R.id.username}); lv.setAdapter(simpleAdapter); } private void sqlCon() { // TODO 自动生成的方法存根 try{ //加载驱动程序 Class.forName("com.mysql.jdbc.Driver").newInstance(); }catch (Exception ex){ //无法加载驱动,则给出错误信息 System.out.println("无法加载驱动程序" + ex.getMessage()); return; } String url="jdbc:mysql://120.24.59.103:3306/xhw"; String user="root"; String password="huwei1221"; //建立数据库连接,获得连接对象con try { con = DriverManager.getConnection(url, user, password); //建立Statement对象,即是像数据库发送SQL语句的对象 stat=con.createStatement(); //建立 结果集,暂时存放执行SQL语句后产生的结果集合 rs=stat.executeQuery("select * from PCInfo"); } catch (SQLException e1) { // TODO 自动生成的 catch 块 e1.printStackTrace(); } } }); } } 这是activity.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:text="连接数据库" /> <LinearLayout android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="20dp" android:orientation="horizontal" android:layout_below="@+id/button1"> <TextView android:id="@+id/MAC" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Mac" /> <TextView android:id="@+id/PCname" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="PCname" /> <TextView android:id="@+id/UserName" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Username"/> </LinearLayout> <ListView android:id="@+id/lsit" android:layout_below="@+id/ll" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </RelativeLayout> 这是list_item.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_centerHorizontal="true" android:text="连接数据库" /> <LinearLayout android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="20dp" android:orientation="horizontal" android:layout_below="@+id/button1"> <TextView android:id="@+id/MAC" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Mac" /> <TextView android:id="@+id/PCname" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="PCname" /> <TextView android:id="@+id/UserName" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:text="Username"/> </LinearLayout> <ListView android:id="@+id/lsit" android:layout_below="@+id/ll" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </RelativeLayout> 1. 求解答

我有一个mysql数据库查询,在android中我想访问表列的值

<div class="post-text" itemprop="text"> <pre><code>//get customer $query=$this-&gt;db-&gt;query("SELECT `c`.`customer_id`,`a`.`firstname`,`a`.`lastname`,`a`.`address_1`,`a`.`address_2`,`a`.`postcode` AS `pincode`,`c`.`telephone`,`c`.`email`,`c`.`fax` FROM `oc_address` AS `a` INNER JOIN `oc_customer` AS `c` ON `c`.`address_id` = `a`.`address_id` WHERE `c`.`customer_id`=".$this-&gt;request-&gt;post['customer_id']); $cust=$query-&gt;row; //get pincode for delivery from session $query=$this-&gt;db-&gt;query("select pincode from `oc_chat_session` where `cust_id` =".$cust['customer_id']." and `session_id` = ".$this-&gt;request-&gt;post['session']); $sess=$query-&gt;row; //save order $this-&gt;db-&gt;query("INSERT INTO `oc_chat_order` (`session_id`, `vendor_id`, `cust_id`, `cust_name`, `cust_address`, `cust_pincode`, `cust_mob`, `cust_email`, `createdon`) VALUES (".$this-&gt;request-&gt;post['session'].",".$this-&gt;request-&gt;post['vendor_id'].",".$this-&gt;request-&gt;post['customer_id'].",'".$cust['firstname']." ".$cust['lastname']."','".$cust['address_1']." ".$cust['address_2']."','".$sess['pincode']."','".$cust['telephone']."','".$cust['email']."',NOW())"); $query=$this-&gt;db-&gt;query("SELECT @@IDENTITY as `order_id`"); </code></pre> <p>whenever I am trying to access the fax field and email field in the android app I am getting a null value</p> <pre><code> messageList = new ArrayList&lt;HashMap&lt;String, String&gt;&gt;(); app=((MyApplication) getApplicationContext()); Bundle extras = getIntent().getExtras(); if(extras != null) { order_id = extras.getString("order_id"); orderdate = extras.getString("orderdate"); cust_name = extras.getString("cust_name"); cust_address = extras.getString("cust_address"); cust_pincode = extras.getString("cust_pincode"); cust_mobile=extras.getString("cust_mobile"); cust_email=extras.getString("cust_email"); action=extras.getString("action"); //setaccepted, setdelivered } bt = (Button) findViewById(R.id.btnAction); switch (action) { case "setdelivered":{ bt.setText("Delivered"); break; } case "setaccepted":{ bt.setText("Accept"); break; } default: } try { String dpart = orderdate.substring(0, 10); String tpart = orderdate.substring(11, 19); orderdate = dpart.substring(8,10); orderdate+="/"+dpart.substring(5,7); orderdate+="/"+dpart.substring(0,4); orderdate+=" "+tpart; } catch (Exception e) { Log.d(getString(R.string.app_name), e.getMessage()); } HashMap&lt;String, String&gt; row = new HashMap&lt;String, String&gt;(); row.put("type", "text"); row.put("details", "Order ID:"+order_id); messageList.add(row); HashMap&lt;String, String&gt; rowd = new HashMap&lt;String, String&gt;(); rowd.put("type", "text"); rowd.put("details", "Order Date:"+orderdate); messageList.add(rowd); HashMap&lt;String, String&gt; row1 = new HashMap&lt;String, String&gt;(); row1.put("type", "text"); row1.put("details",cust_name); messageList.add(row1); HashMap&lt;String, String&gt; row2 = new HashMap&lt;String, String&gt;(); row2.put("type", "text"); row2.put("details",cust_address); messageList.add(row2); HashMap&lt;String, String&gt; row3 = new HashMap&lt;String, String&gt;(); row3.put("type", "text"); row3.put("details","Pin:"+cust_pincode); messageList.add(row3); HashMap&lt;String, String&gt; row4 = new HashMap&lt;String, String&gt;(); row4.put("type", "text"); row4.put("details","Mob:"+cust_mobile); messageList.add(row4); HashMap&lt;String, String&gt; row5 = new HashMap&lt;String, String&gt;(); row5.put("type", "text"); row5.put("details","mail:"+cust_email); messageList.add(row5); oa=new OrderDetailsAdapter(mychatorderdetails.this,messageList); lv = (ListView) findViewById(R.id.lstOrderDetails); lv.setAdapter(oa) </code></pre> <p>above is my android studio code. All other field i am able to fetch. Only mail and fax field i am unable to fetch. What might be the reason. please help me. First time i am fetching data from mysql to android studio </p> </div>

Android Studio 在应用中获取数据库中表的名称

就是我已经建好数据库了,想把数据库中的表的名称和数量显示在页面上,要怎样才能在应用程序中获取表的名称呢?求各位大佬帮忙

java安卓开发中数据库怎么进行使用

JAVA安卓开发中如何调用数据库,有实例吗? 还有实现存储以及其他基本功能,本人初学者,求教

android中什么时候使用简单存储,什么时候使用数据库存储?

android中什么时候使用简单存储,什么时候使用数据库存储?能不能给出详细解答,谢谢。

如何将android studio中的数据库放在阿里云服务器

我能在本地查询android studio开发的app的数据库.bd文件 但是这个只能在本地访问 换一台电脑数据库内容就不一样了 我想实现所有app使用者共享同一个数据库 是不是应该放在服务器上呢 大致步骤应该是什么呢

android 如何通过数据库显示图片

小弟刚开始学android,想实现以下功能却百思不得其解,说来很简单:我在R.drawable里面放了若干张图片,想把图片的名子存在数据库里面,然后,用的时候把图片的名子从数据库中调出来,再用ImageView(或者是其它的办法也可以)把图片全部显示出来……关键是教程里面图片的路径都是用R.drawable.图片名 来表示的,而这个值还是一个int,所以一涉及到数据库的时候,不知道怎么存也不知道怎么取……崩溃啦,还请各位有经验的大侠给指指路,小弟感激不尽啊 :cry:

Android远程访问pc端数据库

我想问下,除了WiFi局域网连接,现在Android手机是不是不能直接远程访问pc端数据库?

android应用如何获得服务器数据库的数据

最近在和同学做一个小应用,因为之前练习一直没有设计到网络,没有使用过服务器所以不知道该怎么做,大概就是有一些数据存在一个腾讯云服务器的mysql里,客户端需要获取数据库中一些数据,请问服务器只需要建好数据库就行了吗,如果这样客户端该怎么读到服务器mysql的指定数据,或者是服务器也需要做一些其他工作吗?

android 读取数据库 存放大量图片,如何做

最近做的一个项目 ,搜索图片及相关信息从数据库中,图片一共有有二百多兆。数据库是从外导入,还是本地创建。 图片的存放是以文件夹方式,数据库中存放路径,还是以二进制写入数据库中

如何从sqlite数据库中获取数据并显示在listview中?

在登录页面后,我想在listview中把Apple显示成A,Boy显示成B等等,直到F。但是在程序中当我完全登录后,只有登录表成功创建,主菜单还是没有创建。 我想在test database中创建主菜单,然后我想从主菜单表(mainmenu table)中获取数据再显示在listview中。 我使用了下面的代码: if(username.length()>0&&password.length()>0) { SQLiteAdapter db=new SQLiteAdapter(Main.this); db.openToWrite(); if(db.Login(username,password)) { System.out.println("goutham"); Intent intent=new Intent(getApplicationContext(),ExampleActivity.class); startActivity(intent); } SQLiteAdapter.java } public Cursor queueAll() { String[] columns = new String[] { KEY_ID, KEY_CONTENT }; Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null, null, null, null, null); return cursor; } private static class SQLiteHelper extends SQLiteOpenHelper { public SQLiteHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL(SCRIPT_CREATE_DATABASE); db.execSQL(DATABASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } } public long AddUser(String username, String password) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_USERNAME, username); initialValues.put(KEY_PASSWORD, password); return sqLiteDatabase.insert(DATABASE_TABLE, null, initialValues); } public boolean Login(String username, String password) { // TODO Auto-generated method stub Cursor mCursor = sqLiteDatabase.rawQuery("SELECT * FROM " + DATABASE_TABLE + " WHERE username=? AND password=?", new String[] { username, password }); if (mCursor != null) { if (mCursor.getCount() > 0) { return true; } } return false; } } ExampleActivity.java public class ExampleActivity extends Activity { private SQLiteAdapter mySQLiteAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView listContent = (ListView) findViewById(R.id.contentlist); /* * Create/Open a SQLite database and fill with dummy content and close * it */ mySQLiteAdapter = new SQLiteAdapter(this); mySQLiteAdapter.openToWrite(); // mySQLiteAdapter.deleteAll(); mySQLiteAdapter.insert("A for Apply"); mySQLiteAdapter.insert("B for Boy"); mySQLiteAdapter.insert("C for Cat"); mySQLiteAdapter.insert("D for Dog"); mySQLiteAdapter.insert("E for Egg"); mySQLiteAdapter.insert("F for Fish"); mySQLiteAdapter.close(); /* * Open the same SQLite database and read all it's content. */ mySQLiteAdapter = new SQLiteAdapter(this); mySQLiteAdapter.openToRead(); Cursor cursor = mySQLiteAdapter.queueAll(); startManagingCursor(cursor); String[] from = new String[] { SQLiteAdapter.KEY_CONTENT }; int[] to = new int[] { R.id.text }; SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor, from, to); listContent.setAdapter(cursorAdapter); mySQLiteAdapter.close(); } } 运行程序后,登录表在数据库中创建了,但是主菜单表没有创建。运行程序后,显示一个错误: sqlite returned code=1 no such a table in MY_TABLE

请问在开发安卓app时怎样连接masql数据库 ,请详细说明写在哪个安卓工程结构文件中,谢谢

请问在开发安卓app时怎样连接masql数据库 ,请详细说明写在哪个安卓工程结构文件中,谢谢

Android 如何模糊查询数据库其中一列,并将对应结果显示在list中

已经建好一个数据库并且在data/data/packagename/下。 现在在学习绑定了按钮监听并且查询,但是模拟到按查询button时就程序自动退出 public void onClick(View v) { test = SQLiteDatabase.openOrCreateDatabase( "data/data/com.example.ediantong/test.db", null); String key = et.getText().toString(); String sql = "Select type from table22 where price="+"%"+key+"%"; Cursor c = test.rawQuery(sql,null); c.moveToFirst(); //SimpleCursorAdapter适配器 SimpleCursorAdapter test = new SimpleCursorAdapter(test.this, android.R.layout.simple_list_item_2, c, new String[] {"un", "an" }, new int[] { android.R.id.text1, android.R.id.text2 }); lv.setAdapter(test); } 我是照着网络上代码改的,数据库有android_matadata表,table22 也有_id 主键了。

您是怎么看待服务器端数据库和android应用本地sqlite数据库

一个线上的应用(比如说网易新闻)肯定是要跟服务器打交道的,但是当用户处于网络离线情况下,还能继续观看新闻(就是所谓的离线新闻),那么这些新闻数据肯定要保存在本地数据库(也有人说用json保存到文件里),那现在就有这样一个事情了.是不是有网就去服务器取数据,然后将取到的数据保存到本地的数据库(含数据更新),有些设置得更人性化的应用,还分是否2G/3G/wifi状态下读取服务器的数据. 服务器端数据库和本地数据库频繁的切换,是不是有点烦呢? 以上就是我的个人设想.如果您有更好的见解,请给我一条光明的道路指引吧.......

android多线程访问SQL数据库要怎么做?对SQL进行文件读写

求大神指点,最好有一个小demo。。。谢谢了!!对SQL进行文件读写

通过mysql获取数据用LISTVIEW表示,但是不点击文本框数据不会刷新出来搜索了以后也是这样,求助!!!!

这是布局![图片说明](https://img-ask.csdn.net/upload/201812/14/1544754857_474059.png) 以下是代码 ``` new Thread(new Runnable() { @Override public void run() { try { Class.forName("com.mysql.jdbc.Driver"); java.sql.Connection cn= DriverManager.getConnection("jdbc:mysql://cdb-bu2jncq1.gz.tencentcdb.com:10071/cangku1","root","xing1997"); String sql="select * from kehu"; Statement st=(Statement)cn.createStatement(); ResultSet rs=st.executeQuery(sql); while (rs.next()){ Map<String, Object> map = new HashMap<String, Object>(); map.put("kh_name", rs.getString("kh_name")); map.put("name", rs.getString("name")); map.put("kh_tel", rs.getString("kh_tel")); map.put("kh_add", rs.getString("kh_add")); listitem.add(map); } cn.close(); st.close(); rs.close(); }catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); Looper.prepare(); Toast.makeText(kh_lb.this, "连接数据库失败,网络异常!", Toast.LENGTH_LONG).show(); Looper.loop(); }catch (Exception e){ } } }).start(); //更新界面 //创建适配器 // 第一个参数是上下文对象 // 第二个是listitem // 第三个是指定每个列表项的布局文件 // 第四个是指定Map对象中定义的两个键(这里通过字符串数组来指定) // 第五个是用于指定在布局文件中定义的id(也是用数组来指定) SimpleAdapter adapter = new SimpleAdapter(kh_lb.this , listitem , R.layout.kh_lb_item , new String[]{"kh_name","name","kh_tel","kh_add"} , new int[]{R.id.kh_name, R.id.name,R.id.kh_tel,R.id.kh_add}); final ListView listView = findViewById(R.id.kh_list); listView.setAdapter(adapter); EditText sousuo=findViewById(R.id.sousuo); sousuo.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) {//EditorInfo.IME_ACTION_SEARCH、EditorInfo.IME_ACTION_SEND等分别对应EditText的imeOptions属性 //TODO回车键按下时要执行的操作 ListView listView = findViewById(R.id.kh_list); listitem.clear(); final EditText sousuo=findViewById(R.id.sousuo); new Thread(new Runnable() { @Override public void run() { try { Class.forName("com.mysql.jdbc.Driver"); java.sql.Connection cn= DriverManager.getConnection("jdbc:mysql://XXXXXX/cangku1","root","XXXXX"); String sql="select * from kehu where kh_name='"+sousuo.getText().toString()+"' or name='"+sousuo.getText().toString()+"'"; Statement st=(Statement)cn.createStatement(); ResultSet rs=st.executeQuery(sql); int i=0; while (rs.next()){ Map<String, Object> map = new HashMap<String, Object>(); map.put("kh_name", rs.getString("kh_name")); map.put("name", rs.getString("name")); map.put("kh_tel", rs.getString("kh_tel")); map.put("kh_add", rs.getString("kh_add")); i=1; listitem.add(map); } Looper.prepare(); Toast.makeText(kh_lb.this, "正在搜索,请稍后!", Toast.LENGTH_LONG).show(); if (i == 0){ Toast.makeText(kh_lb.this, "当前不存在相关信息,请重新搜索!", Toast.LENGTH_LONG).show(); } cn.close(); st.close(); rs.close(); Looper.loop(); }catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); Looper.prepare(); Toast.makeText(kh_lb.this, "连接数据库失败,网络异常!", Toast.LENGTH_LONG).show(); Looper.loop(); }catch (Exception e){ } } }).start(); //更新界面 //创建适配器 // 第一个参数是上下文对象 // 第二个是listitem // 第三个是指定每个列表项的布局文件 // 第四个是指定Map对象中定义的两个键(这里通过字符串数组来指定) // 第五个是用于指定在布局文件中定义的id(也是用数组来指定) SimpleAdapter adapter = new SimpleAdapter(kh_lb.this , listitem , R.layout.kh_lb_item , new String[]{"kh_name","name","kh_tel","kh_add"} , new int[]{R.id.kh_name, R.id.name,R.id.kh_tel,R.id.kh_add}); listView.setAdapter(adapter); } return false; } }); ``` 求大佬帮忙!!!

安卓如何访问本地数据库

在做一个项目能用安卓app查询本地的数据,类似于一个字典一样的东西,由于数据量较大,想在项目开发的时候就把数据库写好,客户端只查询就行,然后在app打包的时候把数据库一起打包进去,求大神帮忙写一个demo,邮箱wukai123123123@126.com

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐