A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马★涛仔 初级黑马   /  2018-12-10 17:26  /  516 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  MySQL

DDL 数据库, 表



创建数据库:            create  database   数据库名;

删除数据库:             drop   database   数据库名;

查询所有数据库:     show   database ;

查看当前数据库:     select  database();

使用数据库                use 数据库名称;



查看表结构: desc 表名;

创建表:

create table 表名(

列名   数据类型  约束,

列名 n...

);

删除表:         drop table 表名;

修改表结构:

添加列: alter table 表名称 add 列名 数据类型;

修改列的类型.长度: alter table 表名称 modify 列名  类型(长度) 拘束

修改列名: alter table 表名称 change 旧列名 新列名 类型(长度) 约束

删除列: alter table 表名 drop 列名;

修改表的字符集: alter table 表名称 character set 字符集(gbk);

修改表名: rename table 表名称 to 新名称





DML 对数据的增删改



插入数据: insert into 表名(列名1, 列名2) values(值1, 值2);

删除数据:

删除部分数据: delete from 表名 where 条件;

删除表内所有数据: delete from 表名;



修改数据: update 表名 set 列名=值 where 条件



DQL

单表

select 列名 from 表名 where 条件 group by 列名 having 条件 order by 列名 asc/desc limit 索引,多少条 --



多表

内连接

隐式连接

select 列名 from 表名1,表名2 where 关联条件 and 普通条件

显示连接

select 列名 from 表名1 join 表2 on 关联条件 where 条件

子查询

查询嵌套查询

条件: 单行单列,多行单列

虚拟表: 多行多列



事物

start transaction

commit

rollback

四大特性

原子

持久

隔离

一致

隔离级别: 脏读, 不可重复读, 虚读, 幻读
jdbc


一套接口 --->要求厂商自己实现操作各自数据库的驱动


步骤:

1. 注册驱动

2. 获取连接

3. 创建sql和执行sql的对象

4. 执行sql获取结果

5. 处理结果

6. 释放资源


1. ResultSet 的遍历

while(rs.next) {

rs.getObejct

}

2. sql注入

PrepareStatement        配合占位符  ?

pst.executeQuery()        --> 没有参数

pst.executeUpdate()      --> 没有参数

3.事务

conn.setAutoCommit(false);

conn.commit()

conn.rollback();


连接池

C3P0

连接步骤:

1.导jar

1.c3p0  2个

2.mysql驱动

2.导入配置文件(src目录下)

c3p0-config.xml

3.使用

DataSource dataSource = new ComboPooledDataSource();

Connection con = dataSource.getConnection();


DRUID(德鲁伊)

接入步骤

1.导jar

1.druid

2.mysql驱动

2.导入配置文件(src)

druid.properties

3.使用

Properties pro = new Properties();

pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"))

DataSource dataSource = DruidDataSourceFactory.createDataSoure(pro)

Connection con = dataSource.getConnection();


JdbcUtils实现思路

1.获取数据源(连接池)        DataSource

2.获取连接对象                         Connection

3.释放资源                                重载

思路:

DataSource在类加载的时候就应该初始化,为了保证对象能够及时创建,在 static{} 静态代码块中创建的对象

Properties pro = new Properties();                                        pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"))

dataSource = DruidDataSourceFactory.createDataSoure(pro)

                               

提供返回数据源的方法 getDataSource()   ---> return dataSource

提供返回连接                 getConnection()   ---> return dataSource.getConnection()



JdbcTemplate

SPRING        (基于jdbc来简化数据库的操作)

DataSource dataSource = new ComboPooledDataSource();

JdbcTemplate template = new JdbcTemplate(dataSource);

增删改

template.update("sql",[具体参数]);

查询

单条结果

Map<String,Object> map = template.queryForMap("sql",[具体参数]);

Bean bean = template.queryForObject("sql",new

BeanPropertyRowMapper<Bean>(Bean.class),[具体参数]);

多条结果

List<Map<String,Object>> list = template.queryForList("sql",[具体参

数]);

List<Bean> list = template.query("sql",new

BeanPropertyRowMapper<Bean>(Bean.class),[具体参数]);

               





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马