public class DoControl { public static void main(String[] args)throws SQLException, ClassNotFoundException, UnsupportedEncodingException { String sql = "select * from Export_Output where id between "+(100*(pageIndex-1)+1)+" and "+100*(pageIndex) +" order by id desc"; PreparedStatement pstm = DataBaseUtil.getConn().prepareStatement(sql); ResultSet rs = pstm.executeQuery(); while (rs.next()) { String name = rs.getString(“name”); } rs.close(); } }
今天要做大数据处理,拿access做练习,顺便学习一下Java连接access数据库问题。
Java 连接access数据库,以及解决中文乱码问题,还有查询分页问题。
解决中文乱码的时候:尝试用 String name = rs.getString(“name”);
name = new String(name.getBytes(“utf-8”),”GBK”或者
name = new String(name.getBytes(“iso-8859-1”),”GBK”)等等解决不了问题。
最后用Properties prop =new Properties();prop.put("charSet", "gbk");
问题解决。
public class DataBaseUtil { privatestatic Connectionconn =null; publicstaticConnection getConn()throws ClassNotFoundException, SQLException { if (conn==null) { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=E:\\2.accdb"; Properties prop = new Properties(); prop.put("charSet","gbk"); //解决中文乱码 conn = DriverManager.getConnection(url,prop); // conn = DriverManager.getConnection(url); } returnconn; } }
//100:显示条数
//pageIndex:当前页数