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

网站建设与管理方向企业网站建设难吗

网站建设与管理方向,企业网站建设难吗,开发一套系统需要多少钱,易企秀网站开发#x1f4cb; 个人简介 #x1f496; 作者简介#xff1a;大家好#xff0c;我是阿牛#xff0c;全栈领域优质创作者。#x1f61c;#x1f4dd; 个人主页#xff1a;馆主阿牛#x1f525;#x1f389; 支持我#xff1a;点赞#x1f44d;收藏⭐️留言#x1f4d… 个人简介 作者简介大家好我是阿牛全栈领域优质创作者。 个人主页馆主阿牛 支持我点赞收藏⭐️留言 系列专栏java 小白到高手的蜕变格言要成为光因为有怕黑的人 目录 个人简介前言JDBC简介JDBC快速入们JDBC API 详解DriverManagerConnectionStatementResultSetPreparedStatement - SQL注入演示结语前言 一个项目肯定是离不开数据库的每种语言都有涉及到操作数据库的内容本节来看看java语言中如何使用JDBC如何操作数据库 JDBC简介 就是使用java语言操作关系型数据库的一套API。 JDBC快速入们 主要有7步当然在这之前肯定要先在当前项目或者模块中导入java操作mysql的jar包。对于这个jar包的下载不再总结 如图在模块中新建一个libs目录将这个jar包放到里面。然后我们要让这个模块识别这个jar包 我们选择模块有效就可以然后就可以写代码了 这7步我注视到代码里 package JdbcDemo;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;public class JDBCDemo {public static void main(String[] args){try {methods();} catch (Exception e) {e.printStackTrace();}}public static void methods() throws Exception{// 1.注册驱动Class.forName(com.mysql.cj.jdbc.Driver);// 2.获取连接String url jdbc:mysql://127.0.0.1:3306/myclasswork;String name root;String password ...;Connection conn DriverManager.getConnection(url,name,password);// 3.定义sqlString sql update spj set QTY 400 where SNO S1;// 4.获取执行sql的对象StatementStatement stmt conn.createStatement();// 5. 执行sqlint count stmt.executeUpdate(sql); //返回更新的数据条数// 6.输出执行结果System.out.println(受影响行数 count);// 7.释放资源stmt.close(); //关闭执行sql的对象conn.close(); //关闭连接} }JDBC API 详解 DriverManager DriverManager 驱动管理类作用 注册驱动获取数据库的连接 但是我们上面的案例代码中并没有使用registerDriver来注册驱动而是使用反射的方式加载Driver类这个类里面用到了这个方法来看看源码 当然mysql 5.0之后的jar包注册驱动的这行代码可以不用写了 Class.forName(com.mysql.cj.jdbc.Driver);因为这个jar包中有文件记录了这个类名会读取文件自动加载 Connection Connection的参数说明 Connection数据库连接对象作用 获取执行sql的对象 管理事务 package Demo;import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;/*** AuthorAniu* Date2023/2/26 14:16* description TODO*/ public class Demo {public static void main(String[] args){try {methods();} catch (Exception e) {e.printStackTrace();}}public static void methods() throws Exception{// 1.注册驱动Class.forName(com.mysql.cj.jdbc.Driver);// 2.获取连接String url jdbc:mysql://127.0.0.1:3306/myclasswork;String name root;String password ...;Connection conn DriverManager.getConnection(url,name,password);// 3.定义sqlString sql1 update spj set QTY 450 where SNO S1;String sql2 update spj set QTY 250 where SNO S2;// 4.获取执行sql的对象StatementStatement stmt conn.createStatement();try {// 开启事务conn.setAutoCommit(false);// 5. 执行sqlint count1 stmt.executeUpdate(sql1); //返回更新的数据条数// 6.输出执行结果System.out.println(受影响行数 count1);// 5. 执行sqlint count2 stmt.executeUpdate(sql2); //返回更新的数据条数// 6.输出执行结果System.out.println(受影响行数 count2);// 提交事务conn.commit();} catch (Exception e) {// 回滚事务conn.rollback();e.printStackTrace();}// 7.释放资源stmt.close(); //关闭执行sql的对象conn.close(); //关闭连接} }开启事务的目的就是当发生异常的时候回滚让这几条sql操作都不执行这里不再多说 Statement Statement 的作用 执行sql操作 ResultSet ResultSet 结果集对象作用 1.封装了DQL查询语句的结果 ResultSet stmt.execute(sql) //执行DQL语句返回ResultSet对象例 package Test;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;/*** AuthorAniu* Date2023/2/26 14:50* description ResultSet*/ public class Test {public static void main(String[] args) throws Exception {// 1.注册驱动Class.forName(com.mysql.cj.jdbc.Driver);// 2.获取连接String url jdbc:mysql://127.0.0.1:3306/myclasswork;String name root;String password ...;Connection conn DriverManager.getConnection(url,name,password);// 3.定义sqlString sql select * from spj;// 4.获取Statement对象Statement stmt conn.createStatement();// 5.执行sqlResultSet rs stmt.executeQuery(sql);// 6.处理结果遍历rs中的所有数据while(rs.next()){String sno rs.getString(SNO);String pno rs.getString(PNO);String jno rs.getString(JNO);int qty rs.getInt(QTY);System.out.println(sno);System.out.println(pno);System.out.println(jno);System.out.println(qty);System.out.println(------------);}// 7.释放资源rs.close();stmt.close(); //关闭执行sql的对象conn.close(); //关闭连接} } PreparedStatement - SQL注入演示 PreparedStatement 作用 预编译SQL语句并执行预防SQL注入问题 SQL注入 SQL注入是通过操作输入来修改事先定义的SQL语句用以达到执行代码对服务器进行攻击的方法。 进行这个案例我们要先创建一张用户表 CREATE TABLE user (uid bigint NOT NULL AUTO_INCREMENT COMMENT 用户uid, login_name varchar(20) NOT NULL COMMENT 登录用户名,login_pwd varchar(32) NOT NULL COMMENT 登录密码,PRIMARY KEY (uid) ) package Login;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;/*** AuthorAniu* Date2023/2/26 15:36* description TODO*/ public class UserLogin {public static void main(String[] args) throws Exception {Class.forName(com.mysql.cj.jdbc.Driver);String url jdbc:mysql://127.0.0.1:3306/myclasswork;String name root;String password ...;Connection conn DriverManager.getConnection(url,name,password);// 模拟用户输入的值String login_name aniu;String login_pwd 123456;String sql select * from user where login_name login_name and login_pwd login_pwd ;System.out.println(sql);Statement stmt conn.createStatement();ResultSet rs stmt.executeQuery(sql);// 判断是否登录成功if(rs.next()){System.out.println(登录成功);}else{System.out.println(登录失败);}} }现在我们模拟sql注入即使密码错误也可以登录成功 public static void main(String[] args) throws Exception {Class.forName(com.mysql.cj.jdbc.Driver);String url jdbc:mysql://127.0.0.1:3306/myclasswork;String name root;String password ...;Connection conn DriverManager.getConnection(url,name,password);// 模拟用户输入的值(演示sql注入用户名和密码随便写String login_name aniu666;String login_pwd or 1 1;String sql select * from user where login_name login_name and login_pwd login_pwd ;System.out.println(sql);Statement stmt conn.createStatement();ResultSet rs stmt.executeQuery(sql);// 判断是否登录成功if(rs.next()){System.out.println(登录成功);}else{System.out.println(登录失败);}// 释放资源rs.close();stmt.close(); //关闭执行sql的对象conn.close(); //关闭连接}即使用户明和密码错误我们也可以登录这是因为这个sql是恒等式所导致的 那么怎么避免这个问题呢就是通过这个PreparedStatement来解决 public class UserLogin {public static void main(String[] args) throws Exception {Class.forName(com.mysql.cj.jdbc.Driver);String url jdbc:mysql://127.0.0.1:3306/myclasswork;String name root;String password ...;Connection conn DriverManager.getConnection(url,name,password);// 模拟用户输入的值(演示sql注入用户名和密码随便写String login_name aniu666;String login_pwd or 1 1;String sql select * from user where login_name ? and login_pwd ?;PreparedStatement pstmt conn.prepareStatement(sql);// 设置的值pstmt.setString(1,login_name);pstmt.setString(2,login_pwd);ResultSet rs pstmt.executeQuery();// 判断是否登录成功if(rs.next()){System.out.println(登录成功);}else{System.out.println(登录失败);}// 7.释放资源rs.close();pstmt.close(); //关闭执行sql的对象conn.close(); //关闭连接} }此时则显示登陆失败避免了sql注入本质上就是将sql中单引号进行了转义 ’ \’ 使用prepareStatement预编译sql性能更高当然你要开启预编译给Connection的url加参数 String url jdbc:mysql://127.0.0.1:3306/myclasswork?useServerPrepStmtstrue;结语 如果你觉得博主写的还不错的话可以关注一下当前专栏博主会更完这个系列的哦也欢迎订阅博主的其他好的专栏。 系列专栏 软磨 css 硬泡 javascript flask框架快速入门
http://www.dnsts.com.cn/news/222387.html

相关文章:

  • 福建省建建设行业信用评分网站广告设计总结
  • 做商业地产常用的网站中企动力销售陪酒多吗
  • 外贸建站seo网站开发使用软件环境
  • 三合一建站网站设计公司企业标语
  • 织梦网站模板做的网站有哪些网站建设实训结论和体会
  • 上海icp新增网站wordpress 头像不见了
  • 可以免费做试卷题目的网站h5网站模板下载
  • 淘宝网站怎么做适配山东网站备案拍照
  • 河南省建设厅官网查询seo网站建站公司的主页
  • 广州城乡建设部网站首页总部在上海的世界500强企业
  • 广西建设厅建管处网站淘宝网站是谁做的好处
  • 微信文章转网站wordpress眉县做网站
  • 靖江网站开发品牌设计流程
  • 名字设计网站企点官网网址
  • 免费网站建设链接很长 知呼展厅设计说明万能模板
  • 浙江有限公司网站在百度做推广需要网站
  • 网站开发与实践题库网站301跳转有坏处吗
  • 网站推广的方法和途径租二级目录做网站
  • 网站开发英语翻译网站建设与管理方向
  • wap网站开发视频教程做电影网站要很大的主机空间吗
  • seo建设网站网站建设需求方案pdf
  • 网站转化怎么做济南网站建设网络公司
  • 东莞阳光网招聘官网东莞市seo网络推广服务机构
  • 优秀国内个人网站网址网店代运营公司哪家强
  • SEO做得最好的网站推广电影链接赚佣金
  • 正在建设的网站网站建设中的安全问题
  • 做产品推广哪个网站好wordpress 邮件差价
  • 做网站怎样赚到钱北京4网站建设
  • 广西明电建设有限公司网站上海的软件外包公司
  • 上海崇明林业建设有限公司网站wordpress恢复默认