bundle开发----数据库访问(基于MySQL)

        看完基于串口和Socket的bundle实现,本文中我们来看看bundle中如何实现数据库的访问。

先来看看DatabaseBundle.java(数据库使用的是MySQL,并且已经创建了一个名为demo_db的数据库和一个名为user_table的表用来保存用户名和密码)

package demo.database.bundle;

import java.sql.*;


public class DatabaseBundle {
	
	protected static Connection con  = null;
	
	static String driver = "com.mysql.jdbc.Driver";
	static String PGUrl    = "jdbc:mysql://192.168.0.1/demo_db";
	static String PGUser   = "demo";
	static String PGPasswd = "demo";
	
	
	public static Statement stmt = null;

	public static void openConnection() {
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(PGUrl, PGUser, PGPasswd);
		} catch (Exception ex) {
			System.err.println("connection failed!");
			ex.printStackTrace();
			return;
		}
        
		
	}
	
	public static void closeConnection() 
	{
		if(con != null) {
			try {
				con.close();
			} catch (Exception ex) {
				return;
			}
		}
		
	}
	
	

	public static void updateUserTable(String id, String pass, String fullname)
	{
		
	    int idnumber   = 1;
	    
		try {
			String sql = "INSERT INTO user_table (id_number, id, pass, fullname) VALUES (" +
							idnumber + "," +
							id + "," +
							fullname + ")";

			//System.out.println(sql);

			Statement stmt = con.createStatement();

			stmt.executeUpdate(sql);
		} catch (Exception ex) {
			System.out.println("SQL Error!)");
			return;
		}
	}
	

}



再来看看Activator.java

package demo.database.bundle;

import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;

public class Activator implements BundleActivator {
  

  public void start(BundleContext context) throws Exception { 
	  System.out.println("Database Bundle started!");
          DatabaseBundle.openConnection();
          DatabaseBundle.updateUserTable("0", "123456", "test_name");
 }

  public void stop(BundleContext context) throws Exception {
	  DatabaseBundle.closeConnection();
	  System.out.println("Database Bundle stoped!");
  }
}

运行该bundle, 即可发现user_table已经有记录被更新了,说明该bundle能访问数据库。

值得注意的一点是:只是把mysql-connector-java-5.1.22-bin.jar加进工程的lib之后编译和生成bundle没有问题,但启动bundle时会出错。必须在bundle.manifest文件中,把下面红色部分(com.mysql.jdbc)import进来才可以(如下所示)。而使用postgresql-jdbc-8.4.701.jar来访问基于PostgreSQL数据库时则无需Import此选项也没有问题。

Import-Package: org.osgi.framework,com.mysql.jdbc

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值