Android 实现连接MySQL数据库并进行增删改查操作

1.Android端 连接MySQL数据库的实现代码

public class DBOpenHelper {

private static String driver = "com.mysql.jdbc.Driver";//MySQL 驱动
private static String url = "jdbc:mysql://IP:3306/数据库";//MYSQL数据库连接Url
private static String user = "root";//用户名
private static String password = "123456";//密码

/** * 连接数据库 * */

public static Connection getConn(){
    Connection conn = null;
    try {
        Class.forName(driver);//获取MYSQL驱动
        conn = (Connection) DriverManager.getConnection(url, user, password);//获取连接
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;
}

/**
 * 关闭数据库
 * */

public static void closeAll(Connection conn, PreparedStatement ps){
    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (ps != null) {
        try {
            ps.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

}

/**
 * 关闭数据库
 * */

public static void closeAll(Connection conn, PreparedStatement ps, ResultSet rs){
    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (ps != null) {
        try {
            ps.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

}

2.增删改查实现代码

public class DBService {

private Connection conn=null; //打开数据库对象
private PreparedStatement ps=null;//操作整合sql语句的对象
private ResultSet rs=null;//查询结果的集合

//DBService 对象
public static DBService dbService=null;

/**
 * 构造方法 私有化
 * */

private DBService(){

}

/**
 * 获取MySQL数据库单例类对象
 * */

public static DBService getDbService(){
    if(dbService==null){
        dbService=new DBService();
    }
    return dbService;
}


/**
 * 获取要发送短信的患者信息    查
 * */

//查询语句操作实现代码 //## (select)

public List getUserData(){
    //结果存放集合
    List list=new ArrayList();
    //MySQL 语句
    String sql="select * from user";
    //获取链接数据库对象
    conn= DBOpenHelper.getConn();
    try {
        if(conn!=null&&(!conn.isClosed())){
            ps= (PreparedStatement) conn.prepareStatement(sql);
            if(ps!=null){
                rs= ps.executeQuery();
                if(rs!=null){
                    while(rs.next()){
                        User u=new User();
                        u.setId(rs.getString("id"));
                        u.setName(rs.getString("name"));
                        u.setPhone(rs.getString("phone"));
                        u.setContent(rs.getString("content"));
                        u.setState(rs.getString("state"));
                        list.add(u);
                    }
                }
            }
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    DBOpenHelper.closeAll(conn,ps,rs);//关闭相关操作
    return list;
}

/**
 * 修改数据库中某个对象的状态   改
 * */

/ /修改操作实现语句(update)

public int updateUserData(String phone){
    int result=-1;
    if(!StringUtils.isEmpty(phone)){
        //获取链接数据库对象
        conn= DBOpenHelper.getConn();
        //MySQL 语句
        String sql="update user set state=? where phone=?";
        try {
            boolean closed=conn.isClosed();
            if(conn!=null&&(!closed)){
                ps= (PreparedStatement) conn.prepareStatement(sql);
                ps.setString(1,"1");//第一个参数state 一定要和上面SQL语句字段顺序一致
                ps.setString(2,phone);//第二个参数 phone 一定要和上面SQL语句字段顺序一致
                result=ps.executeUpdate();//返回1 执行成功
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    DBOpenHelper.closeAll(conn,ps);//关闭相关操作
    return result;
}

/**
 * 批量向数据库插入数据   增
 * */

//增加功能操作实现代码(add)

public int insertUserData(List list){
    int result=-1;
    if((list!=null)&&(list.size()>0)){
        //获取链接数据库对象
        conn= DBOpenHelper.getConn();
        //MySQL 语句
        String sql="INSERT INTO user (name,phone,content,state) VALUES (?,?,?,?)";
        try {
            boolean closed=conn.isClosed();
            if((conn!=null)&&(!closed)){
                for(User user:list){
                    ps= (PreparedStatement) conn.prepareStatement(sql);
                    String name=user.getName();
                    String phone=user.getPhone();
                    String content=user.getContent();
                    String state=user.getState();
                    ps.setString(1,name);//第一个参数 name 规则同上
                    ps.setString(2,phone);//第二个参数 phone 规则同上
                    ps.setString(3,content);//第三个参数 content 规则同上
                    ps.setString(4,state);//第四个参数 state 规则同上
                    result=ps.executeUpdate();//返回1 执行成功
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    DBOpenHelper.closeAll(conn,ps);//关闭相关操作
    return result;
}


/**
 * 删除数据  删
 * */

//删除操作实现代码(delete)

public int delUserData(String phone){
    int result=-1;
    if((!StringUtils.isEmpty(phone))&&(PhoneNumberUtils.isMobileNumber(phone))){
        //获取链接数据库对象
        conn= DBOpenHelper.getConn();
        //MySQL 语句
        String sql="delete from user where phone=?";
        try {
            boolean closed=conn.isClosed();
            if((conn!=null)&&(!closed)){
                ps= (PreparedStatement) conn.prepareStatement(sql);
                ps.setString(1, phone);
                result=ps.executeUpdate();//返回1 执行成功
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    DBOpenHelper.closeAll(conn,ps);//关闭相关操作
    return result;
}

}

你可能感兴趣的:(android,android,mysql)