MySQL入门学习day3随笔3
JDBC
数据库驱动
我们的程序会通过数据库驱动和数据库打交道
JDBC
Sun公司简化开发人员的操作,提供的规范
第一个JDBC项目
创建一个Java项目
导入jar包
编写测试代码
1 create database `jdbcStudy` character set utf8mb4 collate utf8mb4_bin;
2
3 use `jdbcStudy`;
4
5
6 insert into `users`(`id`,`NAME`,`PASSWORD`,`email`,`birthday`)
7 values(1,'zhangsan','123456','zs@sina.com','1980-12-04'),
8 (2,'lisi','123456','lisi@sina.com','1981-12-04'),`jdbcstudy`
9 (3,'wangwu','123456','wangwu@sina.com','1979-12-04');建表添加数据
1 public static void main(String[] args) {
2 //加载驱动
3 try {
4 Class.forName("com.mysql.cj.jdbc.Driver");
5 } catch (ClassNotFoundException e) {
6 e.printStackTrace();
7 }
8 //用户信息和url
9 String url = "jdbc:mysql://localhost:3306/jdbcstudy?useUnicod=true&characterEncoding=utf8";
10 String userName = "root";
11 String password = "123456";
12
13 //连接成功,数据库对象
14 try {
15 Connection connection = DriverManager.getConnection(url, userName, password);
16
17 //执行SQL的对象
18 Statement statement = connection.createStatement();
19
20 //执行SQL的对象执行SQL
21 String sql = "select * from users";
22
23 ResultSet resultSet = statement.executeQuery(sql);
24
25 while (resultSet.next()){
26 System.out.print("id="+resultSet.getObject("id"));
27 System.out.print("\tname="+resultSet.getObject("name"));
28 System.out.print("\tpassword="+resultSet.getObject("password"));
29 System.out.print("\temail="+resultSet.getObject("email"));
30 System.out.println("\tbirth="+resultSet.getObject("birthday"));
31 }
32
33 //释放连接
34 resultSet.close();;
35 statement.close();
36 connection.close();
37
38 } catch (SQLException e) {
39 e.printStackTrace();
40 }
41
42 }
SQL注入
SQL存在漏洞,会被攻击导致数据泄露
PreparedStatement
Connection connection = null;
PreparedStatement pstm = null;
try {
connection = JdbcUtils.getConnection();
//区别
//使用问好占位符代替参数
String sql = "insert into users(id,`NAME`) values(?,?)";
pstm = connection.prepareStatement(sql);//预编译sql,先写sql然后不执行
//手动赋值
pstm.setInt(1, 8);
pstm.setString(2, "SANJIN"); //执行
int i = pstm.executeUpdate();
if (i > 0) {
System.out.println("插入成功");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
JdbcUtils.release(connection, pstm, null);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
MySQL入门学习day3随笔3的更多相关文章
- MySQL入门学习day3随笔2
用户创建及权限部分 1 create user Cra2iTeT identified by '123456'-- 创建用户 2 3 alter user 'Cra2iTeT'@'%' identif ...
- Mysql入门学习day2随笔2
事务 什么是事务 要么都成功,要么都失败 事务原则 原子性:针对一个事务,两个步骤一起成功或一起失败 一致性:最终一致性,例如A.B之间的转账,无论两个账户如何操作,两账户的总价值不会变 隔离性:针对 ...
- 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列
1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装
1.0 我的操作系统是CentOS Linux release 7.6.1810 (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...
- 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装
1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...
- MySQL学习day3随笔
索引在数据量不大的时候体现不出来,数据很多的时候区别明显 1 select * from app_user where `name`='用户9999';-- 0.053 sec 2 select * ...
- 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装
1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...
- 【转】MYSQL入门学习之十三:自定义函数的基本操作
转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能 www.2cto.com 函数能分 ...
随机推荐
- 分享一些阅读Java相关框架源码的经验
昨天和部分网友进行了线上的交流,交流中有不少网友提到阅读源码比较难,不知道怎么上手.胖哥分享了一些个人经验,这里总结一下. 阅读源码实际上是Debug源码 其实所谓的阅读源码并不是单纯的阅读,而是调试 ...
- CentOS Stream 8 安装 Zabbix6.0 -- LNMP环境(nginx-1.20,mariadb-10.6,php-7.4)
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 zabbix6.0 LTS版本出来了,前段时间刚安装了5.4,今天打算在虚拟机上安装6.0测试,安装6.0的要求php版本不低于7.2,mariad ...
- 写fstable
mountpoint 就是挂载点./. /usr. swap 都是系统安装时分区的默认挂载点. 如果你要挂载一个新设备,你就要好好想想了,因为这个新设备将作为文件系统永久的一部分,需要根据FSSTND ...
- 西门子S210驱动器接线
参考:SINAMICS S210 操作说明 1.系统概述 P28 节2.2 单相版驱动器的系统组件和附件 2.电源接线 P56 节3.2 单相 230 V 版驱动器的连接示例 单相版驱动器在 IT 电 ...
- Linux 环境Skywalking部署Elasticsearch
一.环境准备 1.Java jdk 11+(安装教程可参考https://www.cnblogs.com/sportsky/p/15973713.html) 2.elasticsearch 二.环境搭 ...
- JavaScript 02 运算符,分支结构
一元换算符 字符串类型 对于字符串,来说自增或自减会自动进行类型转换 1.var str = '10' 自动转换 从string转为number 2.str++ NaN 对于转化不成功的string类 ...
- Redis集群节点扩容及其 Redis 哈希槽
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求 ...
- Servlet的response乱码问题
一.response有两种输出流(编码:UTF-8): 1.字节流:response.getOutputStream().write(date.getBytes("UTF-8")) ...
- maven在idea中的一点使用技巧
maven在idea中的一点使用技巧 idea已经支持将参数的意思也展示出来,确实很方便. -U是强制拉取,因为如果拉取某个jar包,失败了,那么在一段时间内,idea不会重试,除非指定-U. -X呢 ...
- awk 详解?
awk '{pattern + action}' {filenames} #cat /etc/passwd |awk -F ':' '{print 1"\t"7}' //-F 的意 ...