javaweb:JDBC连接MYSQL数据库详解,使用JDBC对数据库进行CRUD操作以及DAO模式的介绍

 

JDBC简介:

JDBC全称为:Java DataBase Connectivity(java数据库连接)。

SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。

组成JDBC的2个包:

链接:https://pan.baidu.com/s/1ePw4wDxcsZu9x-3MZHu8FQ 
提取码:0g1z 

java.sql

javax.sql

开发JDBC应用需要以上2个包的支持外

还需要导入相应JDBC的数据库实现(即数据库驱动

第一个JDBC程序:

编程从user表中读取数据,并打印在命令行窗口中。

  一、搭建实验环境 :

  1、在mysql中创建一个库,并创建user表和插入表的数据。

  2、新建一个Java工程,并导入数据驱动。

二、编写程序,在程序中加载数据库驱动

  DriverManager. registerDriver(Driver driver)

三、建立连接(Connection)

  Connection conn = DriverManager.getConnection(url,user,pass);

四、创建用于向数据库发送SQL的Statement对象,并发送sql

  Statement st = conn.createStatement();

  ResultSet rs = st.executeQuery(sql);

五、从代表结果集的ResultSet中取出数据,打印到命令行窗口

六、断开与数据库的连接,并释放相关资源

package cn.itcast.jdbctest;

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

import org.junit.Test;

/**
 * JDBC的快速入门
 * @author Administrator
 *
 */
public class JdbcDemo1 {
	
	@Test
	public void run2(){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			// 现在这么做
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql:///day17", "root", "root");
			// 编写SQL语句了
			String sql = "select * from t_user";
			// 创建能执行SQL语句的Statement对象
			stmt = conn.createStatement();
			// 执行SQL语句
			rs = stmt.executeQuery(sql);
			// 循环变量rs
			while(rs.next()){
				// 拿出来
				int id = rs.getInt("id");
				String username = rs.getString("username");
				String password = rs.getString("password");
				System.out.println(id+" "+username+" "+password);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			if(rs != null){
				try {
					rs.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				rs = null;
			}
			if(stmt != null){
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				stmt = null;
			}
			if(conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				conn = null;
			}
		}
		
	}
	
	
	@Test
	public void run1() throws SQLException, ClassNotFoundException{
		/**
		 * 1.完成驱动的注册
		 * 2.获取链接
		 * 3.执行SQL语句
		 * 4.释放资源
		 */
		// 注册驱动
		// DriverManager.registerDriver(new Driver());
		
		// 现在这么做
		Class.forName("com.mysql.jdbc.Driver");
		
		// 获取链接
		// Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day17", "root", "root");
		
		Connection conn = DriverManager.getConnection("jdbc:mysql:///day17", "root", "root");
		
		// 编写SQL语句了
		String sql = "select * from t_user";
		// 创建能执行SQL语句的Statement对象
		Statement stmt = conn.createStatement();
		// 执行SQL语句
		ResultSet rs = stmt.executeQuery(sql);
		// 循环变量rs
		while(rs.next()){
			// 拿出来
			int id = rs.getInt("id");
			String username = rs.getString("username");
			String password = rs.getString("password");
			System.out.println(id+" "+username+" "+password);
		}
		rs.close();
		stmt.close();
		conn.close();
	}
}


JDBC编程步骤:

装载驱动程序

建立连接

操作数据

释放资源

程序详解—DriverManager:

DriverManager类的是管理一组 JDBC 驱动程序的基本服务。作用有两个,如下:

注册驱动

static void registerDriver(Driver driver)方法进行注册驱动

但是这种方式不是很好,原因如下:

让应用程序依赖具体的驱动包,如果是切换数据库还需要修改源代码才能完成。

调用该方法导致驱动被注册两次,通过查看驱动的源代码能发现次问题。

所以在实际开发中不会这么做?具体做法如下:

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

获取链接对象

数据库URL:

URL用于标识数据库的位置,程序员通过URL地址告诉JDBC程序连接哪个数据库,URL的写法为:

   jdbc:    mysql: //       localhost:3306/test ?     key=value

 

l常用数据库URL地址的写法:

Oracle写法:jdbc:oracle:thin:@localhost:1521:sid

MySql—jdbc:mysql://localhost:3306/sid

Mysql的url地址的简写形式: jdbc:mysql:///sid

常用属性:useUnicode=true&characterEncoding=UTF-8

程序详解—Connection:

Jdbc程序中的Connection,它用于代表数据库的链接,Collection是数据库编程中最重要的一个对象,客户端与数据库所有交互都是通过connection对象完成的,

有两个作用:

创建执行SQL语句的对象

createStatement():创建向数据库发送sql的statement对象

prepareStatement(sql) :创建向数据库发送预编译sql的PreparedSatement对象

prepareCall(sql):创建执行存储过程的CallableStatement对象。

管理事物

setAutoCommit(boolean autoCommit):设置事务是否自动提交。

commit() :在链接上提交事务。 ---与事务相关!!

rollback() :在此链接上回滚事务。

程序详解—Statement  -- 一次操作:

Jdbc程序中的Statement对象用于向数据库发送SQL语句, Statement对象常用方法:

执行SQL语句

executeQuery(String sql) :用于向数据发送查询语句。

exec

  • 9
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值