JDBC
来源:互联网 发布:手机淘宝装修店招 编辑:程序博客网 时间:2024/05/17 03:32
JDBC
-----
☆概述:Java DateBase Connectivity是一种用于执行SQL语句的java API,它由一组用Java语言编写的类和接口组成。通过这些类和接口,JDBC把SQL语句发送给不同类型的数据库进行处理并接受处理结果。
☆JDBC:JDBC是java连接数据库的一套规范,该规范中定义了一系列的接口,由数据库厂商提供接口实现类,由开发者根据接口,调用实现类的放大,这样开发者就可以屏蔽不同数据库的差异,无论连接什么数据库,对数据库做什么样的操作,有是一套API。
☆JDBC操作步骤:加载驱动,建立连接→执行SQL语句→关闭连接(和流操作的步骤大致相同)。
☆dao模式:建立实体类和数据库表做映射,也就是哪个表对应哪个类,哪个属性对应哪个列。而jdbc操作的目的就是完成对象数据和关系数据的转换。
☆常见的异常:
1)、java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver.class类没有找到的异常。
2)、java.sql.SQLException:Access denied for user 'root'@ 'localhost' (using password : YES) MySql
的登录密码错误。
3)、com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL
syntax: 表示SQL语句写错了。
4)、java.sql.SQLException: NO value specified for parameter 3 占位符和设置的值不匹配。
5)、增、删、改必须更新数据库,否则很可能写不禁数据。
☆Statement 和 PreparedStatement的区别:
1)、Statement 是 PreparedStatement的父接口类
2)、Statement在执行SQL语句,只能以拼接字串的方式设置值。由于每次值都不一样,所以在执行SQL语
句时,都会将SQL语句重新编译,效率较低。PreparedStatement提供占位符方式设置值,SQL语句不
用每次执行都要进行编译,执行效率较高。
3)、Statement在执行SQL语句时,由于采用拼字符串方式设置值,所以容易造成SQL注入,而
PreparedStatement使用占位符方式设置值,无论是什么值都当字符串处理。不会造成SQL注入。
☆SQL注入:在执行SQL语句时,如果以品滋福串的方式设置值,那么如果在值中SQL语句的关键字或非法字
符,可能会造成执行结果不正确或执行失败的情况。这就叫SQL注入。
☆三层架构:持久层、业务层、表现层
1)、持久层:完成数据库相关操作。采用DAO模式,建立实体类和数据库进行映射。也就是哪个类对应哪
个表,哪个属性对应哪个列。而持久层的目的就是完成关系数据和对象数据的转换。
2)、业务层:完成业务处理。采用事务脚本模式。将一个业务中所有的业务操作封装成一个方法。保证该
方法中所有的数据库更新操作同时成功,或者同时失败。
3)、表现层:完成数据的展示。采用MVC模式。
M:模型。也就是实体类。完成数据的封装和数据的传输。
V:试图。也就是GUI窗体。完成数据的展示。
C:控制。也就是事件。完成业务方法的调用和业务流程控制。
☆层与层之间,采用接口作耦合,这样,当其中一个层的组件发生更改或者替换时,不会影响别的层组件的使
用。
- jdbc
- JDBC
- jdbc
- JDBC
- jdbc
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- JDBC
- jdbc
- JDBC
- JDBC
- jdbc
- 二维数组有关数据
- Git-flow的使用
- Centos 6.5 Redis 集群部署
- 香蕉派SD卡安装系统(Windws平台工具)
- TP框架基本使用
- JDBC
- 一些关于Ajax总结以及理解
- 《java入门第一季》模拟用户登陆注册案例集合版
- Android.mk(a copy of the Google android_mk site)
- c++ STL常见算法和迭代器
- C++类默认成员函数与重载
- 数据结构学习笔记1——栈
- asp.net如何获取当前页面的URL
- 项目开发流程