java使用jdbc+odbc方式连接access数据库

       前段时间由于需要要做一个简单的网页版的点名程序,数据存储在access数据库中,在网上查找了各种方法,也遇到了一些问题,最终算是完成了,再此将java连接access数据库容易遇到了问题和解决方法记录下来。
       连接access数据库需要配置ODBC数据源,打开计算机的管理工具中的数据源(ODBC),并添加系统数据源,会发现驱动程序中没有Access的驱动程序


在度娘上找了许久,发现在C:\Windows\SysWOW64下边的odbcad32.exe中可以找到Access的驱动程序,最终得以配置好Access数据源,接下来是通过java连接access数据库,需要添加Access_JDBC30jar包,servlet具体代码如下:
        Connection connection=null;
		Statement statement=null;
		ResultSet rSet=null;
		List
    
    
     
      persons=new ArrayList
     
     
      
      ();
		Person person;
		try {
	try {
		Class.forName("com.hxtt.sql.access.AccessDriver").newInstance();
	} catch (InstantiationException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IllegalAccessException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	 connection=DriverManager.getConnection("jdbc:Access:///d:/db.mdb","","");
	 statement=connection.createStatement();
	 rSet=statement.executeQuery("select * from Person where OfUnitId="+numString+"");
	while(rSet.next()){
		
		person=new Person();
		person.setPersonId(rSet.getString(2));
		person.setPersonName(rSet.getString(3));
		person.setOfUnitId(rSet.getString(4));
		persons.add(person);
	}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			 
				try {
					if (rSet!=null)
					rSet.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			
					try {
						if(statement!=null){
						statement.close();
						}
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}	
				
				try {
					if(connection!=null) {
						connection.close();
						
					}
				} catch (Exception e2) {
					// TODO: handle exception
				}

		}
		PrintWriter out=response.getWriter();
		System.out.println(persons);
		out.println(gson.toJson(persons));
	
     
     
    
    
前台通过ajax访问servlet来获取数据库中的数据并进行处理,并每隔1毫秒执行getInfo函数,实现随机点名的效果。



    
    
随机抽检系统
   href="css/bootstrap.css" rel="stylesheet" type="text/css" />
   rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/css/bootstrap-select.min.css">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.10.0/js/bootstrap-select.min.js"></script>



    
    
<script type="text/javascript"> $(".selectpicker").selectpicker(); var GSON; var Ctrl; function getInfo(){ var Len=GSON.length; var a=Math.floor((Math.random()*Len)); $("#PerId").html(GSON[a].PersonId); $("#PerNam").html(GSON[a].PersonName); } $("#start").click(function(){ window.clearInterval(Ctrl); var selectUnit=$("#unitSe").val(); $.ajax({ url:'dbaccess', type:'GET', async:false, data:"num="+selectUnit+"", dataType:'json', success:function(data){ GSON=data; }, error:function(error){ alert(error); } }); Ctrl=setInterval(getInfo, 1); }) $("#end").click(function(){ window.clearInterval(Ctrl); }) </script>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值