zoukankan      html  css  js  c++  java
  • java数据库操作

    数据库操作可以中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()了:

    <jsp:useBean id="NAV" scope="session" class="mysite.Navlink" />
    <jsp:setProperty name="NAV" property="*" />
    ........
    NAV.insertnavlink();
    ......

    频繁访问数据库,需要使用连接池,在tomcat 4.0中配置JNDI,稍微修改一下上面程序就可使用连接池.Tomcat的连接池配置和J2EE类似,因此程序不用修改,也可直接运行在J2EE上.
    也可以使用第三方连接池, 如很有名的Poolman.

  • 相关阅读:
    通信—互联网协议入门2(转载)
    通信—互联网协议入门1(转载)
    通信—HTTP 协议入门(转载)
    通信—跨域资源共享
    ionic3使用echart插件
    通信—HTTP与HTTPS
    ionic学习笔记—常用命令
    ionic学习笔记—创建项目
    Spark 资源池简介
    数据库设计原则
  • 原文地址:https://www.cnblogs.com/ringwang/p/1092248.html
Copyright © 2011-2022 走看看