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 函数能分 ...
随机推荐
- Net6Configuration & Options 源码分析 Part3 IOptionsMonitor 是如何接收到配置文件变更并同步数据源的
配置源的同步 IOptionsMonitor 使用 //以下demo演示使用IOptionsMonitor重新加载配置并当重新加载配置是执行回调函数 var configuration = new C ...
- maltego的基本使用
首次使用maltego需要注册 注册网站:https://www.paterva.com/web7/buy/maltego-clients/maltego-ce.php 填写好点注册就行了 1. 打开 ...
- SIMOTION D435-2 PN报错1915,无法进入RUN状态 解决方法
1.现象 2.解决方法 以下几种情况会导致SIMOTION D CPU无法RUN状态: 1.SIMOTION D设置CPU上电后自动进入RUN状态,上电后D4x5 CPU准备就绪,开始执行系统任务区的 ...
- strcpy、strncpy 和安全的strncpy_s
strcpy和strncpy摘于linux 内核源码的/lib/string.c char *self_strcpy(char *dest, const char *src) { char *tmp ...
- Zwibbler—前端Canvas绘图工具使用记录
本人第一次发博客,用意在于记录自己在开发过程中用到的实用工具并分享出来,写的可能不好,请大家多多包涵!!! 工具官网:https://www.zwibbler.com 基于Canvas的一个前端绘画工 ...
- grep 命令?
强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索.grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格, ...
- (转)Linux的文件权限与目录配置
ref:https://www.cnblogs.com/ysocean/p/7712412.html#_label1_0 (转)Linux文件权限和目录配置 1.Linux命令的普遍语法格式 命令格式 ...
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法 ?
面试官:想了解对 ES 集群的运维能力. 解答: 1.关闭缓存 swap; 2.堆内存设置为:Min(节点内存/2, 32GB); 3.设置最大文件句柄数: 4.线程池+队列大小根据业务需要做调整: ...
- JS字符串格式化
//字符串格式化String.prototype.format = function () { var values = arguments; return this.replace(/\{(\d+) ...
- 使用 Spring 有哪些方式?
使用 Spring 有以下方式: 作为一个成熟的 Spring Web 应用程序. 作为第三方 Web 框架,使用 Spring Frameworks 中间层. 用于远程使用. 作为企业级 Java ...