JDBC 总结

JDBC : 定义了一套 java 操作所有关系型数据库的规则(接口)

JDBC 本质:sun公司定义的一套关系型数据的接口,然后各个数据库厂商去实现这个接口,提供数据库去驱动jar包,我们可以使用这套接口编程,真正执行的代码是驱动Jar 包中的实现类

快速入门
1. 导入驱动Jar包
2. 注册驱动
3. 获取数据库连接对象 connection
4. 定义sql
5. 获取执行sql语句的对象 statement
6. 执行sql,接受返回结果
7. 处理结果
8. 释放资源

代码实现:

	Public class JDBCDemo01{
	
	Public static void main(String[] args) throws Exception{
	//1、导入驱动Jar包
	//复制Jar包到libs文件夹下
	//右键文件夹AddasLibaray
	//2、注册驱动
	Class.forName("com.mysql.jdbc.Driver");
	//3、获取数据库连接对象
	Connectionconn=DriverManager.getConnection("jdbc:mysql://localhost:3306/db3","root","root");
	//4、定义sql语句
	Stringsql="update account set balance=500 where id=1";//注意不要加分号
	//5、获取执行sql的对象
	Statementstate=conn.createStatement();
	//6、执行sql语句
	Int count=state.executeUpdate(sql);
	//7、处理结果
	System.out.println(count);
	//8、释放资源
	state.close();
	conn.close();
	
	}
}

各个对象的解释:

1. DiverManager   驱动管理对象
	• 注册驱动  告诉我们的程序该使用哪一个数据库驱动Jar,mysql5之后可以不用写
		 1. static void registerDriver​(Driver driver,  DriverAction da)
		 2. 代码执行: Class.forname("com.mysql.jdbc.Driver");
	     3. 通过源码发现,"com.mysql.jdbc.Driver" 有静态代码块
	• 获取数据库连接
		方法  public static Connection getConnection​(String url,String user, String password)
		参数: 
			url: 指定连接的路径  
				1. 语法:jdbc:mysql://ip地址(域名):端口/数据库名称
				2. 例子: jdbc:mysql://localhost:3306/db3
				3. 如果是本地的,则可以简写成  jdbc:mysql:///db3
			User: 用户名
			Password: 密码                               
		
2、Connection  数据库连接对象
	1、获取执行sql  的对象:
		方法:
			Statement createConnection()
			Statement preparedConnection(String sql)
	2、 管理事务
		开启事务: void  setAutoCommit(boolean autoCommit)  :设置为false ,即开启事务
		提交事务:commit()
		回滚事务:rollback()
		
4、Statement   执行sql 的对象
	执行sql:
		Boolean execute(String sql)
		Int executeUpdate(String sql)  执行DDL ,DML 语句,返回值是影响的行数
		ResultSet   executeQuery(String sql)  执行DQL  语言
5、ResultSet  结果集对象,封装查询结果
	Boolean next( )   : 返回布尔数据,判断是否有数据,如果有数据返回true,否则返回false 
	Next() 游标移动到下一行
	getXXX(参数): 获取数据 :
		参数 1、int  代表列的编号,从1开始  getString(1)
			2、String  列的名称,
			
		注意:使用步骤:
			1、游标向下移动一行
			2、判断是够有数据
			3、获取数据
			
6、PreparedStatement  执行sql 的对象
	(1)Sql  注入问题   在sql 语句拼接的时候,造成的安全性问题
		1、随便输入用户名,密码为  a' or 'a'='a  
	 (2) 解决sql 注入问题
		使用preparedStatement( )  预编译的 对象
	(3) 预编译的sql,使用?作为占位符   
		步骤:
			1、导入驱动Jar包
			2、注册驱动
			3、获取数据库连接对象 connection
			4、定义sql(这里sql 的参数使用 ?作为占位符)
			5、获取执行sql语句的对象 PreparedStatement= connection.prepareStatement(String sql)
			6、给? 赋值
				方法:setXXX( 参数1,参数2):
					参数1:? 的位置编号,从1开始
					参数2:? 的值
			7、执行sql,接受返回结果
			8、处理结果
			9、释放资源
			
			以后尽量使用这个方法进行数据库的操作
			1、防止SQL的注入
			2、效率更高
			
JDBC 工具类:
	简化书写:
		1、注册驱动
		2、抽取一个方法获取连接对象

JDBC 控制事务:

	1.事务:包含多个步骤的业务操作,要么同时成功,要么同时失败
	2.事务操作
		1.开启事务
		2.提交事务
		3.回滚事务
	3.使用connection 对象管理事务
		* 开启事务: void  setAutoCommit(boolean autoCommit)  :设置为false ,即开启事务
			执行sql 之前开启事务
		* 提交事务:commit()
			当所有sql执行完提交事务
		* 回滚事务:rollback()
			在catch中回滚事务
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖大仙~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值