下面是DB类,也就是数据库连接及操作类: package com.ljh.util; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DB { /*以下是定义一些字段*/ private String url = "jdbc:mysql://localhost:3306/dao?user=root&password=1814"; //数据库URL private String className = "com.mysql.jdbc.Driver"; //数据库驱动类路径 private Connection conn = null; //声明一个Connection对象 private Statement stmt = null; //声明一个Statement对象 private PreparedStatement pstmt = null; //声明一个PreparedStatement对象 /*初始化一些东西:加载数据库驱动,并建立连接*/ public void init(){ try { //加载数据库驱动 Class.forName(className).newInstance(); //建立连接,连接到由属性url指定的数据库URL,并指定登录数据库的用户名和密码 conn = DriverManager.getConnection(url); //在初始化方法里面首先获取Statement对象 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY ); } catch (Exception e) { e.printStackTrace(); System.out.println("初始化方法init()出现错误,加载数据库驱动失败 或者 建立连接失败!!"); } } /*构造方法*/ public DB(){ init(); } /*********************************以下方法是针对Statement的****************************************/ /*查询数据库,返回结果集ResultSet*/ public ResultSet executeQuery(String sql){ ResultSet rs = null; try { rs = stmt.executeQuery(sql); } catch (SQLException e) { e.printStackTrace(); System.out.println("executeQuery(String sql)方法出错!!"); } return rs; } /*对数据库中的数据进行增加、修改或删除,返回受影响的行数*/ public int executeUpdate(String sql){ int iCount = 0; try { iCount = stmt.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); System.out.println("executeUpdate(String sql)方法出错!!"); } return iCount; } /*********************************以下方法是针对PreparedStatement的****************************/ /*依据SQL语句给pstmt赋上值*/ public void readyPreparedStatement(String sql){ try { pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY ); } catch (SQLException e) { e.printStackTrace(); System.out.println("readyPreparedStatement()方法出错!!"); } } /*以下是一些 PreparedStatement 设置的方法*/ public void setString(int index, String value){ try { pstmt.setString(index, value); } catch (SQLException e) { e.printStackTrace(); System.out.println("PreparedStatement的设置方法setString()出错!!"); } } public void setInt(int index, int value){ try { pstmt.setInt(index, value); } catch (SQLException e) { e.printStackTrace(); System.out.println("PreparedStatement的设置方法setInt()出错!!"); } } public void setBoolean(int index, boolean value){ try { pstmt.setBoolean(index, value); } catch (SQLException e) { e.printStackTrace(); System.out.println("PreparedStatement的设置方法setBoolean()出错!!"); } } public void setDate(int index, Date value){ try { pstmt.setDate(index, value); } catch (SQLException e) { e.printStackTrace(); System.out.println("PreparedStatement的设置方法setDate()出错!!"); } } public void setLong(int index, long value){ try { pstmt.setLong(index, value); } catch (SQLException e) { e.printStackTrace(); System.out.println("PreparedStatement的设置方法setLong()出错!!"); } } public void setFloat(int index, float value){ try { pstmt.setFloat(index, value); } catch (SQLException e) { e.printStackTrace(); System.out.println("PreparedStatement的设置方法setFloat()出错!!"); } } public void setBytes(int index, byte[] value){ try { pstmt.setBytes(index, value); } catch (SQLException e) { e.printStackTrace(); System.out.println("PreparedStatement的设置方法setBytes()出错!!"); } } /*查询数据库,返回结果集ResultSet*/ public ResultSet executeQuery(){ if (pstmt != null) { try { return pstmt.executeQuery(); } catch (SQLException e) { e.printStackTrace(); System.out.println("executeQuery()方法出错!!"); return null; } } else{ System.out.println("PreparedStatement 未给定值!!"); return null; } } /*对数据库中的数据进行增加、修改或删除,返回受影响的行数*/ public int executeUpdate(){ int iCount = 0; if (pstmt != null){ try { iCount = pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); System.out.println("executeUpdate()方法出错!!"); } } else{ System.out.println("PreparedStatement 未给定值!!"); } return iCount; } /*********************************************************************************************************/ /*关闭所有连接*/ public void close(){ try { if (stmt != null) { stmt.close(); stmt = null; } if (pstmt != null) { pstmt.close(); pstmt = null; } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); System.out.println("关闭所有连接的方法close()出错了!!"); } } } 下面是测试DB类的一个Java小程序(用于往表中插入一条记录,并在插入后,对该表进行查询): package com.ljh.util; public class DBTest { public static void main(String[] args) throws Exception{ String sql = "insert into usertbl(id,username,password) values(?,?,?)"; DB db = new DB(); db.readyPreparedStatement(sql); db.setInt(1, 5); db.setString(2, "sss"); db.setString(3,"yyy"); db.executeUpdate(); db.close(); db.init(); db.executeQuery("select * from usertbl"); } }