mysqld数据库笔记

这篇博客详细介绍了MySQL数据库的常用操作,包括登录、查看数据库、创建表、插入数据、查询、更新、删除等。此外,还提到了SQL注入、预处理语句、批处理、数据库字符集设置以及Java JDBC的使用。博主还探讨了反射的概念,如何获取和使用类对象、构造方法、成员变量和方法。
摘要由CSDN通过智能技术生成

登录:

mysql -uroot -p

root


查看数据库

show databases


切换数据库

use test

显示所有表

show tables

查看指定表的表结构

desc table_name


1,创建表stu

create table stu

(

id int,

name varchar(16)最长多少,

gender char(6)abcdef虽然是char但在数据库中但也是字符串.,

birthdaydate

);


2,在 stu表插入数据


insert into stu 

values(95277,'joe','M','1991-06028');


3.查询stu

select * from stu;


4.修改stu表的数据

update stu set name='胡桥' ,birthday='1999-03-2';


5执行脚本文件

mysql>source d:\yourScript.sql


6,删除表数据 delete from tablename


where 字句

---------------------------------------------

=

<>

>

>=

<

<=


%表示0~多个任意字符

between 小and 大

in(值1,值2,值3....)

is null不能用=

like 模糊查询

_统配单个字符'_ab%' 匹配第2,3个是ab的


order by a,b 当a相同时再按b排.


*1.where 后面不能用字段别名,因为先过滤在显示别名,

2.order by 可以用别名,因为order by时已经过滤好了结果.


select ifnull(1,2) 1

select ifnull(null,2) 2


=====多行函数========

max

min

avg

count


*不能直接与其他字段一起查询 多行不能对一个

*所有多行函数会忽略null值

group by 后面对分完组的结果进行过滤要用having 并且可以用别名,分组过程已经完成.

DML

============================================

**insert into users(username)values('i''m joe'); //单引号转译用 ' .


**set autocommit =0设置自动提交关闭.

rollback

回到以前的状态.(内存中的抛弃.)


数据类型

-----------------------------------------------

int 默认11位

int(3) 3位

numeric(6)6位整数

numeric(8,2)6位整数,2位小数

decimal(6)

varchar(32)变长

char(6)定长

text 最长65535个字符

date 年月日//oracle 包含时分秒

datetime 年月日时分秒


alter table stu add(

height numeric(4,1),

weight numeric(4,1))


====================jdbc=================

class.forName(driver),

mysql最大连接数100

数据库的异常要想界面抛出,让用户来选择操作.(jdbc的代码一般都是底层代码)


Statement:

===========================

sql注入:

select 1 from users where username='joe' and password='

1' or '1'='1  ';


java.sql.PreparedStatement 

 把带问号的sql发送大服务器.执行execute时把自己设置的值传到服务器.

//不用每次都创建新的prest对象. (prest.close)rs.close释放的是服务器端的资源.


*可以对站位符的sql语句进行预处理 ?

==========================

引用类型可以直接赋值null,基本类型赋值null如下:

prestmt.setNull(1, Types.INTEGER);

rs.wasNull判断结果集是否为空.

==================================

addBatch()//减少通信次数

clearBatch();//把已经缓存的一批清除掉

*数据库字符集

deault character encoding utf8


*数据库字符集

deault character encoding utf8


*java 发送或接受的字符编码

jdbc:mysql://localhost:3306/hr?useUnicode=true&amp;characterSet=utf8

执行脚本文件

---------------------------------------

mysql> source  d:\mydb.sql

mysqldump-uroot -p 库名>文件路径



反射

=============================

*类对象

java.lang.Class

内存中每种类型,都纯在唯一的一个表示图纸的对象

*获取类型信息:

*)包名

getPackage()

*)类名

getName()

getSimpleName()


*)构造方法

getDeclaredConstructors()//获得所有的构造方法包括私有

getConstructor()//获得所有可见的构造方法

*)成员变量

getDeclaredField()

获得所有的成员变量包括私有不包含从父类继承的成员变量

getField()

获得所有可见的成员变量含从父类继承的成员变量

*)方法

getDeclaredMethods()

获得所有的成员方法,包含私有

不包含继承

getMethods()

获得可见的成员方法包含继承的成员方法


*)创建实例

1)通过无参构造方法创建实例

Object obj=c.newInstance();//c类对象


2)通过有参构造方法

Constructor c= c.getConstructor(int.class,String.class);//通过传入的参数类型获得相应的构造方法

Object obj=c.newInstance(234,"sdfs");//传入构造方法所需要的参数值

Class A

{

public A(){}

public A(int i){}

public A(int i,String s){ }


}


*)访问成员变量

Field f =c.get DeclaredField("gender");//可获取私有

让私有变量可以访问:

f.setAccessible(true)//可以访问私有变量

赋值:

f.set(obj,"男")


取值:

String s=(String)f.get(obj)

*)调用方法


Method m=c.getMethod("方法名" ,int.class,String.class);//指定方法名和参数列表

m.invoke(obj,232,"sdf") //obj执行方法的实例 参数....方法无返回值返回void 有返回值要接收.





以 java.util.Date为列:

1. Class <Date>c=Date.class;

2.Class.forName("java.util.Date");//其实是在获得类对象//可以传入不同字符串

3.实例.getClass();//object 继承而来.





















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值