Android访问PostgreSql数据库

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();
	}
}



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值