jdbc java远程连接mysql数据库服务器

首先,需要注意以下几点:

1、手机需要获得可以访问网络的权限;

2、导入的jdbc驱动的版本需要与mysql服务器的版本相近:

3、mysql默认的访客是只允许本机(localhost),不允许其他主机运程访问,需要修改为所有主机,在命令行进行操作:

mysql -u用户名 -p密码
mysql>use mysql; mysql>select 'host' from user where user='root'; mysql>update user set host = '%' where user = 'root';

 其中,%表示所有的主机

4、进行连接操作时需要新开线程;

5、编码问题,mysql中表的编码要与连接的编码方式相同:

连接操作:

1、设置主机、用户名、密码、连接方式等:

    static private String connectString = "jdbc:mysql://192.168.199.228:3306/yang_project"
        + "?autoReconnect=true&useUnicode=true&useSSL=false"
        + "&characterEncoding=utf-8&serverTimezone=UTC";
    static private String  sql_user="root";
    static private String  sql_pwd="123456";

2、导入jdbc驱动包,并将相关的类引入代码文件:

try {
     Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
     e.printStackTrace();
}

3、建立连接(需要在新线程中):

new Thread(){
    public void run(){
        try {
            Connection con = DriverManager.getConnection(connectString, sql_user, sql_pwd);
            con.close();
        } catch (SQLException e) { //连接失败
            e.printStackTrace();
        }
    }
}.start();

 增删查改(需要新线程和try/catch):

1、增

Connection con = DriverManager.getConnection(connectString, sql_user, sql_pwd);
Statement stmt=con.createStatement();
String InsertString = "insert into user(user_name, user_password, user_age, user_height, user_weight, user_sex, user_info) " +
            "values('"+name.getText().toString()+
            "', '"+password.getText().toString()+
            "', '"+age.getText().toString()+
            "', '"+height.getText().toString()+
            "', '"+weight.getText().toString()+
            "', '"+sexType+
            "', '"+info.getText().toString()+"');";
int i = stmt.executeUpdate(InsertString);
con.close();
stmt.close();

2、删

String DeleteString = "delete from steps where user_name = '"+myname+"' and steps_date = '"+delete_date+"';";
int i = stmt.executeUpdate(DeleteString);

3、查

QueryString = "select * from steps where user_name = '"+myname+"' order by steps_date DESC;";
ResultSet rs = stmt.executeQuery(QueryString); while(rs.next()){ steps_date = rs.getString("steps_date"); steps_number = rs.getString("steps_number"); }

4、改

String QueryString = "update user set user_height = '"+myheight +"' where user_name = '"+myname+"';";
int i = stmt.executeUpdate(QueryString);
原文地址:https://www.cnblogs.com/zhaozilongcjiajia/p/10453265.html