Day37 Mysql 使用其他编程语言操作mysql

索引

提高查询效率

每个字段都可以加索引

给经常做查询的字段加索引

主键默认包含索引

alter table 表名 add index 索引名称(字段)
alter table student add index nameindex(name);
alter table student drop index nameindex;

事务

mysql批处理 执行一批SQL语句 原子性的 不可再分割 要成功 都成功 要失败都失败

sql的执行每一条都是独立的

事务可以对于多张表进行同时操作

状态:开始 结束 提交 回滚

事务从开始 到提交结束之前 所有的操作都是虚拟的(临时的 假的)

提交之后才会把操作 保存到真是数据总

begin;# 执行一次就表示开始事务 不需要多次执行
update person set money='3000';
update bank set money='2000';
rollback;# 回滚 撤销以上所有的虚拟的操作
update person set money='3000';
update bank set money='2000';
commit;# 提交 提交之后结束

其他编程语言操作mysql

Linux

#!/bin/sh
#mysql -uroot -p123456 -e "select * from shujia.student"
MYSQL="mysql -uroot -p123456"
sql="select * from shujia.student"
sql1="select * from shujia.score"
$MYSQL -e "$sql1"

Java

这里需要导入第三方工具包

点击IDEA中的file->project structure->Modules->Dependencies->+->JARs or dir...->选择包->apply

1.加载第三方工具

Class.forname("com.mysql.jdbc.Driver");

2.获取连接

String url="jdbc:mysql://master:3306/shujia";

这里连接的是所要操作的数据库的名称

String username="root"; String password="123456";

Connection connection = DriverManager.getConnection(url, username, password);

3.获取执行器 createStatement(会出现sql注入不使用)和prepareStatement

一般情况下大多使用第二种执行器

String sql="select * from user where username=? and password=?"

?号表示将要填入的值,

PreparedStatement ps = connection.prepareStatement(sql);//给sql的格式(模板)

ps.setString(1,"1012");

ps.setString(2,"test");

4.执行sql获取结果

sql语句为增删改查操作,不需要解析结果,使用executeUpdate()获取int类型的返回值

ResultSet rs = ps.executeQuery();

当执行增删改查操作时,不需要下面的获取操作

while (rs.next()){

String name = rs.getString("name");

System.out.println(name);

}

5.关闭连接(从下向上关闭)

rs.close();
ps.close();
conn.close();

注意

sql注入:参数中有mysql命令,而mysql把这些关键字当做命令去执行

prepareStatement:避免了sql注入,首先发送sql的格式,然后在传递参数(参数中有关键字也作为参数执行)

prepareStatement传参:通过set数据类型(int prepareIndex,数据类型 x) 注意:index从1开始

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值