有恒ccs

导航

JDBC

1.本质:是官方定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
2.快速入门
  1.导入驱动jar包
  2.注册驱动
  class.forname("")
  3.获取数据库连接对象connection
  Connection conn
  4.定义sql
  String sql
  5.获取执行sql语句的对象statement
  Statement stmt=conn.createStatement
  6.执行sql,接收返回结果
  int count=stmt.excute(sql)
  7.处理结果
  8.释放资源
  stmt.close();
  conn.close();
3.详解对象
  1.DriverManager:驱动管理对象
    1.注册驱动:告诉程序应该面向哪一个
    2.获取数据库连接
      getConnection (url,user,password)
      jdbc:mysql://ip:端口号/数据库名称
  2.Connection:数据库连接对象
    1.功能
      1.获取执行sql的对象
        Statement createStatement()    
        PreparedStatement  preparedStatement (string sql)
      2.管理实务
        开启事务:void setAutoCommit(boolean autoCommit)
        提交事务:void commit()
        回滚事务:void rollback() 
  3.Statement:执行sql对象
     1.执行sql
      1. boolean execute(String sql):可以执行任意sql
      2.int executeUpdate(String sql):执行DML(insert,update,delete)语句,DDL语句(create,alter,drop)语句
       *返回值为影响的行数
      3. ResultSet executeQuery(String sql):执行DQL(select)语句
     4.ResultSet:数据集对象
    1.next():游标向下移动一行
    2.getXxx():获取数据  如getInt()  getString()
    3.使用步骤 游标向下移动一行  判断是否有数据  获取数据
  5.PreparedStatement
    1.SQL注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题
     如账号输入wadasnas  密码输入 sada or1=1
      sql: select * from user where username ='wadasnas' password='sada' or  1=1
    2.解决sql注入问题使用:使用PreparedStatement来解决
    3.预编译的sql:参数使用?作为占位符
    4.注意:这样做可以防止sql注入 且效率更好
  
 
 

posted on 2021-11-30 18:30  有恒ccs  阅读(22)  评论(0编辑  收藏  举报