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

自己做的网站如何让外网访问长春百度关键词搜索

自己做的网站如何让外网访问,长春百度关键词搜索,wordpress教育模板,郑州58同城招聘网最新招聘一、JDBC 1.JDBC概述 1.1什么是jdbc Java DataBase Connectivity是一种用于执行SQL语句的Java API#xff0c;它由一组用Java语言编写的类和接口组成。通过这些类和接口#xff0c;JDBC把SQL语句发送给不同类型的数据库进行处理并接收处理结果。 1.2jdbc的作用 提供java…一、JDBC 1.JDBC概述 1.1什么是jdbc Java DataBase Connectivity是一种用于执行SQL语句的Java API它由一组用Java语言编写的类和接口组成。通过这些类和接口JDBC把SQL语句发送给不同类型的数据库进行处理并接收处理结果。 1.2jdbc的作用 提供java 操作不同数据库的技术 1.3JDBC两大类 对Java开发人员而言是API对数据库提供商而言是接口。 面向开发人员作为APIJDBC为程序开发提供标准的接口。 面向数据库厂商作为接口,让数据库厂商按标准方法来实现数据库连接与操作(数据库驱动程序)。 1.4JDBC工作过程 2.Jdbc数据库连接 下载Jar 下载jarhttps://blog.csdn.net/qq_35368140/article/details/131246017 引入Jar (包括jdbc 驱动程序 ) 引入jarhttps://blog.csdn.net/qq_43599841/article/details/127368168%5D JDBC 使用步骤 ​ 1. 加载驱动 (只会运行一次:static) ​ 2. 获得链接对象 Connection ​ 3. 获得执行对象 Statement ​ 4. 执行sql并获得结果集(ResultSet) ​ 5. 处理结果集 6.释放资源 public static void main(String[] args) throws SQLException {//1.注册驱动 告诉jdbc我们使用哪一个数据库厂商的驱动//驱动管理器专门注册驱动(需要传递一个驱动对象)DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2. 建立驱动连接//url:链接数据库的地址 jdbc:mysql://localhost:3306/数据库的名字//user:用户名//password:密码//面向接口编程Connection connection (Connection) DriverManager.getConnection(jdbc:mysql://localhost:3306/j352, root, );//3.创建向数据库发送sql的statement对象Statement st connection.createStatement();//4.发送sql后获得一个封装了查询结果的ResultSet对象ResultSet rs st.executeQuery(select * from student limit 1);//5.解析ResultSet对象获得结果if(rs.next()) {System.out.println(id:rs.getObject(Id));System.out.println(name:rs.getObject(StudentName));System.out.println(age:rs.getObject(age));}//释放资源rs.close();st.close();connection.close();}二、Api详解 1 注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个 导致驱动被注册2次。 强烈依赖数据库的驱动jar 解决办法 注册驱动的第二种方式 Class.forName(“com.mysql.jdbc.Driver”); 2 获取链接 static Connection getConnection(String url, String user, String password)试图建立到给定数据库 URL 的连接。参数说明url 需要连接数据库的位置网址 user用户名 password 密码例如getConnection(jdbc:mysql://localhost:3306/数据库名称, root, );URL:SUN公司与数据库厂商之间的一种协议。jdbc:mysql://localhost:3306/数据库名称协议 子协议 IP : 端口号 数据库常用数据库URL地址的写法 Oracle写法jdbc:oracle:thin:localhost:1521:sid SqlServer jdbc:microsoft:sqlserver://localhost:1433; DatabaseNamesid MySql jdbc:mysql://localhost:3306/sid Mysql的url地址的简写形式 jdbc:mysql:///sid 常用属性useUnicodetruecharacterEncodingUTF-8接口的实现在数据库驱动中。所有与数据库交互都是基于连接对象的。 Statement createStatement(); //创建操作sql语句的对象 3 API详解java.sql.Statement接口: 操作sql语句并返回相应结果 String sql “某SQL语句”; 获取Statement语句执行平台Statement stmt con.createStatement(); 常用方法 int executeUpdate(String sql); --执行insert update delete语句. ResultSet executeQuery(String sql); --执行select语句. boolean execute(String sql); --仅当执行select并且有结果时才返回true执行其他的语句返回false. //1.注册驱动Class.forName(com.mysql.jdbc.Driver);//2.获取链接Connection conn DriverManager.getConnection(jdbc:mysql://localhost:3306/jdbc,root,root);//3.获取代表向数据库发送sql的statement对象Statement st conn.createStatement();String sqlinsert into student(name,age) values(奥利给,20);//4.发送sql//返回影响的行数 大于0代表执行成功int result st.executeUpdate(sql);if(result0) {System.out.println(插入成功);}//5.释放资源st.close();conn.close();4 API详解处理结果集注执行insert、update、delete无需处理 ResultSet实际上就是一张二维的表格我们可以调用其boolean next()方法指向某行记录当第一次调用next()方法 时便指向第一行记录的位置这时就可以使用ResultSet提供的getXXX(int col)方法(与索引从0开始不同个列从1 开始)来获取指定列的数据 rs.next();//指向第下一行 rs.getObject(1);//获取第一行第一列的数据 常用方法 n Object getObject(int index) / Object getObject(String name) 获得任意对象 n String getString(int index)/ String getString(String name) 获得字符串 n int getInt(int index)/int getInt(String name) 获得整形 n double getDouble(int index)/ double getDouble(String name) 获得双精度浮点型 5 释放资源 与IO流一样使用后的东西都需要关闭关闭的顺序是先得到的后关闭后得到的先关闭。 rs.close(); //结果集stmt.close(); //statement对象con.close(); //连接对象6 关闭异常处理 public static void main(String[] args) throws Exception {//1.注册驱动Class.forName(com.mysql.jdbc.Driver);//2.获取链接Connection conn null;Statement stnull;ResultSet rsnull;try {//2.获取链接conn DriverManager.getConnection(jdbc:mysql://localhost:3306/jdbc,root,root);//3.获取代表向数据库发送sql的statement对象st conn.createStatement();String sqlselect id,name,age from student;//4.发送sqlrs st.executeQuery(sql);//定义集合封装Student数据ListStudent listnew ArrayListStudent();while(rs.next()) {//查询出来的结果封装到对象中Student snew Student();s.setId(rs.getInt(id));s.setAge(rs.getInt(age));s.setName(rs.getString(name));list.add(s);}System.out.println(list);}finally {//5.释放资源//关闭资源之前一定要判断if(rs!null) {try {rs.close();}catch (Exception e) {e.printStackTrace();}//让jvm回收没有被关闭的rs对象rsnull;}if(st!null) {try {st.close();}catch (Exception e) {e.printStackTrace();}stnull;}if(conn!null) {try {conn.close();}catch (Exception e) {e.printStackTrace();}connnull;}}}}三、封装JDBC 提交公共方法获取连接释放资源将这两方法提到一个类中将数据库连接url 用户名密码放到文件中把它变成可以配置的 步骤1步骤2 public class JdbcUtils {static {//1.注册驱动 告诉jdbc我们使用哪一个数据库厂商的驱动try {Class.forName(com.mysql.jdbc.Driver);} catch (ClassNotFoundException e) {throw new RuntimeException(e);}}// 项目一旦交付// 公司乙 做项目产品 》 给别人做项目甲// 部署运维-》 配置文件public static Connection GetConnection() throws ClassNotFoundException, SQLException {//2.通过驱动管理器获取一个链接Connection connection (Connection) DriverManager.getConnection(jdbc:mysql://localhost:3306/j352, root, );return connection;}public static void release(Connection conn, Statement sm , ResultSet rs){if(rs!null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs null; //让jvm来回收它}if(sm!null){try {sm.close();} catch (SQLException e) {e.printStackTrace();}sm null; //让jvm来回收它}if(conn!null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn null; //让jvm来回收它}} }步骤3 将数据库连接url 用户名密码放到文件中把它变成可以配置的 Properties 使用properties后的代码 driverClassNamecom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/j352 usernameroot passwordpublic class JdbcUtils {private static Properties properties new Properties();static {//1.注册驱动 告诉jdbc我们使用哪一个数据库厂商的驱动try {//1.1 读取文件中的信息FileInputStream in null;try {in new FileInputStream(src\\jdbc.properties);} catch (FileNotFoundException e) {throw new RuntimeException(e);}// 1.2 Properties对象中有一个load方法properties.load(in); //将文件相关的信息加载到properties 对象中Class.forName(properties.getProperty(driverClassName));} catch (ClassNotFoundException e) {throw new RuntimeException(e);} catch (IOException e) {throw new RuntimeException(e);}}// 项目一旦交付// 公司乙 做项目产品 》 给别人做项目甲// 部署运维-》 配置文件public static Connection GetConnection() throws ClassNotFoundException, SQLException, IOException {// 读取文件中的数据 jdbc.properties 进行使用//String getProperty(String key)//2.通过驱动管理器获取一个链接Connection connection (Connection) DriverManager.getConnection(properties.getProperty(url),properties.getProperty(username), properties.getProperty(password));return connection;}public static void release(Connection conn, Statement sm , ResultSet rs){if(rs!null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs null; //让jvm来回收它}if(sm!null){try {sm.close();} catch (SQLException e) {e.printStackTrace();}sm null; //让jvm来回收它}if(conn!null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn null; //让jvm来回收它}} }四、SQL注入 登录 如果执行的sql语句是用字符串进行拼接, 就容易出sql 注入 如何防止sql注入 输入时不让它输入特殊字符 正则只输入字母或数字 执行sql时不用sql拼接而使用参数化查询 public int login(String username, String pwd) {int result 0;Connection conn null; //创建连接 // Statement statement null;PreparedStatement pst null;ResultSet resultSet null;try {conn JdbcUtils.GetConnection();// 查询String sql select * from user where username? and pwd? ;pst conn.prepareStatement(sql);pst.setString(1,username);pst.setString(2,pwd);System.out.println(sql);resultSet pst.executeQuery(sql);if (resultSet.next()) {result 1;}} catch (ClassNotFoundException e) {result 2;e.printStackTrace(); // throw new RuntimeException(e);} catch (SQLException e) {result 3;e.printStackTrace();} catch (IOException e) {result 4;e.printStackTrace();}finally {JdbcUtils.release(conn,pst,resultSet);}return result;} 五、Jdbc控制事务 1.java中事务的控制 conn.setAutoCommit(false) start transaction; conn.commit() commit; conn.rollback(); rollback; public class TransactionDemo {public static void main(String[] args) {// 1. 获取连接Connection connection null;PreparedStatement statement null;ResultSet resultSet null;try{connection JdbcUtils.GetConnection();//2. 事务开启connection.setAutoCommit(false);String sql update user set age 18 where usernameadmin;statement connection.prepareStatement(sql);statement.executeUpdate(); //执行sql// int x 1/ 0 ;String sql2 update user set age 28 where usernamedoubleyong;statement connection.prepareStatement(sql2);statement.executeUpdate(); //执行sql// 3。提交事务connection.commit();}catch (Exception e){//关闭事务try {connection.rollback(); // connection.commit();} catch (SQLException ex) {throw new RuntimeException(ex);}e.printStackTrace();}finally {JdbcUtils.release(connection,statement,resultSet);}} } 2.事务的回滚点 回滚到指定位置 savepoint conn.setSavepoint(); public static void main(String[] args) {// 1. 获取连接Connection connection null;PreparedStatement statement null;ResultSet resultSet null;Savepoint savepointnull;try{connection JdbcUtils.GetConnection();//2. 事务开启connection.setAutoCommit(false);String sql update user set age 66 where usernameadmin;statement connection.prepareStatement(sql);statement.executeUpdate(); //执行sql//设置一个事务的回滚点savepoint connection.setSavepoint();int x 1/ 0 ;String sql2 update user set age 77 where usernamedoubleyong;statement connection.prepareStatement(sql2);statement.executeUpdate(); //执行sql// 3。提交事务connection.commit();}catch (Exception e){//关闭事务try {connection.rollback(savepoint); //回滚到指定事物点connection.commit(); //回滚后如何 还是有sql执行必须 加上commit } catch (SQLException ex) {throw new RuntimeException(ex);}e.printStackTrace();}finally {JdbcUtils.release(connection,statement,resultSet);}}
http://www.pierceye.com/news/103886/

相关文章:

  • 购物网站中加减数目的怎么做仿站违法吗
  • 代理ip访问网站局门户网站的建设
  • 建网站业务如何开展阳江房产信息网官网
  • 企业网站建设套餐费用网站开发完后期维护重要吗
  • 3营销型网站建设湖北短视频seo推荐
  • 鸿运通网站建设未成年怎么在网上卖东西
  • 郑州网站推广排名公司商会小程序开发一个多少钱啊
  • wordpress单页网站在本页跳转心理网站的建设与维护
  • 哪里可以做网站系统企业管理官网登录入口
  • iis7 网站404错误信息官网下载软件
  • 广州建设网站平台广东seo网站推广代运营
  • 网站 优化 关键字qq官网登录
  • 建设银行园区公积金管理中心网站地方门户网站推广
  • 桂林市网站设计wordpress远程数据库
  • 网站建设多钱怎么做网上卖菜网站
  • 响应式电商网站网站设计常见问题
  • 爱常德网凡科网站可以做seo优化
  • 建设银行手机银行官方网站小程序app公众号的区别
  • 彩票网站维护需要几天企业展示网站建设需要做什么
  • cms网站后台模版惠州网站设计哪家好
  • 海南智能网站建设设计湘潭学校网站建设 x磐石网络
  • 网站建设的入门书籍表格我做视频网站
  • 数据库跟网站内容青岛公司做网站的价格
  • 成都市金牛区建设和交通局网站营销专业网站
  • 免费的视频网站如何赚钱wordpress推广系统
  • 上海酒店团购网站建设网站建设风险分析
  • 做网站的抬头怎么做南昌app定制
  • 深圳市企业网站建设企业品牌设计
  • 做图网站有哪些内容惠州抖音推广
  • 郑州中原区建设局网站公司网站建设素材