Android: 5.1.1,targetSdkVersion 22,jdk 1.8,PostgreSql 15

PostgreSql 安装学习

1.权限添加, AndroidManifest:

<uses-permission android:name="android.permission.INTERNET" />

2.依赖包添加:build.gradle dependencies,根据android版本与sdk选择:
或者下载后添加 https://jdbc.postgresql.org/download/

//依赖版本错误可能导致Class not found, Android O minsdk, jdk版本等异常
implementation 'org.postgresql:postgresql:42.1.2'

3.postgresql添加ip访问权限: 在 pg_hba.conf 中添加:

# IPv4 local connections:
host    all             all             192.168.0.1/24           trust

4.访问时新建线程:
Android访问数据库不能使用主线程,需要额外建立线程

5.示例代码:

//调用 PostgreSqlTest.testQuery() 查询id;
public class PostgreSqlTest {
	private static Connection conn;
	public static String ip = "192.168.0.10";
	public static String port = "5432";
	public static String database = "test";
	public static String user = "postgres";
	public static String pw = "123456";

	private static void connectDataBase() {
		try {
			Class.forName("org.postgresql.Driver");
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		}
		try {
			conn = DriverManager.getConnection("jdbc:postgresql://" + ip + ":"+port+"/" + database , user, pw);
			conn.setAutoCommit(false);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	private static void closeDataBase() {
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn = null;
		}
	}

	public static synchronized void testQuery() {
		new Thread(() -> {
			connectDataBase();
			try {
				java.sql.Statement statement = conn.createStatement();
				String sql =  "select id from company";
				System.out.println(sql);
				ResultSet resultSet = statement.executeQuery(sql);
				while(resultSet.next()){
					System.out.println("select id from company:   " +resultSet.getString("id"));
				}
				statement.close();
				conn.commit();
			} catch (SQLException e) {
				try {
					conn.rollback();
				} catch (SQLException e1) {
					e1.printStackTrace();
				}
				e.printStackTrace();
			} finally {
				closeDataBase();
			}
		}).start();
	}
}



Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐