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

河北建设厅网站官网做宣传册从哪个网站找素材

河北建设厅网站官网,做宣传册从哪个网站找素材,星子网站建设,韩雪冬个人网站 北京二.JDBC知识点全面总结1#xff1a;JDBC实战编写CRUD 1.JDBC重要接口#xff1f; 2.Driver和DriverMangement的关系#xff1f; 3.JAVA与数据库连接 4.JAVA中使用statement来执行sql语句时#xff0c;拼接字符串的sql注入问题#xff1f; 5.使用preparedstatement进行…二.JDBC知识点全面总结1JDBC实战编写CRUD 1.JDBC重要接口 2.Driver和DriverMangement的关系 3.JAVA与数据库连接 4.JAVA中使用statement来执行sql语句时拼接字符串的sql注入问题 5.使用preparedstatement进行增删改查 6.自定义通用查询方法 未更新 二.JDBC知识点全面总结1JDBC实战编写CRUD 1.JDBC重要接口 ①装载驱动接口 Driver接口对接MySQL提供的Driver具体实现类DriverManager类封装Driver实例。 ②连接 Connetion接口获取和MySQL服务器的连接获取connection实例的方式 driver.connect(); DriverManger.getConnection(); ③执行SQL语句 Statement类执行静态SQL语句并接受返回结果 Statement类SQL语句无参数 PreparedStatement类继承Statement类SQL语句有参数防止sql注入执行方法 execute()运行无返回值 executeQuery()运行select语句有返回集 executeUpdate()运行Insert/delete/Update语句返回影响的行数 2.Driver和DriverManger的关系 ①对比 Driver是所有JDBC驱动类实现的接口DriverMangement封装Driver ②使用 Driver创建驱动实例后直接获取连接 driver.connect()DriverMangement初始化注册Driver后直接获取连接 DriverMangement.getConnetion ③实战使用 Class.forName()加载类而且执行静态代码快。数据库驱动Driver中有静态代码块即注册驱动到DriverMangement故实战可以使用DriverMangement在加载驱动类后直接获取连接。 3.JAVA与数据库连接 ①获取连接注意事项 properties的编写注意直接连接的具体数据库class.forName在加载驱动类时执行类中静态代码已经从DriverMangement中注册初始化 ②获取连接代码 mytest是具体数据库名称 driverClasscom.mysql.jdbc.Driver urljdbc:mysql://localhost:13306/mytest?useUnicodetruecharacterEncodingutf8useSSLfalse userroot passwordabc123注意我的mysql版本是5.7的 dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.37/version/dependencypackage com.likejin;import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Statement; import java.util.Properties;public class MyTest2 {public static void main(String[] args) throws Exception {InputStream resourceAsStream MyTest2.class.getClassLoader().getResourceAsStream(jdbc.properties);Properties properties new Properties();properties.load(resourceAsStream);String driverClass properties.getProperty(driverClass);String url properties.getProperty(url);String user properties.getProperty(user);String password properties.getProperty(password);Class.forName(driverClass);Connection connection DriverManager.getConnection(url, user, password);} }4.JAVA中使用statement来执行sql语句时拼接字符串的sql注入问题 ①statement 是通过获取连接之后利用其来执行sql语句原理字符串拼接由于数据必须通过’来包含 ②sql注入问题 实例场景判断学生在数据库中是否有。代码 package com.likejin;import com.likejin.util.Utils;import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner;public class MyTest3 {public static void main(String[] args) throws Exception {Connection conn Utils.getconn();Statement statement conn.createStatement();Scanner scanner new Scanner(System.in);System.out.println(请输入ID);String id scanner.nextLine();System.out.println(请输入年龄);String age scanner.nextLine();String sql select * from student where id id and age age;System.out.println(sql);ResultSet resultSet statement.executeQuery(sql);if(resultSet.next()){System.out.println(您找的学生在这个班级);}else{System.out.println(您找的学生不在这个班级);}} } 数据表 正常情况下 sql注入问题加上单引号 sql注入 不加单引号 5.使用preparedstatement进行增删改查 ①preparedstatement的方法 setObject 来填充占位符execute() 来执行增删改返回boolean类型是否成功executeQuery()来执行查返回ResultSet结果集 ②ResultSet的方法 next() 判断下一个是否存在存在指正下移返回true不存在指正不动返回falsegetObject(i) 参数为行数据的第几列返回的是某一行数据的某一列的具体数值getMetaData()获取到ResultSetMetaData类型该类型有方法 getColumnCount()返回具体列数 getColumnName(i)返回某一列的名称 ②注意事项 注意数据库中列从第一列开始而JAVA数据一般从0开始故计算时注意1。注意sql注入时参数也是从第一个开始的。注意封装类时需要设置属性为public否则无法利用反射初始化值。注意如果要编写未知数据的查找封装为该类的list需要知道数据的类型 可以用泛型方法来传入封装的数据类型 Class T clazz T t ②代码 package com.likejin.util;import com.likejin.MyTest2; import com.likejin.Student;import java.io.InputStream; import java.lang.reflect.Field; import java.sql.*; import java.util.ArrayList; import java.util.List; import java.util.Properties;public class Utils {public static Connection getconn() throws Exception {InputStream resourceAsStream MyTest2.class.getClassLoader().getResourceAsStream(jdbc.properties);Properties properties new Properties();properties.load(resourceAsStream);String driverClass properties.getProperty(driverClass);String url properties.getProperty(url);String user properties.getProperty(user);String password properties.getProperty(password);Class.forName(driverClass);Connection connection DriverManager.getConnection(url, user, password);return connection;}//针对学生表的通用更新操作public static boolean updateData(String sql, Object... args) throws Exception {Connection conn getconn();PreparedStatement preparedStatement conn.prepareStatement(sql);for (int i 0; i args.length; i) {preparedStatement.setObject(i 1, args[i]);}boolean execute preparedStatement.execute();preparedStatement.close();conn.close();return execute;}//针对学生表的通用查询操作已知列数已知对象已知列名)public static List selectData(String sql, Object... args) throws Exception {Connection conn getconn();PreparedStatement preparedStatement conn.prepareStatement(sql);for (int i 0; i args.length; i) {preparedStatement.setObject(i 1, args[i]);}ResultSet resultSet preparedStatement.executeQuery();ArrayListStudent students new ArrayList();int i 0;while (resultSet.next()) {Student student new Student();student.setId(resultSet.getInt(1));student.setAge(resultSet.getInt(2));student.setGrade(resultSet.getInt(3));i i 1;students.add(student);}return students;}//针对任何表的查询操作public static T ListT selectData(ClassT clazz,String sql, Object... args) throws Exception {Connection conn getconn();PreparedStatement preparedStatement conn.prepareStatement(sql);for (int i 0; i args.length; i) {preparedStatement.setObject(i 1, args[i]);}ArrayListT ts new ArrayList();ResultSet resultSet preparedStatement.executeQuery();ResultSetMetaData metaData resultSet.getMetaData();int columnCount metaData.getColumnCount();while(resultSet.next()){T t clazz.newInstance();for(int i 0;icolumnCount;i){Field dd clazz.getDeclaredField(metaData.getColumnName(i1));dd.set(t,resultSet.getObject(i1));}ts.add(t);}return ts;} }6.自定义通用查询方法 ①缺点 运行时类和类类型不同无法在方法中就强转为需要的类类型。 stuent.getClass() 或者Student.class都和 Student不同故如果想获得类类型就需要运用泛型。举例说明 如果想在传入方法中获取该类的类型如何获取 利用泛型 T t或者 ClassT clazz都可获取类型为T 利用Object o 获取不到类类型最多获取运行时类的实例故需要在获取方法的返回值后手动进行强转。对象获取到类类型的数据是什么为什么不能强转 即最多获取到类类型字符串 String typeName o1.getClass().getTypeName();由于编译的限制无法去利用字符串强转对象。 ②代码 //针对任何表的查询操作public static List selectData5(Object o,String sql, Object... args) throws Exception {//获取连接拿到配置文件中的内容注册driverDriverMangement获取连接InputStream resourceAsStream Utils.class.getClassLoader().getResourceAsStream(jdbc.properties);Properties properties new Properties();properties.load(resourceAsStream);final String url properties.getProperty(url);String user properties.getProperty(user);String password properties.getProperty(password);Class.forName(properties.getProperty(driverClass));Connection connection DriverManager.getConnection(url, user, password);//连接的sql注入获取结果集PreparedStatement preparedStatement connection.prepareStatement(sql);for(int i 0;iargs.length;i){preparedStatement.setObject(i1,args[i]);}ResultSet resultSet preparedStatement.executeQuery();//处理结果集利用反射获取结果的列表ResultSetMetaData metaData resultSet.getMetaData();ArrayList arrayList new ArrayList();int columnCount metaData.getColumnCount();while(resultSet.next()){Object o1 o.getClass().newInstance();for(int i 0;icolumnCount;i){String columnName metaData.getColumnName(i 1);Field field o1.getClass().getField(columnName);field.set(o1, resultSet.getObject(i1));}//无法转换为目标对象的类//因为o.getClass获取的是运行时类的类型而不是实际类类型//故实际使用时需要转换类型输出arrayList.add(o1);}return arrayList;}public static void main(String[] args) throws Exception {String sql select * from student where id? ;List students1 null;List list selectData5(new Student(), sql, 10);Iterator iterator list.iterator();while(iterator.hasNext()){System.out.println((Student)iterator.next());}}未更新
文章转载自:
http://www.morning.wlqbr.cn.gov.cn.wlqbr.cn
http://www.morning.jygsq.cn.gov.cn.jygsq.cn
http://www.morning.fwdln.cn.gov.cn.fwdln.cn
http://www.morning.kqzt.cn.gov.cn.kqzt.cn
http://www.morning.jngdh.cn.gov.cn.jngdh.cn
http://www.morning.zyrp.cn.gov.cn.zyrp.cn
http://www.morning.wfjyn.cn.gov.cn.wfjyn.cn
http://www.morning.qhqgk.cn.gov.cn.qhqgk.cn
http://www.morning.rqfnl.cn.gov.cn.rqfnl.cn
http://www.morning.lhwlp.cn.gov.cn.lhwlp.cn
http://www.morning.rpljf.cn.gov.cn.rpljf.cn
http://www.morning.jxltk.cn.gov.cn.jxltk.cn
http://www.morning.tkryt.cn.gov.cn.tkryt.cn
http://www.morning.httpm.cn.gov.cn.httpm.cn
http://www.morning.bzfwn.cn.gov.cn.bzfwn.cn
http://www.morning.mxbks.cn.gov.cn.mxbks.cn
http://www.morning.bfjyp.cn.gov.cn.bfjyp.cn
http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn
http://www.morning.tgydf.cn.gov.cn.tgydf.cn
http://www.morning.rnxw.cn.gov.cn.rnxw.cn
http://www.morning.mqfhy.cn.gov.cn.mqfhy.cn
http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn
http://www.morning.mmhaoma.com.gov.cn.mmhaoma.com
http://www.morning.jkdtz.cn.gov.cn.jkdtz.cn
http://www.morning.yrpd.cn.gov.cn.yrpd.cn
http://www.morning.jgcyn.cn.gov.cn.jgcyn.cn
http://www.morning.cwqrj.cn.gov.cn.cwqrj.cn
http://www.morning.ryrgx.cn.gov.cn.ryrgx.cn
http://www.morning.dcccl.cn.gov.cn.dcccl.cn
http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn
http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn
http://www.morning.dhmll.cn.gov.cn.dhmll.cn
http://www.morning.wjrtg.cn.gov.cn.wjrtg.cn
http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn
http://www.morning.rcdmp.cn.gov.cn.rcdmp.cn
http://www.morning.jzfrl.cn.gov.cn.jzfrl.cn
http://www.morning.ckhpg.cn.gov.cn.ckhpg.cn
http://www.morning.cczrw.cn.gov.cn.cczrw.cn
http://www.morning.gklxm.cn.gov.cn.gklxm.cn
http://www.morning.trrrm.cn.gov.cn.trrrm.cn
http://www.morning.ndxmn.cn.gov.cn.ndxmn.cn
http://www.morning.wqmpd.cn.gov.cn.wqmpd.cn
http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn
http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn
http://www.morning.jhxtm.cn.gov.cn.jhxtm.cn
http://www.morning.hxftm.cn.gov.cn.hxftm.cn
http://www.morning.csjps.cn.gov.cn.csjps.cn
http://www.morning.ldynr.cn.gov.cn.ldynr.cn
http://www.morning.btwrj.cn.gov.cn.btwrj.cn
http://www.morning.pnmgr.cn.gov.cn.pnmgr.cn
http://www.morning.cctgww.cn.gov.cn.cctgww.cn
http://www.morning.cfhwn.cn.gov.cn.cfhwn.cn
http://www.morning.c7497.cn.gov.cn.c7497.cn
http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn
http://www.morning.zgdnd.cn.gov.cn.zgdnd.cn
http://www.morning.lngyd.cn.gov.cn.lngyd.cn
http://www.morning.jqpq.cn.gov.cn.jqpq.cn
http://www.morning.qgghr.cn.gov.cn.qgghr.cn
http://www.morning.flpjy.cn.gov.cn.flpjy.cn
http://www.morning.clxpp.cn.gov.cn.clxpp.cn
http://www.morning.rbxsk.cn.gov.cn.rbxsk.cn
http://www.morning.lflnb.cn.gov.cn.lflnb.cn
http://www.morning.hlmkx.cn.gov.cn.hlmkx.cn
http://www.morning.sfhjx.cn.gov.cn.sfhjx.cn
http://www.morning.nqnqz.cn.gov.cn.nqnqz.cn
http://www.morning.ltxgk.cn.gov.cn.ltxgk.cn
http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn
http://www.morning.rfxyk.cn.gov.cn.rfxyk.cn
http://www.morning.lstmg.cn.gov.cn.lstmg.cn
http://www.morning.dtrz.cn.gov.cn.dtrz.cn
http://www.morning.yzfrh.cn.gov.cn.yzfrh.cn
http://www.morning.nmfwm.cn.gov.cn.nmfwm.cn
http://www.morning.kgltb.cn.gov.cn.kgltb.cn
http://www.morning.wqpr.cn.gov.cn.wqpr.cn
http://www.morning.fmdvbsa.cn.gov.cn.fmdvbsa.cn
http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn
http://www.morning.xldpm.cn.gov.cn.xldpm.cn
http://www.morning.wngpq.cn.gov.cn.wngpq.cn
http://www.morning.cwgfq.cn.gov.cn.cwgfq.cn
http://www.morning.kdpal.cn.gov.cn.kdpal.cn
http://www.tj-hxxt.cn/news/281066.html

相关文章:

  • 个人网站开发如何赚钱app推广策划方案
  • 营销型网站建设软件欧洲站vat激活
  • 建站制作企业惠州仲恺住房和城乡建设局网站
  • 汉阳网站推广优化永久域名最新网站
  • seo关键词排名优化制作怎么优化一个网站
  • 做网站的主流技术课程建设类教学成果奖网站
  • 广州做网站基本流程网站建设028
  • 佛山网站制作哪家好网上做流量对网站有什么影响
  • 专业做网站排名的人html制作新闻页面代码
  • 沈阳模板网站制作国展网站建设
  • asp.net做的小网站360浏览器打开是2345网址导航
  • 山东网站建设制作公司济南高端网站设计建设
  • 网站怎么做成app高端平面设计网站
  • 青海省高速公路建设管理局网站单职业传奇网站
  • 怎样用阿里云服务器做网站wordpress用户组
  • 中国建设银行支付网站上海外贸网站推广公司
  • 网站ftp有什么用wordpress搭建知识库
  • 网上注册网站要钱吗做内衣的网站
  • 让你的静态网站 做后台jsp做简单校园网站
  • 用花生壳做网站酷炫网站欣赏
  • 响应式网站怎么做mip给公司做网站费用
  • 国内怎么打开WordPress网站建网站找哪个平台好呢
  • 开发公司安全管理制度四川旅游seo整站优化
  • 西安志成网站建设公司网站开发维护需要哪些岗位
  • 网站怎样做银联支付接口wordpress网站制作
  • 南京建设网站费用oppo官方网站
  • 收费网站开发小程序做网站登录
  • 绿化面积 建设网站比价网站源码整站程序
  • 淘宝优惠劵网站怎么做网站运营目的
  • 女生做网站后期维护工作好吗手机网站要备案吗