当前位置: 首页 > news >正文

安安互联怎么上传网站深圳专业英文网站建设

安安互联怎么上传网站,深圳专业英文网站建设,亚马逊aws在线观看,蛋糕店网站开发策划书目录 JDBC简介快速入门API详解DriverManager#xff08;驱动管理类#xff09;注册驱动#xff1a;获取数据库连接(对象)#xff1a; Connection#xff08;数据库连接对象#xff09;获取执行SQL的对象管理事务 Statement(执行SQL语句)执行DML、DDL语句执行DQL语句 Resu… 目录 JDBC简介快速入门API详解DriverManager驱动管理类注册驱动获取数据库连接(对象) Connection数据库连接对象获取执行SQL的对象管理事务 Statement(执行SQL语句)执行DML、DDL语句执行DQL语句 ResultSet结果集对象用Result获取查询结果 PreparedStatementSQL注入PreparedStatement使用PreparedStatement原理 数据库连接池数据库连接池实现Druid使用步骤 JDBC 简介 概念 使用 Java 语言操作关系型数据库的一套API全称Java DataBase ConnectivityJava 数据库连接 本质 官方sun公司定义的一套操作所有关系型数据库的规则即接口各个连接厂商去实现这套接口提供数据库驱动 jar 包程序员可以使用这套接口JDBC编程真正执行的代码是驱动 jar 包中的实现类 好处 各数据库厂商使用相同的接口Java 代码不需要针对不同的数据库分别开发可随时替换底层数据库访问数据库的 Java 代码基本不变 快速入门 步骤 创建工程导入驱动 jar 包 注册驱动:Class.forName(com.mysql.jdbc.Driver); 获取连接Connection [conn对象名称] DriverManager.getConnection(url, username, password); 定义SQL语句String [sql对象名称] update……; 获取执行SQL对象Statement [stmt对象名称] conn.createStatement(); 执行SQLint i stmt.executeUpdate(sql); 处理返回结果 释放资源 API详解 DriverManager驱动管理类 作用 注册驱动 registerDriver(Driver driver) #注册给指定的驱动 mysql 5 之后可以省略步骤中的1注册驱动因为JDBC的 jar 包下的META-INF/services/java.sql.Driver 中自动记录了对应的驱动的名称 获取数据库连接(对象) Connection XXX getConnection(String url, String user, String password) #尝试建立与给定的数据库URL的连接 上述参数 1.url连接路径 语法[(协议)jdbc:mysql://]ip地址(域名)端口号/数据库名称[?]参数键值对1[]参数键值对2…… 示例jdbc:mysql://127.0.0.1:3306/db1 细节 如果连接的是本机mysql服务器并且mysql服务器默认端口是3306则url可以简写为jdbc:mysql:数据库名称[?]参数键值对配置useSSLfalse参数禁用安全连接方式解决警告提示示例jdbc:mysql://127.0.0.1:3306/db1?useSSLfalse…… user用户名password密码 Connection数据库连接对象 作用 获取执行SQL的对象 Statement XXX createStatement() #普通执行SQL对象 PreparedStatement XXX prepareStatement(sql) #预编译SQL的执行SQL对象防止SQL注入 CallableStatement XXX prepareCall(sql) #执行存储过程的对象 管理事务 MySQL事务管理 开启事务BEGIN/ START TRANSACTION 提交事务COMMIT 回滚事务ROLLBACK MySQL默认自动提交事务 JDBC事务管理Connection接口中定义了3个对应的方法 开启事务setAutoCommit(boolean autoCommit)其中参数为true则自动提交事务、false则手动提交事务即为开启事务 提交事务commit() 回滚事务rollback() 示例 try{ ​ connection.setAutoCommit(false);// 开启事务 ​ int i stmt.executeUpdate(sql);//执行SQL ​ ……//处理​ connection.commit();//提交事务 } catch (Exception throwables) { ​ connection.rollback();//回滚事务 }Statement(执行SQL语句) 作用 执行DML、DDL语句 语法 int XX executeUpdate(sql) 返回值XX DML语句执行过后受影响的行数DDL语句执行后执行成功也可能返回0删除表、库 执行DQL语句 ResultSet XX executeQuery(sql) ResultSet结果集对象 作用 ResultSet结果集封装了DQL查询语句的结果 ResultSet XXX statement.executeQuery(sql)#执行SQL语句返回ResultSet对象 用Result获取查询结果 boolean result ResultSet.next() 将光标从当前位置向后移动一行 判断当前行是否为有效行 返回值 true有效行当前行有数据false无效行当前行没有数据 XXX getXXX参数获取数据 XXX数据类型如int getInt参数、String getString参数 参数 int列的编号从1开始String列的名称 示例 //1.注册驱动(5.0之后可省略) Class.forName(com.mysql.jdbc.Driver); //2.获取连接如果连接的是本机mysql且端口默认是3306可以简化书写 String url jdbc:mysql://db1?useSSLfalse; String username root; String password 123456; Connection conn DriverManager.getConnection(url, username, password); //3.定义SQL String sql select * from account; //4.获取statement对象 Statement stmt conn.createStatement(); //5.执行SQL ResultSet rs stmt.executeQuery(sql);//6.处理结果//6.1光标下移一行并且判断当前行是否有数据 while(rs.next()) { // 列编号的写法//6.2获取数据int id rs.getInt(1);String name rs.getString(2);double money rs.getDouble(3); }while(rs.next()) { //列名写法int id rs.getInt(id);String name rs.getString(name);double money rs.getDouble(money); } PreparedStatement SQL注入 作用通过操作输入来修改事先定义好的SQL语句用以达到执行代码对服务器进行攻击的方法 String name “heasdasd”; String pwd ’ or ‘1’ 1 ; String sql select * from tb_user where username ’ name ’ and password ’ pwd ’ ; 通过上述替换导致最后的SQL语句变为 select * from tb_user where username ’ heasdasd ’ and password ’ ’ or ‘1’ ‘1’ 由于判断是从左到右执行那么username的false结果and上password‘ ’的false结果最终是false但是之后又or上11恒等式那么结果为真 PreparedStatement使用 作用执行预编译SQL语句防止SQL注入 获取 PreparedStatement 对象 //SQL语句中的参数值使用 ? 占位符替代 String sql selsect * from user where username ? and password ? //通过Connection对象获取并传入对应的SQL语句 PreparedStatement pstmt conn.prepareStatement(sql) 设置参数值 PreparedStatement对象.setXxx参数1参数2给SQL语句中的 ?占位符 赋值 Xxx参数对应的数据类型如Int、string等 参数 参数1 ? 占位符 在SQL语句中的位置编号从1开始参数2 ? 占位符 里面的值 执行SQL executeUpdate(); / executeQuery(); 不需要再传递sql executeUpdate(); #执行查询语句返回结果集 executeQuery(); #执行更新语句返回受影响的行数 PreparedStament是通过转义字符的形式达到单引号不会跟我们的sql语句中的单引号进行配对 PreparedStatement原理 原理 在获取PreparedStatement对象时将sql语句发送给mysql服务器进项检查、编译这个步骤很耗时执行时就不用进行这些步骤了速度更快如果sql模板一样则只需要进行一次检查、编译 好处 预编译SQL性能更高防止SQL注入将敏感字符进行转义 PreparedStatemrnt预编译功能开启 useServerPrepStmtstrue #加到获取连接后的参数中 String url “jdbc:mysql://db1?useSSLfalseuseServerPrepStmtstrue”; 配置MySQL执行日志配置文件写在my.ini文件最后重启MySQL服务后生效 log-outputFILE general-log1 general_log_file“D:mysql.log” #里面的目录需要根据实际目录进行改动 slow-query-log1 slow_query_log_file“D:\mysql_slow.log” long_query_time2 数据库连接池 简介 数据库连接池是个容器负责分配、管理数据库连接Connection它允许应用程序重复使用一个现有的数据库连接而不是再重新建立一个释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏 好处 资源重用提升系统响应速度避免数据库连接遗漏 数据库连接池实现 标准接口DataSource 官方SUN提供的数据库连接池标准接口由第三方组织实现此接口 功能获取连接 Connection getConnection() 常见的数据库连接池 DBCPC3P0Druid Druid(德鲁伊) Druid连接池是阿里巴巴开源的数据库连接池项目功能强大性能优秀是Java语言最好的数据库连接池之一 Druid使用步骤 导入jar包 druid-1.1. 12.jar 定义配置文件项目名称.iml 加载配置文件 Properties prop new Properties(); prop.load(new FileInputStream(“路径[jdbc-demo模块/src/druid.properties]”)); #注意路径可能会报错问题是路径有时候需要加模块的名称 #解决的通用方法通过System.out.println(System.getProperty(“user.dir”));打印出这个项目的路径通过找到模块的路径进行拼接即打印出的项目名称作为默认的项目名称之后通过找到Durid的jar包的路径填入 获取数据库连接池对象 DataSource dataSource DruidDataSourceFactory.createDataSource(prop); 获取连接 Connection connection dataSource.getConnection(); 注意 在实体类中基本数据类型建议使用其对应的包装类型因为基本数据类型有默认的值可能会对业务造成影响
http://www.pierceye.com/news/686765/

相关文章:

  • 网站怎么建设可以发图评论网站建设制作公
  • 做销售的网站设计公司是做什么的
  • 建设专业网站的利弊海淀区seo招聘信息
  • 吴江区住房与建设局网站网站开发怎么对接客户
  • frontpage2007网站建设网站开发需要redis
  • 国内做网站多少钱ui中有哪些做的好看的网站
  • 金湖建设工程质量监督网站网页设计 网站建设 哪个好
  • 适合做外链的网站梧州论坛红豆思辨
  • 永城网站设计公司wordpress 获取父分类
  • 网站开发语言是什么东莞营销网站建设价格
  • 外贸公司访问国外网站中学生做的网站有哪些方面
  • 南城网站建设公司信息wordpress怎样显示文章全部列表
  • 做推广什么网站便宜企业网站管理系统湖南岚鸿
  • 电影下载网站 怎么做flash翻页效果网站模板
  • 社交网站开发语言河北建设工程信息网首页
  • 上海营销型网站建设公司wordpress 自己做页面
  • 网站布局选择临淄信息网手机版
  • 怎样申请网站呢注册商标怎么注册商标
  • 网站地址英文不相关的网站做单项链接可以吗
  • 怎么做网站超链接wordpress 主题 设置
  • 手机电影网站建设如何做网站域名备案
  • 重庆手机网站推广价格网络营销论文参考文献
  • 如何给网站添加搜索关键字做流量网站有收入吗
  • 购物网站的英文如何不让百度收录网站
  • 上海定制网站建设公司哪家好建立公司官网
  • jsp电影网站开发教程滁州网站建设梦天堂
  • 网站建设哪个好一些网站服务器证书有问题
  • 广东省广州市白云区钟落潭镇优化什么建立生育支持政策体系
  • wordpress+代码质量哈尔滨百度seo代理
  • 北京模板网站建设全包中国招标与采购网官网