D3、JDBC基础

JDBC基本概念

Java DataBase connectivity java数据库连接、即java语言操作数据库
本质:官方定义的一套操作所有关系型数据库的规则,即接口,各个数据库厂商去实现这个接口,提供数据库驱动jar包,我们可以使用这套借口编程,真正执行的代码是驱动jar包中的实现类
快速入门步骤:
	1、导入驱动jar包,mysql-connector-java5.1.37-bin.jar
		复制mysql-connector-java5.1.37-bin.jar到项目libs目录下
		右键-->Add As Library
	2、注册驱动
	3、获取数据库连接对象 Connection
	4、定义SQL
	5、获取执行sql语句的对象 Statement
	6、执行sql,接受返回结果
	7、处理结果
	8、释放资源
	//代码实现
		//2、注册驱动
		Class.forName("com.mysql.jdbc.Driver");
		//3、获取数据库连接对象 Connection
        Connection conn = DriverManager.getConnection("jdbc:mysql://locdlhost:3306/dab3", "root", "545646");
        //4、定义SQL
        String sql = "select account set balance=500 where id = 1";
        //5、获取执行sql语句的对象 Statement
        Statement statement = conn.createStatement();
        //6、执行sql,接受返回结果
        int aount = statement.executeUpdate(sql);
        //7、处理结果
        System.out.println(aount);
        //8、释放资源
        statement.close();
        conn.close();

详解各个对象

DriverManager:驱动管理对象;
	1、注册驱动,告诉程序该使用哪一个数据库驱动jar mysql5之后省略此操作
	2、获取数据库连接 getConnection();
	
Connection:数据库连接对象
	1、获取执行sql 的对象
	2、管理事务
		开启事务:setAutoCommit(boolean autocommit);
		提交事务:commit();
		回滚事务:rollback();
	
Statement:执行sql对象
	执行sql
	1. boolean execute(string sql) :可以执行任意的sql 了解
	 2. int executeupdate(string sql) :执行DML (insert, update, delete)语句、DDL(create, alter.drop)语句
	 *返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功返回值>0的则执行成功,反之,则失败。
	 3. ResultSet executeQuery(string sql) :执行DQL (select)语句
		
ResultSet:结果集对象
	next():游杯向 移功一行
	getxxx(参数):获取数据
		Xxx:代表数据类型 如: int getInt() , string getstring()*
		参数
		1. int:代表列的编号,从1开始 如: getstring(1)
		2. string:代表列名称。如: getDouble("balance") 
	注意:使用步骤:1.游标向下移动一行;2.判断是否有数据;3,获取数据
//循环判断游标是否是最后一行末尾。
while(rs.next()){
	//获取数据
	//6.2获取数据
	int id = rs.getInt (1);
	string name =rs.getstring("name");
	double balance = rs.getDouble(3);
	System.out.println(id +"--"+ name+ ".-" + balance);
}
prepareStatement:执行sql对象
	1. SQL注入问题:在拼接sq1时,有一些sq1的特殊关键字参与字符串的拼接。会造成安全性问题
		1,输入用户随便,输入密码: a' or 'a' ='a
		2.sql : select * from user where username = 'fhdsjkf' and password ='a' or 'a' = 'a'
	2.解决sql注入问题:使用Preparedstatement对象来解决
	3.预编译的SQL :参数使用?作为占位符
	4.步骤:
		1,导入驱动jar包mysql-connector-java-5.1.37-bin.jar
		2.注册驱动
		3,获取数据库连接对象Connection
		4.定义sql注意: sql的参数使用?作为占位符。如: select * from user where username = ? and password =?;
		5,获取执行sq1语句的对象Preparedstatement connection.preparestatement(string sql)
		6.给?赋值:*方法: setxxx(参数1,参数2)*参数1 : ?的位置编号从1开始参数2 :?的值
		7,执行sql,接受返回结果,不需要传递sql语句
		8.处理结果
		9.释放资源
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值