在JDBC4MYSQL-master这个项目中调试通了Android与MySQL的连接后,我考虑如果今后把这个作为一个函数能够随时调用
* 数据库的操作才是符合java精神的,因此参照http://blog.youkuaiyun.com/itluochen/article/details/52181589把它转换
* 成类的形式,在项目JDBCToMySql(也就是本项目)中,建了一个类文件MySqlUtil.java,在这里照着前辈的帖子写了三个方法
* :连接数据库、查询打印数据库、修改数据库。写完之后,在MainActivity中如果想调用该方法,先要设置三个参数URL、USER、
* PASSWORD。以后想连接其他数据库就修改这三个参数就行了,然后在oncreate方法中新开一个线程,进行数据库操作和打印了。
* 注意,在MySqlUtil类中的query方法的“id”和“name”是已知了mytable表中内容而写的,如果想修改其他数据库,就要把它俩改
* 成你需要的名字。
* 这样以后在需要访问MySQL的应用,就把MySqlUtil类拷贝过来,修改query里的两个参数,然后在主函数中调用
MySqlUtil.java中的内容如下,前提是要导入mysql-connector-java-*.*-bin.jar进入libs
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MySqlUtil{
//openConnection是连接数据库
public static Connection openConnection(String url, String user,
String password) {
Connection conn = null;
try {
final String DRIVER_NAME = "com.mysql.jdbc.Driver";
Class.forName(DRIVER_NAME);
conn = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
conn = null;
} catch (SQLException e) {
conn = null;
}
return conn;
}
//查询数据库
public static void query(Connection conn, String sql) {
if (conn == null) {
return;
}
Statement statement = null;
ResultSet result = null;
try {
statement = conn.createStatement();
result = statement.executeQuery(sql);
if (result != null && result.first()) {
int idColumnIndex = result.findColumn("id");
int nameColumnIndex = result.findColumn("name");
while (!result.isAfterLast()) {
System.out.println("------------------");
System.out.print("id " + result.getString(idColumnIndex) + "\t");
System.out.println("name " + result.getString(nameColumnIndex));
result.next();
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (result != null) {
result.close();
result = null;
}
if (statement != null) {
statement.close();
statement = null;
}
} catch (SQLException sqle) {
}
}
}
//执行MySQL语句的函数
public static boolean execSQL(Connection conn, String sql) {
boolean execResult = false;
if (conn == null) {
return execResult;
}
Statement statement = null;
try {
statement = conn.createStatement();
if (statement != null) {
execResult = statement.execute(sql);
}
} catch (SQLException e) {
execResult = false;
}
return execResult;
}
}
MainActivity中的内容如下:
public class MainActivity extends AppCompatActivity {
private static final String URL = "jdbc:mysql://192.168.1.106:3306/mark";
private static final String USER = "root";
private static final String PASSWORD = "root";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 这是已经调试成功的Android studio连接MySQL的程序一定要保护好,加入其他程序从下面开始复制调试
* 参考的帖子是我博客上的那篇,前面还有别人的一篇,做到第10步
*访问MySQL数据库要用新线程,不能用主线程
*/
new Thread(new Runnable() {
@Override
public void run() {
Connection conn = MySqlUtil.openConnection(URL, USER, PASSWORD);
System.out.println("All users info:");
MySqlUtil.execSQL(conn, "insert into mytable values(56,'小李')");
MySqlUtil.execSQL(conn, "update mytable set name='mark' where id=1");
MySqlUtil.execSQL(conn, "delete from mytable where id=6");
MySqlUtil.query(conn, "select * from mytable");
}
}).start();
}
}