博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC之最基本的CRUD操作
阅读量:2350 次
发布时间:2019-05-10

本文共 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/

你可能感兴趣的文章
ubuntu 12.04 使用NTP服务器校正系统时间【备忘】
查看>>
配置Linux异构网络下的ntp时间服务器
查看>>
Android AIDL使用详解
查看>>
Android 全屏无标题详解
查看>>
Android Studio iCCP: Not recognizing known sRGB profile错误
查看>>
JUnit 详解
查看>>
MySQL数据库 详解
查看>>
Cookie和Session详解
查看>>
JAVA String.format详解
查看>>
JAVA String.format详解
查看>>
Java内存模型 详解
查看>>
SVN客户端和服务端安装 详解
查看>>
Android Studio 出现 error: cannot find symbol variable abc_ic_ab_back_mtrl_am_alpha
查看>>
Android AndroidManifest.xml 详解
查看>>
Eclipse修改Format不换行 详解
查看>>
Android导入工程提示 Invalid project description 详解
查看>>
Eclipse 历史纪录 详解
查看>>
Android StrictMode 详解
查看>>
Tomcat的优化
查看>>
Android Studio 出现 gradle DSL method not found: android() 错误
查看>>