近期在学习注册与记录方面的应用,主要功能是:在手机端进行信息注册,注册完成后自动把信息写入到服务器端数据库中。
本方案实现手机连接PC端MySql数据库的基本思路是:手机和PC端建立TCP连接,通过TCP连接实现对数据库操作命令(比如增删改查)的 传递,并将操作结果反馈给手机端。
手机端代码:
SignActivity.java
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SignActivity extends Activity {
private Button sign;
private EditText name;
private EditText number;
private EditText rfid;
private final String IP="202.118.16.129";
private final int PORT=6363;
Socket socket=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
sign.setOnClickListener(new MyClickListener());
}
private void initView(){
sign=(Button) findViewById(R.id.sign_bt);
name=(EditText) findViewById(R.id.name_et);
number=(EditText) findViewById(R.id.telephone_et);
rfid=(EditText) findViewById(R.id.rfid_et);
rfid.setText(getIntent().getStringExtra("rfid"));
}
/**
* 监听注册事件
* @author
*
*/
class MyClickListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.sign_bt:
if(isInputRight()){
new SubmitThread().start();
}
break;
}
}
/**
* 判断输入是否合法。
* @return
*/
private boolean isInputRight(){
String tempName=name.getText().toString().trim();
String tempNumber=number.getText().toString().trim();
if(tempName.isEmpty()||tempNumber.isEmpty()){
Toast.makeText(SignActivity.this, "用户名和手机号不能为空!", Toast.LENGTH_SHORT).show();
return false;
}
if(tempNumber.length()!=11) {
Toast.makeText(SignActivity.this, "您输入的手机号有误,请仔细检查!", Toast.LENGTH_SHORT).show();
return false;
}
return true;
}
}
/**
* TCP socket通讯线程
* @author
*
*/
class SubmitThread extends Thread{
@Override
public void run() {
try{
socket=new Socket(IP,PORT);
BufferedWriter writeMSG=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(),"UTF-8"));
Strin