Java日记之JDBC初探

书接上文,在学习完MySQL基础后(也就学了个响) , 接下来学习如何在Java程序中使用MySQL

困啊太困了...要学的总是太多,学校的课现在又开启了严格模式...

JDBC概念 :

一 . 一些重要的概念 :
①JDBC ? JDBC全称为 : Java DataBase Connectivity (Java程序使用连接数据库的方式访问数据库)
②驱动 ? 在计算机中 , 用于软硬件间通信的工具就是驱动 , 起到桥梁的作用
在Java中 , JDBC驱动就是负责沟通数据库与Java程序的桥梁
③后缀 .jar? 全程为Java归档 , 是将.java编译为class文件 , 再打包成 .jar包 . 其它用户可以直接引入并使用它 .

二. 常用API
①Driver接口 : 可以理解为司机 , 所有车都需要司机 , 所有Java程序都需要JDBC驱动程序都必须实现Driver接口 (编程前必须加载驱动jar包)
②DriverManager类 : 用于加载JDBC驱动并且创建于数据库的连接

DriverManager.getConnection(url,user,password);
url : 写法固定,下文详细介绍
user / password : 用户名+密码

③Statement接口 : 返回结果对象 , 会把SQL语句发送到数据库进行编译 , 并返回对应结果

int executeUpdate(String sql); //参数为SQL语句中的 增/删/改操作
ResultSet executeQuery(String sql);//参数为SQL中的查询语句

④ResultSet接口 : 返回结果集, 初始化时 ,游标位于第一行 , 可以使用next()
方法让游标移向下一位 , 如果没有下一位 , next()方法返回false ,因此通常再while()中使用next()方法
程序可以通过字段的名称或使用获取指定数据

JDBC编程步骤及注意事项

下面开始讲解编程步骤和注意事项
public static void main(String[] args) throws SQLException {
		Statement stmt=null;
		Connection conn=null;
		ResultSet rs=null;
		
		try {
			//第一步
			Class.forName("com.mysql.jdbc.Driver");
			//第二步,获取数据库连接
			conn= DriverManager.getConnection
			("jdbc:mysql://localhost:3308/lesson23", "用户名", "密码");
			stmt = conn.createStatement();
			//第四步 , 执行增删改操作
			
			int rows=stmt.executeUpdate
			("delete from student where Code = '张三'");
			
			System.out.println(rows+"被修改了");
			rs=stmt.executeQuery("select * from scores");
			while(rs.next()) {
				String column=rs.getString(1);//索引从1开始
				String column2=rs.getString("stuCode");
			}
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			if(rs!=null) {
				System.out.println("rs is not null");
				}
			rs.close();
			stmt.close();
			conn.close();
			
		}
	}

注意事项 :
①找不到Bulid path? (1)打开编译器的Windows菜单 , 打开show view ,点击project explore
(2)若(1)无效 , 那就检查一下 , 你的当前Project 是不是Java Project! ,非Java Projcet是没有build Path 的

②关闭问题 : 在使用完各类常用API后 , 必须关闭它们
原因 :打开的这些连接都是占用MySQL资源的 , 如果步及时关闭 , 会导致数据库崩溃

最佳方案 : 如上代码所示 , 将各个对象close()方法写在try-catch-finally的finally块中 , 保证它们一定会被执行

③Eclipse会帮助你添加各种异常声明与引包提示 ,所以跟着Eclipse就完了

④如何创建目标环境 , 导入数据库驱动 ?

传送门—>

⑤加载Driver类以后 , 为什么能直接使用DriverManager的getConnection()方法呢 ? 这里涉及到它的原码问题 , 在该方法内部有一个static代码块 , 在类装载的时候就被初始化了 (static的神奇作用再次体现)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值