本文共 3483 字,大约阅读时间需要 11 分钟。
一、JDBC工具类中的代码
package cn.itcast.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * Jdbc工具类 */public final class JdbcUtils { //省略localhost:3306 private static String url = "jdbc:mysql:///jdbc"; private static String username = "root"; private static String password = "root"; /** * 构造器私用,防止直接创建对象, * 当然通过反射可以创建 */ private JdbcUtils(){ } //保证只是注册一次驱动 static{ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } /** * 获取连接 * @return * @throws SQLException */ public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, username, password); } /** * 释放资源 */ public static void free(ResultSet rs, Statement st, Connection conn) { //规范的关系连接的方式 try{ if(rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); }finally{ try{ if(st != null) { st.close(); } } catch (SQLException e) { e.printStackTrace(); }finally { if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }}二、测试类中的代码
package cn.itcast.jdbc;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;/** * 对数据库的Crud操作 */public class Crud { public static void main(String[] args) throws SQLException { //create(); //read(); //update(); delete(); } static void delete() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try{ //创建连接 conn = JdbcUtils.getConnection(); //创建语句 st = conn.createStatement(); String sql = "delete from user where id>4"; //执行操作 int i = st.executeUpdate(sql); }finally{ JdbcUtils.free(rs, st, conn); } } /** * 更新操作 * @throws SQLException */ static void update() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try{ //建立连接 conn = JdbcUtils.getConnection(); //创建语句 st = conn.createStatement(); String sql = "update user set money=money+10"; //执行语句 int i = st.executeUpdate(sql); System.out.println("i=" + 1); }finally { JdbcUtils.free(rs, st, conn); } } /** * 插入语句 * @throws SQLException */ static void create() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try{ //建立连接 conn = JdbcUtils.getConnection(); //创建语句 st = conn.createStatement(); String sql = "insert into user(name, birthday, money) values('name1', '1987-01-01', 400)"; //执行语句 int i = st.executeUpdate(sql); System.out.println("i=" + i); } finally { JdbcUtils.free(rs, st, conn); } } /** * 读取操作 * @throws SQLException */ static void read() throws SQLException { Connection conn = null; Statement st = null; ResultSet rs = null; try{ //建立连接 conn = JdbcUtils.getConnection(); //创建语句 st = conn.createStatement(); //执行语句 rs = st.executeQuery("select id, name, money, birthday from user"); //处理结果,根据列名去拿结果 while(rs.next()) { System.out.println(rs.getObject("id") + "\t" + rs.getObject("name") + "\t" + rs.getObject("birthday") + "\t" + rs.getObject("money")); } } finally { JdbcUtils.free(rs, st, conn); } }}CRUD总结: 1、增、删、改用Statement.executeUpdate来完成,返回整数(匹配的记录数),这类操作相对简单。 2、查询用Statement.executeQuery来完成,返回的是ResultSet对象,ResultSet中包含了查询的结果;查询相对与增、删、改要复杂一些,因为有查询结果要处理。
转载地址:http://dklvb.baihongyu.com/