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 函数能分 ...
随机推荐
- Play商店显示需要进行身份认证。您需要登录自己的Google帐户
前段时间把一加6系统从H2OS换到OxygenOS,Play商店死活不能登录,网络配置等问题已经排除,重装Google全家桶也没有解决问题,最后找到原因. 解决办法:在应用列表中找到Google Pl ...
- sql server 2000 单主键高效分页存储过程 (支持多字段排序)
sql server 2000 单主键高效分页存储过程 (支持多字段排序) Create PROC P_viewPage /* nzperfect [ ...
- J20航模遥控器开源项目系列教程(五)| 制作STM32F0接收机,8路PWM输出,SBUS输出,PPM输出 | 加密狗无线化,畅玩飞行模拟器
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...
- KestrelServer详解[2]: 网络链接的创建
<注册监听终结点(Endpoint)>已经详细讲述了如何使用KestrelServer,现在我们来简单聊聊这种处理器的总体设计和实现原理.当KestrelServer启动的时候,注册的每个 ...
- 为什么要用 Spring Boot?
Spring Boot 优点非常多,如:独立运行简化配置自动配置无代码生成和XML配置应用监控上手容易Spring Boot 集这么多优点于一身,还有理由不使用它呢?
- spring源码-扩展点
/** * @Author quan * @Date 2020/11/13 * 扩展原理 * BeanPostProcessor bean后置处理器,bean创建对象初始化前后进行拦截工作 * * * ...
- List、Set、Map详解及区别
一.List接口 List是一个继承于Collection的接口,即List是集合中的一种.List是有序的队列,List中的每一个元素都有一个索引:第一个元素的索引值是0,往后的元素的索引值依次+1 ...
- spring-boot-learning-RabbitMQ
为什么需要MQ??? 异步处理: 场景: 用户注册后,需要发注册邮件和注册短信,传统的做法有两种 1.串行的方式 2.并行的方式` 用户注册-发送注册邮箱-发送注册短信都完成之后才结束返回给客户端 邮 ...
- 区分 BeanFactory 和 ApplicationContext?
BeanFactory ApplicationContext 它使用懒加载 它使用即时加载 它使用语法显式提供资源对象 它自己创建和管理资源对象 不支持国际化 支持国际化 不支持基于依赖的注解 支持基 ...
- Centos最小化安装
1.选择最小安装: 2.选择相应的安装包 老男孩提示: 1.根据经验,选择安装包时应该按最小化原则,即不需要的或者不确定是否需要的就不安装,这样可以最大程度上确保系统安全. 2.如果安装过程落了部分包 ...