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

网站建设零基础自学视频教程好看的美食怎么做视频网站

网站建设零基础自学视频教程,好看的美食怎么做视频网站,网站建设网站模板,模板网站官网首先创建工程,导入jar包 1.注册驱动 //注册驱动//利用反射,较为灵活Class.forName("com.mysql.cj.jdbc.Driver");/**问题:会注册俩次驱动* 解决方案:只触发静态代码块* 触发静态代码块:* 类加载机制&…

首先创建工程,导入jar包

1.注册驱动

//注册驱动//利用反射,较为灵活Class.forName("com.mysql.cj.jdbc.Driver");/**问题:会注册俩次驱动* 解决方案:只触发静态代码块* 触发静态代码块:*      类加载机制:类加载的时候,会触发静态代码块*      加载【class文件->jvm虚拟机的class对象】*      连接【验证(检查文件类型)->准备(静态变量默认值)->解析(触发静态代码块)】*      初始化(静态属性赋真实值)* 触发类加载:*      1.new关键字*      2.调用静态方法*      3.调用静态属性*      4.接口1.8 default默认实现*      5.反射*      6.子类触发父类*      7.程序的入口main*///DriverManager.registerDriver(new Driver());//换了个版本就不行了,不灵活//new Driver();

2.获取数据库连接

//1.
Connection conn = DriverManager.getConnection(url, username, password);
//2.Properties info = new Properties();info.put("user","root");info.put("password","root");Connection connection1 = DriverManager.getConnection();
//3.//参数:jdbc:数据库软件名://ip:port/数据库?key=value&key=value//例如: jdbc:mysql://localhost:3306/table1?user=root&password=rootConnection connection2 = DriverManager.getConnection();

核心属性

  1. 数据库软件所在的主机的ip地址:localhost | 127.0.0.1
  2. 数据库软件所在的主机的端口号 :3306
  3. 所连接的具体库
  4. 连接的账号 username
  5. 连接的密码 password
  6. 可选的信息

url        语法:[mysql,oracle]://ip地址|主机名:port端口号/数据库名

            例如:"jdbc:mysql://127.0.0.1:3306/table1"

3.定义sql

Statement stmt = conn.createStatement();
//conn是获取的数据库连接

作用:可以发送sql语句到数据库,并返回结果

SQL分类:

  • DDL(容器创建,修改,删除)
  • DML(插入,修改,删除)
  • DQL(查询)
  • DCL(权限控制)
  • TPL事务控制语言)
 int   executeUpdate(String sql);

执行DML、DDL语句
 返回值:DML语句影响的行数;DDL语句执行后,执行成功也可能返回0;

 ResultSet   executeQuery(sql);

执行DQL语句
 返回值:ResultSet结果集对象;

4.发送sql语句

//发送sql语句ResultSet resultSet = stmt.executeQuery(sql);

5.处理数据

boolean flag = resultSet.next();
//逐行获取数据
resultSet,get类型(String columnLabel | int columnIndex);//columnLabel :列名 如果有别名,写别名//columnIndex : 列的下角标获取  从左向右  从1开始

6.关闭资源

        //释放资源resultSet.close();stmt.close();conn.close();

优化

preparedstatment(利用预编译)

作用:防止sql注入攻击

  1. 编写SQL语句结果        不包含动态值的部分的语句,动态之部分使用占位符  ?  替代  注意:  ?  只能替代动态值
  2. 创建preparedStatement,并传入动态值
  3. 动态值  占位符  赋值  ?  单独赋值即可
  4. 发送SQL语句即可,并获取返回结构
        String sql = "select * from t_user where account = ? and password = ?;";PreparedStatement preparedStatement = connection.prepareStatement(sql);//单独的占位符进行赋值/*** 参数1:index  占位符的位置  从左向右数 从1开始  账号  ? 1* 参数2:object  占位符的值  可以设置为任何类型的数据,避免了我们拼接和类型更加丰富*/preparedStatement.setObject(1,account);preparedStatement.setObject(2,password);

练习(增删查改)

package com.ln.jdbc;import com.mysql.cj.util.DnsSrv;
import org.junit.Test;import java.sql.*;
import java.util.*;public class StatementUserLogin {@Testpublic void testInsert() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/tabe1","root","@950908964xLN,");String sql = "insert into 用户(uid,username,money) values (?,?,?);";PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setObject(1,3);preparedStatement.setObject(2,"小美");preparedStatement.setObject(3,2000);int i = preparedStatement.executeUpdate();if(i>0){System.out.println("ok");}else{System.out.println("error");}preparedStatement.close();connection.close();}@Testpublic void testUpdate() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/tabe1","root","@950908964xLN,");String sql = "update 用户 set username=? where uid = ?;";PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setObject(1,"小强");preparedStatement.setObject(2,"2");int i = preparedStatement.executeUpdate();if(i>0){System.out.println("修改成功");}else{System.out.println("修改失败");}preparedStatement.close();connection.close();}@Testpublic void testDelete() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/tabe1","root","@950908964xLN,");String sql = "delete from 用户 where uid=?;";PreparedStatement preparedStatement = connection.prepareStatement(sql);preparedStatement.setObject(1,2);int i = preparedStatement.executeUpdate();if(i>0){System.out.println("ok");}else{System.out.println("error");}preparedStatement.close();connection.close();}@Testpublic void testSelect() throws Exception {Class.forName("com.mysql.cj.jdbc.Driver");Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/tabe1","root","@950908964xLN,");String sql = "select uid,username,money from 用户;";PreparedStatement preparedStatement = connection.prepareStatement(sql);ResultSet resultSet = preparedStatement.executeQuery();List<Map>list = new ArrayList<>();//装的是当前结果集列的信息对象(可以获得列的名称和数量)ResultSetMetaData metaData = resultSet.getMetaData();//有了这个之后可以水平遍历列int columnCount = metaData.getColumnCount();while(resultSet.next()){Map map = new HashMap();/**map.put("id",resultSet.getInt("uid"));map.put("username",resultSet.getString("username"));map.put("money",resultSet.getInt("money"));list.add(map);*///注意要从1开始,并且小于等于columnCountfor (int i = 1; i <= columnCount; i++) {//获取指定列下角标的值Object value = resultSet.getObject(i);//获取指定列下角标的列的名称String columnLabel = metaData.getColumnLabel(i);map.put(columnLabel,value);}list.add(map);}System.out.println("list = " + list);resultSet.close();preparedStatement.close();connection.close();}}

连接池

首先安装jar包

  1. 创建一个druid连接池对象
  2. 设置连接池参数
  3. 获取连接【通用方法,所有连接池都一样】
  4. 回收连接【通用方法,所有连接池都一样】
//连接池对象
DruidDataSource dataSource = new DruidDataSource();//设置参数
//必须  连接数据库驱动类的全限定符【注册驱动】 | url | user | password
dataSource.seUrl("jdbc:mysql://localhost:3306/tabe1");
dataSource.setUsername("账号");
dataSource.setPassword("密码");
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
//非必须  初始化连接数量,最大的连接数量
dataSource.setInitialSize();//初始化连接数量
dataSource.setMaxActive();//最大的数量//获取连接
Connection connection = dataSource.getConnection();//回收连接
connection.close();

http://www.yayakq.cn/news/537230/

相关文章:

  • 怎样在网站上做有效的广告投放wordpress手机ui
  • 泸州工投建设集团有限公司网站网页源码提取工具
  • 提供郑州网站建设做电商宠物带哪个网站最好
  • 外贸网站哪家做的好整合营销推广策略
  • 做网站要会哪些知识爬取漫画数据做网站
  • 做球形全景的网站企业管理考研
  • 成都科技网站建设哪里有wordpress 酒店主题
  • 本地网站建设视频教程wordpress 群
  • 建设服装网站目的三合一网站建设平台
  • 建设飞鹰摩托车官方网站宁都网站建设
  • 优秀个人网站主页免费深圳企业名录
  • 美橙网站建设广州建设网站公司哪个济南兴田德润有活动吗
  • win2008怎么做网站福田网站建设龙岗网站建设龙岗网站建设龙岗网站建设
  • 买拆车件上什么网站域名访问网站入口
  • 做免费看电影的网站不违法吗wordpress段落
  • 什么网站比较好外贸平台网站有哪些
  • 怎么做cpa网站深圳龙华观澜网站建设公司
  • 宁波网站推广宣传公司排名男装定制品牌哪个好
  • 外贸网站建设 杭州大学院系网站建设
  • 两台电脑一台做服务器 网站深圳市建设交易中心网站首页
  • 建设银行网站下载中心竞价推广平台有哪些
  • 网站建设网站徒手整形怎么免费创建网站
  • 中山网站建设优化重庆专业网站推广报价
  • 国外 网站源码网站建设与设计ppt模板
  • seo综合查询站长工具关键词wordpress 手册 插件
  • 网上装修公司网站策划书企业员工餐解决方案
  • 卡密网站怎么做的WordPress菜单调用不出
  • 建设音乐网站的目的品牌网站建设框架
  • 百度爱采购怎么优化排名seo排名工具有哪些
  • 做电影网站用什么源码兰州企业网站制作