JDBC-day02
JDBC:数据库连接 java database connectivity
###properties
属性对象,用于读取*.properties属性配置文件中的数据
-为什么使用:之前写法是把数据库连接信息硬编码的形式写死在.java类中,如果需要修改,必须去java类中找到相对应的代码,这种方式需要工作人员了解代码,
然而,使用properites后可以把数据库连接信息写在配置文件中,修改时不需要关注代码的问题
###数据库连接池 DBCP database connection pool
- 一套管理数据库连接的api
- 为什么使用数据库连接池:
如果没有连接池,每次web服务器和数据库服务器的交互都需要建立连接和关闭连接,如果有一万次请求则有一万次开关连接,非常消耗资源,
使用连接池,可以在初始化时设置好一个初始连接数量,连接池会立即建立几个初始连接,如果有和数据库交互的需求会从连接池中查找是否有空闲连接,
有则用,用完归还给连接池,没有空闲,则等待其他链接用完后归还.这样能大大降低web服务器和数据库服务器的开关连接的数量,从而提高执行效率.
####PrepareStatement
-好处:
1.因为使用PrepareStatement带有预编译效果,当多次插入数据时,只需要编译一次即可,所以执行效率高(效果并不明显)
2.代码可读性更高,书写方便
3.带有预编译效果,可以防止sql注入,因为在sql预编译的时候已经把sql的逻辑固定,如果替换?的内容包含了和逻辑相关的sql关键字则不生效(如 or)
- 如果执行的sql语句中存在变量值的都使用prepareStatement,如果没有变量值则可以使用statement
###sql注入的语句: password='' or '1'='1'
创建一张login_user表(id,username,password)
create table login_user(id int primary key auto_increment,username varchar(10),password varchar(10));
insert into login_user values(null,'libai','admin'),(null,'xiao,ming','admin');
以下是
select count(*) from login_user where username=? and password=?
DBUtils:数据库连接的工具类
DBCPDemo:演示数据库连接池
DBUtilsDemo1:演示增删改查
PropertiesDemo:演示Properties
##以后做项目数据库中有什么表就有和表对应的对象(Javabean),同时也有和表相对应的DAO
##批量操作
因为每次sql的执行都需要和数据库服务器进行数据交互,如果执行的sql条数太多,每次都和数据库服务器交互会浪费资源,可以通过批量操作的方式,把几次sql请求合并成一次
案例:实现分页查询
请输入要查询的页数
3
请输入每页的条数
5
得到数据库中的11-15条数据
###事务
1.关闭自动提交(开启事务)
conn.setAutoCommit(false);
2.提交事务
conn.commit();
3.回滚
conn.rollback();
create table person(id int primary key auto_increment,money int,name varchar(10));
insert into person values(null,500,'超人'),(null,50000,'蝙蝠侠);
insert into person values(null,5000,'蝙蝠侠);
##获取自增主键的值
create table t_dept(id int primary key auto_increment,name varchar(10));
create table t_emp(id int primary key auto_increment,name varchar(10),deptid int);
##元数据 MetaData
数据库元数据:存放数据库
JDBC-day02的更多相关文章
- Apache—dbutils开源JDBC工具类库简介
Apache—dbutils开源JDBC工具类库简介 一.前言 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用 ...
- JDBC主要API学习总结
JDBC主要API学习 一.JDBC主要API简介 JDBC API 是一系列的接口,它使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果. 二.Driver 接口 Java.sql.D ...
- JDBC_part2_DML以及预编译_编写DBUtil工具类
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! jdbc day02 DML语法 比起插叙语句,没有R ...
- [02-02 ]Java数据库链接范列
/* 01 连接池版本的 数据库 连接管理工具,适合于并发场合 */ package cn.tedu.jdbc.day02; import java.io.InputStream; import ja ...
- JDBC连接池以及动态SQL处理
复习一下: 1.先创建一个properties配置文件 ClasssName=oracle.jdbc.driver.OracleDriver url=jdbc:oracle:thin:@服务器IP:端 ...
- Jdbc -Statement
Java提供了 Statement.PreparedStatement 和 CallableStatement三种方式来执行查询语句: PreparedStatement是用于执行参数化查询 预编译s ...
- day02 mysql基本语句 存储引擎 数据类型 完整性约束
day02 mysql 一.sql的基本语句 系统数据库 information_schema: 虚拟库, 不占磁盘空间(在内存汇中): 存的是数据库启动后的一些参数, 如 ...
- mysql 第三课 jdbc基础操作
jdbc连接可以大致分为5步: 1.注册驱动 2.获取连接 3.编写语句 4.执行语句 5.关闭连接 其中可以设置参数等等. 1.我们先建一个项目目录: 其中com.etc.dao为数据访问对象 co ...
- Java数据库连接技术——JDBC
大家好,今天我们学习了Java如何连接数据库.之前学过.net语言的数据库操作,感觉就是一通百通,大同小异. JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力. JDBC API ...
- 玩转spring boot——结合AngularJs和JDBC
参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...
随机推荐
- 创建目录:mkdir
[root@localhost ~]# # 创建相对目录 [root@localhost ~]# # 创建绝对目录 [root@localhost ~]# // # -p 用于递归地创建目录
- 文件压缩:zip
[root@localhost ~]# yum install -y zip unzip // 安装 zip 和 unzip [root@localhost ~]# ..txt // 压缩文件,要同时 ...
- Python创建目录
需要包含os模块进来,使用相关函数即可实现目录的创建 1.创建目录要用到的函数: (1)os.path.exists(path) 判断一个目录是否存在 (2)os.makedirs(path) 多层创 ...
- entry.define编程思路
0.lua将文字传给场景脚本. 1.场景脚本将pattern.define文件中的PAT当作子弹(水泡弹,带颜色) 2.用户的问题作为客户端的请求,发送给服务器端 3.服务器端接受客户端的问题请求 4 ...
- jquery 之ajax,get,post异步请求简单代码模版
$.get( "../cart/cart_list.do", "productId="+productId, fu ...
- vue.js安装问题
1.安装:npm install --global vue-cli 2.创建项目:vue init webpack my-project npm WARN deprecated browserslis ...
- swiper 视频轮番
百度搜索:swiper 视频轮番 转载1:https://blog.csdn.net/Aimee1608/article/details/79637929 项目中使用swiper插件嵌套video标签 ...
- [django]django models最佳实战
models class People(models.Model): name = models.CharField(max_length=30) age = models.CharField(max ...
- 1A
#include <iostream> using namespace std; int main() { long long n, m, a, r, c; cin>>n> ...
- POJ1611:The Suspects(模板题)
http://poj.org/problem?id=1611 Description Severe acute respiratory syndrome (SARS), an atypical pne ...