本地JDBC原理,简易封装

了解JDBC,如何用java连接数据库。

1.加载驱动

连接数据库需要有驱动来支持,Java有自己的驱动类。

但是数据库有很多种,这时就需要使用数据库方提供的jar包。这里连接的是MySQL,使用的是:

mysql-connector-java-5.1.6-bin.jar

2.通过驱动连接数据库

我们在使用数据库时都要用管理员账号才能使用数据库,用java连接同理,需要输入密码来验证。

这里用Connection对象连接数据库

3.用sql语句操作

sql数据库是靠一系列语句来操作的,那么连接后需要吧sql语句传入数据库来执行。

通过第二步的:Connection对象来获取输入sql语句的连接对象Statement

4.语句执行结果

例如查询,在执行完后会显示结果,这些结果在java中需要来有容器接收。

第三步中Statment对象有许多方法来区分不同的sql语句及其返回值,具体执行需选择使用

5.连接的关闭

在连接数据库后,运行的程序会一直占有数据库的资源,为了不浪费资源(站在茅坑不拉屎)就需要在用完之后断开数据库的连接。毕竟数据库的连接资源是有限的。

 

//1.管理驱动		DriverManager
//2.驱动		Driver
//3.连接		Connection
//4.sql语句		Statement
//5.关闭		Close
public class Domysql {
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		//加载驱动
		Class.forName("com.mysql.jdbc.Driver");		
		//连接
		Connection conn = 
				DriverManager.getConnection("jdbc:mysql://localhost:3306/demo", "root", "aptx4869");		
		//sql语句,返回结果
		Statement st = conn.createStatement();		//用于输入sql
		ResultSet re = st.executeQuery("select * from user");	//Statement不同方法不同类型的sql	
		//接收结果输出,数字列索引,“(列名)”
		while(re.next()) {
			System.out.println(re.getString("id") + " " + re.getString("name") + " " + re.getInt("age"));
		}		
		//关闭
		re.close();
		st.close();
		conn.close();
	}
}

简易封装

在了解完本地java如何连接及过程来进行封装

封装类

package mysql;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCUtils {
	//需要尽晚连接,尽早关闭。
	private static String driver = "com.mysql.jdbc.Driver";
	private static String url = "jdbc:mysql://localhost:3306/demo";
	private static String user = "root";
	private static String password = "aptx4869";
	private static Connection conn = null;
	private static Statement st = null;
	
	//静态代码块,加载驱动
	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	
	//连接并返回Connection
	private static Connection getConnection() throws SQLException {		
		return DriverManager.getConnection(url, user,password);
	}
	
	//更新
	public void Update(String sql){
		try {
			conn = getConnection();
			st = conn.createStatement();
			st.executeUpdate(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		Close(null);
	}
	//查询
	public void Select(String sql){	
		try {
			conn = getConnection();
			st = conn.createStatement();
			ResultSet rs = st.executeQuery(sql);
			System.out.println("__________________________________________________________________________");
			while(rs.next()) {
				System.out.println("|" + rs.getString("id") + "|" + rs.getInt("age") + "|" + rs.getString("name"));
			}
			Close(rs);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	//关闭
	public static void Close(ResultSet rs) {
		try {
			if(rs != null) {
				rs.close();
			}
			rs = 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 (conn != null) {
						conn.close();
					}
					conn = null;
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}
	}

}

测试

package mysql;

public class Test {
	public static void main(String[] args) {
		String sql = "insert user value ('007','zhaobing',54)";
		String sql2 = "select * from user";
		JDBCUtils jd = new JDBCUtils();
		jd.Select(sql2);
		jd.Update(sql);
		jd.Select(sql2);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值