JDBC-------接口和类的详解

  1. DriverManager:驱动管理对象
    功能:1. 注册驱动:告诉程序应该使用哪个数据库驱动jar
static void registerDriver(Driver driver) //注册与给定的驱动程序 DriverManager 。                                      写代码使用:class.forName ( "com. mysql. jdbc . Driver")
//通过查看源码发现∶在com.mysql.jdbc.Driver类中存在静态代码块
	static {
		try {
			java.sql.DriverManager.registerDriver(new Driver());
			} catch (sQLException E) {
				throw new RuntimeException("can't register driver!");
			}
			//注意: mysq1。5之后的驱动jar包可以省略注册驱动的步骤。
			2. 获取数据库连接
//方法: static Connection getConnection(string url,string user,string password)                       
 参 数∶url :指定连接的路径
*语法:jdbc : mysql:/ /ip地址(域名):端口号/数据库名称  
* 例子: jdbc :mysql:/ / localhost: 3306/ db3
*细节:如果连接的是本机my sql服务器,并且mysql服务默认端口是3306,则url可以简写为:   			 jdbc:mysql:///数据库名称
*user :用户名
*password :密码
  1. Connection:数据库连接对象
    功能:1. 获取执行sql的对象
Statement createStatement​() //创建一个 Statement对象,用于将SQL语句发送到数据库。
PreparedStatement prepareStatement​(String sql) //创建一个 PreparedStatement对象,用于将参数化的SQL语句发送到数据库。  
			2. 管理事务
					1.开启事务:
						void setAutoCommit​(boolean autoCommit) 将此连接的自动提交模式设置为给定状态。 
					2. 提交事务		
						void commit​() 使上次提交/回滚之后所做的所有更改都将永久性,并释放此 Connection对象当前持有的任何数据库锁。 
					3. 回滚事务
						void rollback​() 撤消在当前事务中所做的所有更改,并释放此 Connection对象当前持有的任何数据库锁。 
  1. Statement(功能不太完善,知道就行,不太使用):执行sql对象
    功能:
    1. boolean execute (string sql) : 可以执行任意的sql(了解)
    2. int executeupdate(String sql):执行DML (insert、update、delete)语句、DDL(create,alter、drop)语句 返回值∶影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成功,反之,则失败。
    3. Resultset executeouery(string sql):执行DQL (select)语句
  2. ResultSet:结果集对象,封装查询结果
    功能:
    1. next();游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true
    2. getXxx(参数);获取数据:Xxx:代表数据类型 如:int geiInt(), String getString()
      使用步骤:
      1. 游标向下移动一行
      2. 判断是否有数据
      3. 获取数据
        举例:
 // 使用循环判断游标是否是最后一行末尾
            while (resultSet.next()){
                // 获取数据
                int id=resultSet.getInt(1);
                String name=resultSet.getString(2);
                double balance=resultSet.getDouble(3);
                // 打印数据
                System.out.println((id + "  " + name + "  " + balance));
            }
  1. PreparedStatement(主要使用,来执行sql对象):执行sql对象
    执行sql对象
    1. sql注入问题:在拼接sql时,有些sql的特殊关键字参与字符串拼接,会造成安全问题。
    输入用户名随便,输入密码:a" or “a”=“a”
    sql : select * from user where username ="sdfsa"andpassword=“a” or “a”=“a”;
    1. 解决sql注入问题使用preparedstatement对象来解决
    2. 预编译的sql :参数使用?作为占位符
    3. 使用步骤:
      1. 导入驱动jar包mysql-connector-java-5.1.37-bin.jar
      2. 注册驱动
      3. 获取数据库连接对象 Connection
      4. 定义sql
        注意:sql的参数使用?作为占位符
        如:select * from user where username=? and password=?;
      5. 获取执行sql语句的对象 preparedstatement connection.preparedstatement(String sql);
      6. 给?赋值
        方法:setXxx(参数1,参数2)
        参数1:?的位置编号 从1开始
        参数2:?的值
      7. 执行sql,接收返回结果,不需要传递sql 语句。
        如果执行的语句是DML语句,使用executeUpdate
        如果执行的语句是DQL语句,使用executeQuery
      8. 处理结果
      9. 释放资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值