最近几天学习jsp觉得很好,写了个分页类,给大家分享一下,同时也请高手指点。
第一部分:db.MysqlConn 数据库链接类
/*************
路径:zon.db.MysqlConn
文件:MysqlConn.java
用途:数据库连接
package db;import java.sql.*;import javax.xml.parsers.*;import org.w3c.dom.*;import org.xml.sax.SAXException;import java.io.*;//导入数据库操作的类public class MysqlConn { private Connection conn; //连接对象 private Statement stmt; //语句对象 private ResultSet rs; //结果集对象 private String MySqldriver="com.mysql.jdbc.Driver"; //MYSQL Server驱动程序字符串 private String MySqlURL = "jdbc:mysql://"; //MYSQL Server连接字符串 String databasex; String webRealPath="D://zon//WebRoot//"; //根路径实际路径,用于读取数据库链接参数的配置文件 database.xml // 定义数据库链接参数变量 String server="localhost"; String dbname="phpzon"; String user="admin"; String pass="admin"; String port="3306"; String dbchara="utf-8"; String dbprefix="zon_"; //表前缀 public void setDatabasex(String databasex){ this.databasex = databasex; } public String getDatabasex(){ return databasex; } public void setWebRealPath(String webRealPath){ this.webRealPath = webRealPath; } public String getWebRealPath(){ return webRealPath; } /******************************************************************** 用 com.mysql.jdbc.Driver 驱动 * 该方法取得连接所需各种参数,组成连接字符串,* 然后再建立连接* server;dbname,user,pass,port * 分别表示MYSQL 服务器的地址、数据库名、用户名、密码、端口,* 本方法已作改造,直接通过配置文件 WEB-INF//database.xml 读取链接信息********************************************************************/public Connection getMysqlConn(){ //根据数据库配置文件获得数据库链接参数 database.xml //建立解析工厂 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setIgnoringElementContentWhitespace(true);//忽略元素内容中的空格 //创建解析器 DocumentBuilder dbxml; try { dbxml = factory.newDocumentBuilder(); //得到解析文件 Document doc; try { doc = dbxml.parse("file:///"+webRealPath+"WEB-INF//database.xml"); doc.normalize(); //得到根元素 //Element root = doc.getDocumentElement(); //得到所有db元素 //NodeList dbs = doc.getElementsByTagName("db"); //NodeList dbType = doc.getElementsByTagName("type"); NodeList dbDriver = doc.getElementsByTagName("driver"); NodeList dbUrl = doc.getElementsByTagName("url"); NodeList dbServer = doc.getElementsByTagName("server"); NodeList dbPort =doc.getElementsByTagName("port"); NodeList dbDbname =doc.getElementsByTagName("dbname"); NodeList dbUser =doc.getElementsByTagName("user"); NodeList dbPassword =doc.getElementsByTagName("password"); NodeList dbChara =doc.getElementsByTagName("chara"); NodeList dbPrefix =doc.getElementsByTagName("prefix"); //获取各参数值 int i=0; MySqldriver = dbDriver.item(i).getFirstChild().getNodeValue(); //MYSQl驱动程序 MySqldriver = "com.mysql.jdbc.Driver"; MySqlURL = dbUrl.item(i).getFirstChild().getNodeValue(); //链接路径 "jdbc:mysql://"; server = dbServer.item(i).getFirstChild().getNodeValue(); //数据库服务器地址 port = dbPort.item(i).getFirstChild().getNodeValue(); //数据库端口 默认 3306 dbname = dbDbname.item(i).getFirstChild().getNodeValue(); //数据库名称 user = dbUser.item(i).getFirstChild().getNodeValue(); //用户名 pass = dbPassword.item(i).getFirstChild().getNodeValue(); //密码 dbchara = dbChara.item(i).getFirstChild().getNodeValue(); //数据库编码 dbprefix = dbPrefix.item(i).getFirstChild().getNodeValue(); //表名前缀 try{//完整的连接字符串 MySqlURL=MySqlURL+server+":"+port+"/"+dbname+"?user="+user+"&password="+pass+"&useUnicode=true&characterEncoding="+dbchara; Class.forName(MySqldriver); conn = DriverManager.getConnection(MySqlURL); } catch(Exception e){ System.out.println("操作数据库出错,请仔细检查"); System.err.println(e.getMessage()); } } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (ParserConfigurationException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return conn; } /* * 执行sql 语句,返回记录集 ,主要针对 select、show语句 */public ResultSet sqlQuery(String sql){ sql=SetQuery(sql); Statement temStmt = null; //语句对象 ResultSet temRs = null; //结果集对象 Connection temConn=this.getMysqlConn(); try { temStmt=temConn.createStatement(); //执行sql查询语句,得到记录集 temRs=temStmt.executeQuery(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return temRs; }/* * 执行Insert sql 语句 */public void sqlInsert(String sql){ sql=SetQuery(sql); try { this.getMysqlConn().createStatement().executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }}/* * 执行update sql 语句 */public void sqlUpdate(String sql){ sql=SetQuery(sql); try { this.getMysqlConn().createStatement().executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }}/* * 执行delete sql 语句 */public void sqlDelete(String sql){ sql=SetQuery(sql); try { this.getMysqlConn().createStatement().executeUpdate(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }}/* * 执行sql 语句,返回记录总数 ,主要针对 select语句 */public int sqlTotalRow(String sql){ Statement temStmt = null; //语句对象 ResultSet temRs = null; //结果集对象 int result = 0; //结果值 Connection temConn=this.getMysqlConn(); try { temStmt=temConn.createStatement(); //执行sql查询语句,得到记录集 temRs=temStmt.executeQuery(sql); temRs.last(); result = temRs.getRow(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; }//设置SQL语句,会自动把SQL语句里的dede_替换为 配置文件中的 表 前缀 zon_public String SetQuery(String sql){ String prefix="dede_"; sql = sql.replace(prefix, this.dbprefix); return sql;}//关闭数据库连接public void close(){ try{ //rs.close(); //stmt.close(); conn.close(); } catch(SQLException sqlexception){ sqlexception.printStackTrace(); } }}
新闻热点
疑难解答