JDBC工具类及模糊查询
JDBC工具类
package util; import java.sql.*; /** * JDBC工具类,简化JDBC编程 */ public class DBUtil { /** * 工具类中的构造方法都是私有的。 * 因为工具类当中的方法都是静态的,不需要new独享,直接采用类名调用。 */ private DBUtil(){} // 静态代码块在类加载时执行,并且只执行一次。 { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获取数据库连接对象 * @return 连接对象 * @throws SQLException */ public static Connection getConnection() throws SQLException{ return DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase","root","333"); } /** * 关闭资源 * @param conn 连接数据库对象 * @param ps 数据库操作对象 * @param rs 结果集对象 */ public static void close(Connection conn, Statement ps, ResultSet rs){ if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
测试JDBC工具类是否好用及模糊查询:
package com.java.JDBC; import util.DBUtil; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /** * 这个程序两个任务: * 第一:测试BDUtil是否好用 * 第二:模糊查询怎么写? */ public class JDBCTest12 { public static void main(String[] args) { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { // 获取连接 conn = DBUtil.getConnection(); // 获取预编译的数据库操作对象 String sql = "select ename from emp where ename like ?"; ps = conn.prepareStatement(sql); ps.setString(1,"_A%"); rs = ps.executeQuery(); while (rs.next()){ String ename = rs.getString("ename"); System.out.println(ename); } } catch (SQLException e) { e.printStackTrace(); } finally { // 释放资源 DBUtil.close(conn,ps,rs); } } }