Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1531172
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 20:27:32

一起学习
数据库操作可以中WEB开发中最常用到的,很多Java开发工具都提供了自动的Data bean WinZard.只要数据库建立好,相应的操作数据库的Bean就基本可以自动完成,本人使用Jcreator开发bean,手工录入觉得也不是很麻烦的事情,下面我常用的数据库操作bean,完全可以对付访问量不是很大的系统 : Mysql类: import java.sql.*; import java.io.*; /** * 处理数据库的连接和访问 * @author sanware bqlr * @version 1.01 */ public class Mysql { private Connection conn = null; private Statement stmt = null; private PreparedStatement prepstmt = null; //这是一个全局类,里面放置数据库的参数,如数据库主机 访问用户名 密码等 private static BeansConstants CONST = BeansConstants.getInstance(); /** * 构造数据库的连接和访问类 */ public Mysql() throws Exception { Class.forName(CONST.dbdriver); conn = DriverManager.getConnection(CONST.dburl); stmt = conn.createStatement(); } public Mysql(String sql) throws Exception { Class.forName(CONST.dbdriver); conn = DriverManager.getConnection(CONST.dburl); this.prepareStatement(sql); } /** * 返回连接 * @return Connection 连接 */ public Connection getConnection() { return conn; } /** * PreparedStatement * @return sql 预设SQL语句 */ public void prepareStatement(String sql) throws SQLException { prepstmt = conn.prepareStatement(sql); } /** * 设置对应值 * @param index 参数索引 * @param value 对应值 */ public void setString(int index,String value) throws SQLException { prepstmt.setString(index,value); } public void setInt(int index,int value) throws SQLException { prepstmt.setInt(index,value); } public void setBoolean(int index,boolean value) throws SQLException { prepstmt.setBoolean(index,value); } public void setDate(int index,Date value) throws SQLException { prepstmt.setDate(index,value); } public void setLong(int index,long value) throws SQLException { prepstmt.setLong(index,value); } public void setFloat(int index,float value) throws SQLException { prepstmt.setFloat(index,value); } //File file = new File("test/data.txt"); //int fileLength = file.length(); //InputStream fin = new java.io.FileInputStream(file); //mysql.setBinaryStream(5,fin,fileLength); public void setBinaryStream(int index,InputStream in,int length) throws SQLException { prepstmt.setBinaryStream(index,in,length); } public void clearParameters() throws SQLException { prepstmt.clearParameters(); } /** * 返回预设状态 */ public PreparedStatement getPreparedStatement() { return prepstmt; } /** * 返回状态 * @return Statement 状态 */ public Statement getStatement() { return stmt; } /** * 执行SQL语句返回字段集 * @param sql SQL语句 * @return ResultSet 字段集 */ public ResultSet executeQuery(String sql) throws SQLException { if (stmt != null) { return stmt.executeQuery(sql); } else return null; } public ResultSet executeQuery() throws SQLException { if (prepstmt != null) { return prepstmt.executeQuery(); } else return null; } /** * 执行SQL语句 * @param sql SQL语句 */ public void executeUpdate(String sql) throws SQLException { if (stmt != null) stmt.executeUpdate(sql); } public void executeUpdate() throws SQLException { if (prepstmt != null) prepstmt.executeUpdate(); } /** * 关闭连接 */ public void close() throws Exception { if (stmt != null) { stmt.close(); stmt = null; } if (prepstmt != null) { prepstmt.close(); prepstmt = null; } conn.close(); conn = null; } } Mysql建立好后,以后涉及数据库的操作,只要对象化Mysql就可以: private String page_navlink_insert="insert into page_navlink values (?,?,?,?)"; public void insertnavlink() throws Exception {   ResultSet rs=null;   try {     Mysql mysql = new Mysql(page_navlink_insert);     mysql.setInt(1,this.siteid);     mysql.setInt(2,this.pageid);     mysql.setString(3,this.navlinkname);     mysql.setString(4,this.pagefile);     mysql.executeUpdate();     mysql.close();     mysql = null;   } catch (Exception ex) {     throw new Exception("insertnavlink()" ex.getMessage());   } } 在Jsp中,就可以直接使用一句语句使用insertnavlink()了: ........ NAV.insertnavlink(); ...... 频繁访问数据库,需要使用连接池,在tomcat 4.0中配置JNDI,稍微修改一下上面程序就可使用连接池.Tomcat的连接池配置和J2EE类似,因此程序不用修改,也可直接运行在J2EE上. 也可以使用第三方连接池, 如很有名的Poolman. 下载本文示例代码


一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包一个MySQL数据库的操作包
阅读(99) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~