栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jdbc程序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jdbc程序

1、什么是JDBC
JDBC的全称是Java数据库连接(Java Dalabase Connectivity),它是一套用于执行soL语句的Java API应用程序可通过这套API连接到关系型数据库,并使用SQL语句来完成对数据库中数据的查询、更新、新增和删除的操作。
不同种类的数据库(如MySQL、Oracle 等)在其内部处理数据的方式是不同的。如果直接使用数据库厂商提供的访问接口操作数据库,应用程序的可移植性就会变得很差。例如,用户当前在程序中使用的是MySQL提供的接口操作数据库,如果换成Oracle数据库,则需要重新使用Oracle数据库提供的接口,这样代码的改动量会非常大。有了JDBC后,这种情况就不复存在了,因为它要求各个数据库厂商按照统一的规范来提供数据库驱动,而在程序中是由JDBC 和具体的数据库驱动联系,所以用户就不必直接与底层的数据库交互,这使得代码的通用性更强。
JDBC在应用程序与数据库之间起到了一个桥梁作用。当应用程序使用,JDBC访问特定的数据库时,需要通过不同数据库驱动与不同的数据库进行连接,连接后即可对该数据库进行相应的操作

DriverManager 类
DriverManager类用于加载JDBC驱动并且创建与数据库的连接。在DriverManager类中,定义了两个比较重要的静态方法

Connection 接口
Connecion接按口代表Java程序和数据库的连接,只有获得该连接对象后才能访问数据库,并操作数据表。在Connection接口中,定义了一系列方法

package cn.itcast.jdbc.example;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
 
public class Example01 {
 
	public static void main(String[] args) throws SQLException {
		Statement stmt  = null;
		ResultSet rs = null;
		Connection conn = null;
		try {
			//1.注册数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
			//2.通过DriverManager获取数据库连接
			String url = "jdbc:mysql://localhost:3306/jdbc";
			String username = "root";
			String password = "123456";
			//3.通过Connection对象获取Statement对象
			//4.使用Statement执行SQL语句
			String sql = "select * from users";
			rs = stmt.executeQuery(sql);
			//5.操作ResultSet结果集
			System.out.println("id|name|password|email|brithday");
			while(rs.next()) {
				int id = rs.getInt("id");
				String name = rs.getString("username");
				String paw = rs.getString("password");
				String email = rs.getString("email");
				Date birthday = rs.getDate("birthday");
				System.out.println(id+"|"+name+"|"+paw+"|"+email+"|"+birthday);
			}
		}catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally {
			//回收数据库资源
			if(rs!=null) {
				try {
					rs.close();
				}catch (Exception e) {
					e.printStackTrace();
				}
				rs=null;
			}
			if(stmt!=null) {
				try {
					stmt.close();
				}catch (Exception e) {
					e.printStackTrace();
				}
				stmt=null;
			}
			if(conn!=null) {
				try {
					conn.close();
				}catch (Exception e) {
					e.printStackTrace();
				}
				conn=null;
			}
		}
 
	}
 
}




package cn.itcast.jdbc.example.dao;

public class UsersDao {
	import java.sql.Connection;
	import java.sql.ResultSet;
	import java.sql.Statement;
	import java.text.SimpleDateFormat;
	import java.util.ArrayList;
	import cn.itcast.jdbc.example.domain.User;
	import cn.itcast.jdbc.example.utils.JDBCUtils;
	
		// 添加用户的操作
		public boolean insert(User user) {
			Connection conn = null;
			Statement stmt = null;
			ResultSet rs = null;
			try {
			// 获得数据的连接
			conn = JDBCUtils.getConnection();
			// 获得Statement对象
			stmt = conn.createStatement();
			// 发送SQL语句
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String birthday = sdf.format(user.getBirthday());
		    String sql = "INSERT INTO users(id,name,password,email,birthday) "+
						"VALUES("
						+ user.getId()
						+ ",'"
						+ user.getUsername()
						+ "','"
						+ user.getPassword()
						+ "','"
						+ user.getEmail()
						+ "','"
						+ birthday + "')";
				int num = stmt.executeUpdate(sql);
				if (num > 0) {
					return true;
				}
				return false;
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				JDBCUtils.release(rs, stmt, conn);
			}
			return false;
		}
		// 查询所有的User对象
		public ArrayList findAll() {
			Connection conn = null;
			Statement stmt = null;
			ResultSet rs = null;
			ArrayList list = new ArrayList();
			try {
				// 获得数据的连接
				conn = JDBCUtils.getConnection();
				// 获得Statement对象
				stmt = conn.createStatement();
				// 发送SQL语句
				String sql = "SELECT * FROM users";
				rs = stmt.executeQuery(sql);
				// 处理结果集
				while (rs.next()) {
					User user = new User();
					user.setId(rs.getInt("id"));
					user.setUsername(rs.getString("name"));
					user.setPassword(rs.getString("password"));
					user.setEmail(rs.getString("email"));
					user.setBirthday(rs.getDate("birthday"));
					list.add(user);
				}
				return list;
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				JDBCUtils.release(rs, stmt, conn);
			}
			return null;
		}
		// 根据id查找指定的user
		public User find(int id) {
			Connection conn = null;
			Statement stmt = null;
			ResultSet rs = null;
			try {
				// 获得数据的连接
				conn = JDBCUtils.getConnection();
				// 获得Statement对象
				stmt = conn.createStatement();
				// 发送SQL语句
				String sql = "SELECt * FROM users WHERe id=" + id;
				rs = stmt.executeQuery(sql);
				// 处理结果集
				while (rs.next()) {
					User user = new User();
					user.setId(rs.getInt("id"));
					user.setUsername(rs.getString("name"));
					user.setPassword(rs.getString("password"));
					user.setEmail(rs.getString("email"));
					user.setBirthday(rs.getDate("birthday"));
					return user;
					}
					return null;
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					JDBCUtils.release(rs, stmt, conn);
				}
				return null;
			}
			// 删除用户
			public boolean delete(int id) {
				Connection conn = null;
				Statement stmt = null;
				ResultSet rs = null;
				try {
					// 获得数据的连接
					conn = JDBCUtils.getConnection();
					// 获得Statement对象
					stmt = conn.createStatement();
					// 发送SQL语句
					String sql = "DELETE FROM users WHERe id=" + id;
					int num = stmt.executeUpdate(sql);
					if (num > 0) {
						return true;
					}
					return false;
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					JDBCUtils.release(rs, stmt, conn);
				}
				return false;
			}
			// 修改用户
			public boolean update(User user) {
				Connection conn = null;
				Statement stmt = null;
				ResultSet rs = null;
				try {
					// 获得数据的连接
					conn = JDBCUtils.getConnection();
					// 获得Statement对象
					stmt = conn.createStatement();
					// 发送SQL语句
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
					String birthday = sdf.format(user.getBirthday());
					String sql = "UPDATE users set name='" + user.getUsername()
							+ "',password='" + user.getPassword() + "',email='"
							+ user.getEmail() + "',birthday='" + birthday
							+ "' WHERe id=" + user.getId();
					int num = stmt.executeUpdate(sql);
					if (num > 0) {
						return true;
					}
					return false;
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					JDBCUtils.release(rs, stmt, conn);
				}
				return false;
			}
		}




resultset对象
resultset主要用于存储结果集,可以通过next()方法由前向后逐个获取结果集中的数据
创建DAO
在src下新建一一个名称为cn.itcast.jdbc.example.dao的包,在包中创建一个名称为UsersDao的类,该类中封装了对表users的添加、查询、删除和更新等操作

package cn.itcast.jdbc.example.dao;

public class UsersDao {
	import java.sql.Connection;
	import java.sql.ResultSet;
	import java.sql.Statement;
	import java.text.SimpleDateFormat;
	import java.util.ArrayList;
	import cn.itcast.jdbc.example.domain.User;
	import cn.itcast.jdbc.example.utils.JDBCUtils;
	
		// 添加用户的操作
		public boolean insert(User user) {
			Connection conn = null;
			Statement stmt = null;
			ResultSet rs = null;
			try {
			// 获得数据的连接
			conn = JDBCUtils.getConnection();
			// 获得Statement对象
			stmt = conn.createStatement();
			// 发送SQL语句
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			String birthday = sdf.format(user.getBirthday());
		    String sql = "INSERT INTO users(id,name,password,email,birthday) "+
						"VALUES("
						+ user.getId()
						+ ",'"
						+ user.getUsername()
						+ "','"
						+ user.getPassword()
						+ "','"
						+ user.getEmail()
						+ "','"
						+ birthday + "')";
				int num = stmt.executeUpdate(sql);
				if (num > 0) {
					return true;
				}
				return false;
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				JDBCUtils.release(rs, stmt, conn);
			}
			return false;
		}
		// 查询所有的User对象
		public ArrayList findAll() {
			Connection conn = null;
			Statement stmt = null;
			ResultSet rs = null;
			ArrayList list = new ArrayList();
			try {
				// 获得数据的连接
				conn = JDBCUtils.getConnection();
				// 获得Statement对象
				stmt = conn.createStatement();
				// 发送SQL语句
				String sql = "SELECT * FROM users";
				rs = stmt.executeQuery(sql);
				// 处理结果集
				while (rs.next()) {
					User user = new User();
					user.setId(rs.getInt("id"));
					user.setUsername(rs.getString("name"));
					user.setPassword(rs.getString("password"));
					user.setEmail(rs.getString("email"));
					user.setBirthday(rs.getDate("birthday"));
					list.add(user);
				}
				return list;
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				JDBCUtils.release(rs, stmt, conn);
			}
			return null;
		}
		// 根据id查找指定的user
		public User find(int id) {
			Connection conn = null;
			Statement stmt = null;
			ResultSet rs = null;
			try {
				// 获得数据的连接
				conn = JDBCUtils.getConnection();
				// 获得Statement对象
				stmt = conn.createStatement();
				// 发送SQL语句
				String sql = "SELECt * FROM users WHERe id=" + id;
				rs = stmt.executeQuery(sql);
				// 处理结果集
				while (rs.next()) {
					User user = new User();
					user.setId(rs.getInt("id"));
					user.setUsername(rs.getString("name"));
					user.setPassword(rs.getString("password"));
					user.setEmail(rs.getString("email"));
					user.setBirthday(rs.getDate("birthday"));
					return user;
					}
					return null;
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					JDBCUtils.release(rs, stmt, conn);
				}
				return null;
			}
			// 删除用户
			public boolean delete(int id) {
				Connection conn = null;
				Statement stmt = null;
				ResultSet rs = null;
				try {
					// 获得数据的连接
					conn = JDBCUtils.getConnection();
					// 获得Statement对象
					stmt = conn.createStatement();
					// 发送SQL语句
					String sql = "DELETE FROM users WHERe id=" + id;
					int num = stmt.executeUpdate(sql);
					if (num > 0) {
						return true;
					}
					return false;
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					JDBCUtils.release(rs, stmt, conn);
				}
				return false;
			}
			// 修改用户
			public boolean update(User user) {
				Connection conn = null;
				Statement stmt = null;
				ResultSet rs = null;
				try {
					// 获得数据的连接
					conn = JDBCUtils.getConnection();
					// 获得Statement对象
					stmt = conn.createStatement();
					// 发送SQL语句
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
					String birthday = sdf.format(user.getBirthday());
					String sql = "UPDATE users set name='" + user.getUsername()
							+ "',password='" + user.getPassword() + "',email='"
							+ user.getEmail() + "',birthday='" + birthday
							+ "' WHERe id=" + user.getId();
					int num = stmt.executeUpdate(sql);
					if (num > 0) {
						return true;
					}
					return false;
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					JDBCUtils.release(rs, stmt, conn);
				}
				return false;
			}
		}




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号