JDBC

JDBC(Java Data Base Connectivity,Java数据库连接)是Java与数据库间的一套接口规范。

1.连接数据库
 获取数据库驱动的方式有三种,一般使用的Class.forname

 DriverManager.deregisterDriver(new com.mysql.jdbc.Driver());

  System.setProperty("jdbc", "com.mysql.jdbc.Driver");

  Class.forName("com.mysql.jdbc.Driver");

2.产生连接对象

Connection conn = DriverManager.getConnection(url,users,password);

3.执行SQL语句

Statement st = conn.createStatement();

String sql = ''select * from tb1';            //结果集装sql产物

4.产生结果集,对结果集进行遍历

ResultSet rs = st.executeQuery(sql);

while(rs.next)){

     Ststem.out.println(rs.getInt(("id")+"\t"+rs.getString("Username")+"\t"+rs.getDouble("Salary"));

}

5.关闭且释放资源

conn.close();

rs.close();

st.close();

6.连接数据库的通用方法

package com.openlab.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils {
	
	
	private static Properties properties = new Properties();
	private static String user = null;
	private static String password = null;
	private static String url = null;

	
	static{
		try {
			
			InputStream is = 
					JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properites");
			properties.load(is);
			String driver = properties.getProperty("driver");
			user = properties.getProperty("user");
			password = properties.getProperty("password");
			url = properties.getProperty("url");
			
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	// 对Connection对象进行封装时 可以选择两种用法  静态方法  单例模式
	/**
	 * 获取connection  方法具有单一性 
	 * @return
	 * @throws SQLException
	 */
	public static Connection getConnection() throws SQLException{
		
		return  DriverManager.getConnection(url, user, password);
	}
	
	
	
	public static void close(Connection conn, Statement st, ResultSet rs){
		
		try {
			if(conn != null){
				conn.close();
				conn = null;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			
			try {
				if(st!=null){
					st.close();
					st = null;
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				
				try {
					if(rs!=null){
						rs.close();
						rs = null;
					}
					
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
		}
		
		
	}


}

7.单条或多条通用查询方法

/**
	 * 单条的通用查询方法
	 * @param sql
	 * @return
	 */
	public Object queryByOne(String sql){
		
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		Object obj = null;
		
		try {
			conn = getConnection();
			st =  conn.createStatement();
			rs = st.executeQuery(sql);
			 obj = rsToObj(rs);
			
		} catch (SQLException e) {
			
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			close(conn, st, rs);
		}
		
		return obj;
		
	}
	
	/**
	 * 通用的多条查询方法
	 * @param sql
	 * @return
	 */
	public List<Object> queryByAll(String sql){
		
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		
		List<Object> list = null;
		
		try {
			conn = getConnection();
			st =  conn.createStatement();
			rs = st.executeQuery(sql);
			list = rsToList(rs);
			
		} catch (SQLException e) {
			
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			close(conn, st, rs);
		}
		
		return list;
		
	}

8.增删改


public class JDBCTest {
 
	
	
	/**
	 * 增加数据
	 */
	public static void add() throws SQLException{
		String sql = "INSERT INTO USER (user_name,user_password,user_age) VALUES('老王','123456',18)";
		Connection conn = DBUtil.getConnection();
		conn.setAutoCommit(false);
		PreparedStatement preparedStatement = conn.prepareStatement(sql);
		preparedStatement.executeUpdate();
		conn.commit();
		conn.close();
	}
	
	/**
	 * 删除数据
	 */
	public static void delete() throws SQLException{
		String sql = "DELETE FROM USER WHERE USER.user_name = '老王'";
		Connection conn = DBUtil.getConnection();
		conn.setAutoCommit(false);
		PreparedStatement preparedStatement = conn.prepareStatement(sql);
		preparedStatement.executeUpdate();
		conn.commit();
		conn.close();
	}
	
	/**
	 * 修改数据
	 */
	public static void updata() throws SQLException{
		String sql = "UPDATE USER SET USER.user_name = '老李'";
		Connection conn = DBUtil.getConnection();
		conn.setAutoCommit(false);
		PreparedStatement preparedStatement = conn.prepareStatement(sql);
		preparedStatement.executeUpdate();
		conn.commit();
		conn.close();
	}

	
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值