• JDBC-day02


    JDBC:数据库连接  java  database connectivity

    ###properties

      属性对象,用于读取*.properties属性配置文件中的数据

    -为什么使用:之前写法是把数据库连接信息硬编码的形式写死在.java类中,如果需要修改,必须去java类中找到相对应的代码,这种方式需要工作人员了解代码,

    然而,使用properites后可以把数据库连接信息写在配置文件中,修改时不需要关注代码的问题

    ###数据库连接池 DBCP       database connection pool

    - 一套管理数据库连接的api

    - 为什么使用数据库连接池:

      如果没有连接池,每次web服务器和数据库服务器的交互都需要建立连接和关闭连接,如果有一万次请求则有一万次开关连接,非常消耗资源,

      使用连接池,可以在初始化时设置好一个初始连接数量,连接池会立即建立几个初始连接,如果有和数据库交互的需求会从连接池中查找是否有空闲连接,

      有则用,用完归还给连接池,没有空闲,则等待其他链接用完后归还.这样能大大降低web服务器和数据库服务器的开关连接的数量,从而提高执行效率.

    ####PrepareStatement

    -好处:

    1.因为使用PrepareStatement带有预编译效果,当多次插入数据时,只需要编译一次即可,所以执行效率高(效果并不明显)

    2.代码可读性更高,书写方便

    3.带有预编译效果,可以防止sql注入,因为在sql预编译的时候已经把sql的逻辑固定,如果替换?的内容包含了和逻辑相关的sql关键字则不生效(如 or)

    - 如果执行的sql语句中存在变量值的都使用prepareStatement,如果没有变量值则可以使用statement

    ###sql注入的语句:  password='' or '1'='1'

    创建一张login_user表(id,username,password)

      create table login_user(id int primary key auto_increment,username varchar(10),password varchar(10));

      insert into login_user values(null,'libai','admin'),(null,'xiao,ming','admin');

    以下是

      select count(*) from login_user where username=? and password=?

    DBUtils:数据库连接的工具类

    DBCPDemo:演示数据库连接池

    DBUtilsDemo1:演示增删改查

    PropertiesDemo:演示Properties

    ##以后做项目数据库中有什么表就有和表对应的对象(Javabean),同时也有和表相对应的DAO

    ##批量操作

    因为每次sql的执行都需要和数据库服务器进行数据交互,如果执行的sql条数太多,每次都和数据库服务器交互会浪费资源,可以通过批量操作的方式,把几次sql请求合并成一次

    案例:实现分页查询

    请输入要查询的页数

    3

    请输入每页的条数

    5

    得到数据库中的11-15条数据

    ###事务

    1.关闭自动提交(开启事务)

      conn.setAutoCommit(false);

    2.提交事务

      conn.commit();

    3.回滚  

      conn.rollback();

     

    create table person(id int primary key auto_increment,money int,name varchar(10));

    insert into person values(null,500,'超人'),(null,50000,'蝙蝠侠); 


    insert into person values(null,5000,'蝙蝠侠);

    ##获取自增主键的值

    create table t_dept(id int primary key auto_increment,name varchar(10));

    create table t_emp(id int primary key auto_increment,name varchar(10),deptid int);

    ##元数据 MetaData

    数据库元数据:存放数据库

  • 相关阅读:
    WCF 无法生成 client
    Powershell profile.ps1 cannot be loaded because its operation is blocked by software restriction policies
    信步拾遗之Windwos Live Writer插件
    Maven setting.xml文件详解(转)
    Maven pom.xml详解(转)
    信步漫谈之Maven—基础介绍
    信步漫谈之Nginx—负载均衡
    信步漫谈之Hibernate—基础介绍
    信步漫谈之Dom4j—基础介绍
    信步拾遗之CHM开源文档制作
  • 原文地址:https://www.cnblogs.com/smallwangmusk/p/8980424.html
Copyright © 2020-2023  润新知