Java JDBC增删改查的实用demo(包括判空和异常处理)

talk is cheap, show me the code

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

class JdbcDemo{
    private static final Logger logger = LoggerFactory.getLogger(JdbcDemo.class);
    private Connection        conn  = /*赋值*/; // 数据库连接对象
    private PreparedStatement pstmt = /*赋值*/; // 数据库操作对象

    public /*返回类型*/ query(String... args){
        String sql = "SELECT * "
                + " FROM t_YOURTABLE where xxx=? and xxx=?;";
        try{
            pstmt = conn.prepareStatement(sql);// 获取PreparedStatement对象
            pstmt.setString(1, args[0]); // 占位符"?"从1开始计数
            pstmt.setString(2, args[1]);
            logger.info("query - " + pstmt.toString());
            rs = this.pstmt.executeQuery();// 执行数据库操作
            boolean isFound = false; // sql查询是否有返回值
            while (rs.next()) {
                isFound = true; // 至少有一个返回值
                //if (!rs.isLast()) { // 只要最后一个
                // continue;
                //}
                // check price exist
                rs.getString(1));
                rs.getString(2));

            }
            // sql查询是否有返回值
            if (isFound == false) {
                logger.info("No record when execute:" + pstmt.toString());
                return null;
            }
        } catch (SQLException e) {
            logger.error("query - sql exception:" + e.getMessage());
            return null;
        } finally {
            if (rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    logger.error("queryFangRoomInfo - rs close exception:"+ e.getMessage());
                }// 关闭ResultSet对象
            }
            if(this.pstmt!=null){
                try {
                    this.pstmt.close();
                } catch (SQLException e) {
                    logger.error("queryFangRoomInfo - pstmt close exception:"+ e.getMessage());
                }// 关闭PreparedStatement对象
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    logger.error("queryFangRoomInfo - conn close exception:"+ e.getMessage());
                }
            }
        }
}

你可能感兴趣的:(java,jdbc)