未分类

作者: 高永骁 | 来源:发表于2018-06-08 13:32 被阅读0次

数据库DB:

SQL:结构化查询语言。

MySQL是一种关系型数据库

增:

create databases db_school;

drop database t_student;

use db_school;

create table t_student(,,,);

insert into t_student(,,,)values(,,);

insert into t_student(,,,)values(,,),(,,),(,,);

select*from t_student;  *为所有列

delete from

update t_student set s_name=’’ where

查看表结构

DESC

函数的分类

单行函数:接收参数,输出一个结果

多行函数:接收某个列的所有值,输出一个结果

分组函数(多行):AVG/SUM、COUNT、MAX/MIN  不能放在WHERE中

如果要用组函数就放在GROUP BY的 HAVING子句中

多表查询

隐式连接:只能做内连接

消除笛卡尔乘积

WHERE中进行等值连接(主外键等值)

显示连接:

内连接JOIN

外连接LEFT JOIN / RIGHT JOIN  ON连接为NULL时不会被过滤

自连接

子查询

ANY ALL

表连接

表联合:UNION去重  UNION ALL 全部

事务并发的问题:

第一类丢失更新:后面回滚的事务会把前面提交的事务操作覆盖

第二类丢失更新:后面提交的事务操作会把前面提交的事务操作覆盖

脏读幻读不可重复读

索引:

length()字节数

char_length()字符数

JDBC

JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

@Before

@Test

public void test开头的命名方法

//加载驱动(根据类的全限定名称加载字节码到JVM,加载进JVM之后,执行该类的静态代码块,静态代码块:注册驱动)

Class.forName(“com.mysql.jdbc.Driver”);

加载参数指定的类,并且初始化它。

//获取连接对象

Connection connection=DriverManager.getConnection(“jdbc:mysql://host:port/database_name”, ”root”, ”root”);

(JDBC2.0引入javax.sql.DataSource 是为了代替DriverManager)

@Test

public void testCreateTable()

//连接数据库

//创建语句对象

Statement stat = connection.createStatement();

String sql = “创建表”

//执行SQL语句 executeUpdate:执行DDL和DML语句

stat.execteUpdate(sql);/查询 ResultSet result = stat.execteQuery(sql); if(result.next()){result.get}

//释放资源

stat.close();

connection.close();

还有一种是在创建语句对象的时候直接加载sql,防止sql注入,故:

PreparedStatement state = connection.prepareStatement(sql);

ResultSet result = state.excuteQuery();

预处理语句

PreparedStatement防止SQL注入

PreparedStatement不在执行的时候传入SQL语句,在创建的时候

DAO组件的设计

数据访问对象,他是一个数据访问接口

提供CRUD的接口。

properties

事务

同一个任务需要多个数据库连接或操作操作的时候才用到

把一个任务的多个操作看做一个整体

获取自动生成的主键

连接池

C3P0

DBCP:导两个jar包 BasicDataSourceFactory.createDataSource();

可在DBCP中直接加载配置参数:DataSource getupDataSource(){4个参数}

就不需要Class.forName(driverName);等等四条

Druid:一个包  DruidDataSourceFactory.createDataSource(pro);也可以用Druid加载pro

连接池的工作机制:

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。调用:客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。

释放:当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

(最大维持连接数最大连接数最大等待时间)

DataSource与连接池的关系:

DataSource利用连接池缓存Connection,以达到系统效率的提升,资源的重复利用.而连接池它可以单独存在,不需要依靠DataSource来获取连接,你可以直接调用连接池提供的方法来获取连接.

获取到数据库数据信息(字段信息)

resultSet.getMetaData();

HQL:Hibernate Query Language

Select/update/delete…… from …… where …… group by …… having …… order by …… asc/desc

public class Single{

private Single(){};

private static Single single = new Single();

public static Single getInstance(){

return single;

}

}

public class Single{

private static Single instance = null;

public static synchronized Single getInstance(){

if(instance == null){

instance = new Single();

return instance;

}

}

}

相关文章

  • 未分类

    数据库DB: SQL:结构化查询语言。 MySQL是一种关系型数据库 增: create databases db...

  • 未分类

    可重用性可拓展性可维护性 1 Javac java 源代码.java字节码 .class J...

  • 未分类

    静态网页 动态网页CGI asp(html+JavaScript+com组件) PHP jsp(html+jav...

  • 未分类

  • 每到一个城市,最喜欢去的是博物馆

    今日整理图片,还未分类,写文。

  • Leetcode未分类

    Leetcode 1147. Longest Chunked Palindrome Decomposition. ...

  • 石头剪刀布

    在此处输入标题 标签(空格分隔): 未分类

  • 作业一

    作业一 标签(空格分隔): 未分类 Student package com.niit.quickstart.bea...

  • PXE

    标签(空格分隔): 未分类 PXE是什么 预启动执行环境(preboot execution environmen...

  • session和cookie

    express相关 标签(空格分隔): 未分类 mac下执行 sudo ./mongod必须加 sudo mong...

网友评论

      本文标题:未分类

      本文链接:https://www.haomeiwen.com/subject/xsvnsftx.html