閱讀752 返回首頁    go iPhone_iPad_Mac_apple


java 自動注冊odbc

首先說下odbc的注冊原理,windows下odbc的注冊均會在注冊表odbc.ini 產生相應項,因此我們隻用用java寫入注冊表即可

java寫注冊表需要一個com.ice.jni.registry 但是這個東西分32位和64位,因此要特別判斷

下麵以寫一個名為jxy的odbc源為例

import com.ice.jni.registry.NoSuchKeyException;
import com.ice.jni.registry.RegDWordValue;
import com.ice.jni.registry.RegStringValue;
import com.ice.jni.registry.Registry;
import com.ice.jni.registry.RegistryException;
import com.ice.jni.registry.RegistryKey;
import com.ice.jni.registry.RegistryValue;
import com.sun.corba.se.pept.transport.ContactInfo;
public static void reg(){ //注冊odbc
		Properties props = System.getProperties();  
		props.get("os.name");
		if(((String) props.get("os.name")).toLowerCase().indexOf("windows")==-1){ //判斷是否為windows
			    return;
		}
		String last;
		File t=new File("ICE_JNIRegistry.dll"),s;
		if(t.exists())t.delete();
		if(((String)props.get("os.arch")).indexOf("64")>-1){ //判斷是否為64位係統
			s=new File("ICE_JNIRegistry -64.dll");
			last="ICE_JNIRegistry -64.dll";
			s.renameTo(t);
		}else{
			s=new File("ICE_JNIRegistry -32.dll");
			last="ICE_JNIRegistry -32.dll";
			s.renameTo(t);
		}
		try {
			String place;
			if(System.getenv("windir")!=null){
				place=System.getenv("windir")+"\\system32";
				place.replaceAll("\\\\{2}","\\\\");
			}else{
				place=(String) props.get("user.dir");
			}
			RegistryKey odbc = Registry.HKEY_CURRENT_USER.openSubKey("Software").createSubKey("ODBC","").createSubKey("ODBC.INI","");
			RegistryKey jxy=odbc.createSubKey("jxy", "");
			jxy.setValue(new RegStringValue(jxy, "Driver",place+"\\SQLSRV32.dll")); //如果係統沒有sql,則用當前目錄的
			jxy.setValue(new RegStringValue(jxy,"Server","JXY-THINK\\JXY_SQL_SERVER"));  
			jxy.closeKey();
			odbc.closeKey();
		} catch (NoSuchKeyException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RegistryException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}    
		s=new File("ICE_JNIRegistry.dll");
		t=new File(last);
		s.renameTo(t);
		
	}

所需dll和jar均以圖片格式上傳,另存為保存成zip即可



如果用sql server 也可以不用odbc,直接用jdbc for sql server即可

	private static String url="jdbc:sqlserver://JXY-THINK;instanceName=JXY_SQL_SERVER;database=學籍管理係統";
	private static Connection con=null;
	private static String sql;
	private static Statement stmt;

	public static void init(){
		try {
		
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {

			e.printStackTrace();
		}
	}
	public static int login_s(String user,String password){
		try {
			con=DriverManager.getConnection(url, user, password);
			stmt=con.createStatement();
		} catch (SQLException e) {
			e.printStackTrace();
			return 1;
		}
		return 0;
	}

所需文件依舊為圖片……另存為zip


最後更新:2017-04-03 12:53:47

  上一篇:go SliferMenu詳解
  下一篇:go android 按鍵聲音