我的云图库
以下的基于安卓客户端和linux服务端,服务端将数据转化成json数据,在安卓端进行接受以及转化成我们需要的数据的类型。
前提
1.一台装有tomcat(配置好远程部署)的服务器(本机也可以,访问的地址要改成 10.0.2.2,绝对不能是127.0.0.1或者localhost,如果处在局域网内要根据实际情况调整)。
2.需要的jar包:谷歌公司提供的Gson.jar包,以及web服务端所会用到的common-io和common-fileupload架包。这不提供链接,自己去maven官网上面下载。
3.会基础的Java和web知识。。。
正文
一,首先构建服务端的代码,将客户端要访问的数据转化为json数据类型。
1.首先构造两个类,class类和image类
class类:
package android.Bean;
public class ClassBean {
private int ID;
private String ClassName;
public int getID() {
return ID;
}
public String getClassName() {
return ClassName;
}
public void setID(int ID) {
this.ID = ID;
}
public void setClassName(String className) {
ClassName = className;
}
}
imagebean的类:byte数组是用来存放图片的二进制数据,在客户端进行转化
package android.Bean;
public class ImageBean {
private int id;
private String Imagename;
private int classid;
private String filepath;
private byte[] data;
public byte[] getData() {
return data;
}
public void setData(byte[] data) {
this.data = data;
}
public void setId(int id) {
this.id = id;
}
public void setImagename(String imagename) {
Imagename = imagename;
}
public void setClassid(int classid) {
this.classid = classid;
}
public void setFilepath(String filepath) {
this.filepath = filepath;
}
public int getId() {
return id;
}
public String getImagename() {
return Imagename;
}
public int getClassid() {
return classid;
}
public String getFilepath() {
return filepath;
}
}
2,与数据库的交互的操作,数据库的连接的代码不予展示(Java基本功)
package servlet;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import android.Bean.ClassBean;
import android.Bean.ImageBean;
import utils.jdbcutils;
public class ClassDao {
public static List<ClassBean> getBigShopList() {
String sql = "Select * From classinfo order by id asc";
QueryRunner runner = new QueryRunner();
Connection conn = null;
List<ClassBean> userList = null;
try {
conn = jdbcutils.getConn();
userList = runner.query(conn, sql, new BeanListHandler<ClassBean>(ClassBean.class));
} catch (Exception e) {
e.printStackTrace();
} finally {
jdbcutils.tryClose(null, conn);
}
return userList;
}
public static Boolean AddClass(String classname) {
Statement stmt = null;
Connection conn = null;
int row = 0;
String sql = "insert into classinfo(classname) values(?)";
try {
conn = jdbcutils.getConn();
stmt = conn.createStatement();
PreparedStatement ps = conn.prepareStatement(sql);
// 对SQL语句中的第1个参数赋值 g
ps.setString(1, classname);
row = ps.executeUpdate();
ps.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
jdbcutils.tryClose(stmt, conn);
}
if (row > 0) {
return true;
} else {
return false;
}
}
public static List<ImageBean> getImage(String classid) {
String sql = "Select * From image where classid="+classid;
System.out.println(sql);
QueryRunner runner = new QueryRunner();
Connection conn = null;
List<ImageBean> userList = null;
try {
conn = jdbcutils.getConn();
userList = runner.query(conn, sql, new BeanListHandler<ImageBean>(ImageBean.class));
} catch (Exception e) {
e.printStackTrace();
} finally {
jdbcutils.tryClose(null, conn);
}
return userList;
}
public static ClassBean getCLass(String classid) {
String sql = "Select * From classinfo where id=" + classid;
QueryRunner runner = new QueryRunner();
Connection conn = null;
List<ClassBean> userList = null;
try {
conn = jdbcutils.getConn();
userList = runner.query(conn, sql, new BeanListHandler<ClassBean>(ClassBean.class));
} catch (Exception e) {
e.printStackTrace();
} finally {
jdbcutils.tryClose(null, conn);
}
ClassBean bean = null;
for (ClassBean item : userList) {
bean = item;
}
return bean;
}
public static void SaveWork(Map<String, String> dataMap) {
// TODO Auto-generated method stub
Connection conn = null;
PreparedStatement pstmt = null;
String classid = String.valueOf(dataMap.get("classid"));
String filename = String.valueOf(dataMap.get("filename"));
String filepath = String.valueOf(dataMap.get("filepath"));
StringBuffer insertSQL = new StringBuffer();
insertSQL.append("Insert Into image(");
insertSQL.append("classid,filepath,imagename");
insertSQL.append(") values(");
insertSQL.append("?,?,? ");
insertSQL.append(")");
try {
conn = jdbcutils.getConn();
pstmt = conn.prepareStatement(insertSQL.toString());
// 为SQL语句?进行赋值的操作。
pstmt.setString(1, classid);
pstmt.setString(2, filepath);
pstmt.setString(3, filename);
// 执行SQL语句。
pstmt.executeUpdate(