JAVA数据库连接,JDBC深度分析解析链接过程及方式

本文详细介绍了JDBC的概念,包括其作为API和接口的角色,以及五种类型的驱动程序。阐述了如何设置数据库连接,比较了DriverManager与DataSource的区别,并提供了执行SQL语句的步骤。此外,还提到了预编译的PreparedStatement以防止SQL注入,以及分页查询和处理结果集的方法。文章最后讨论了分层架构在数据库操作中的应用。

一、概念
Java DataBase Connectivity,是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成。通过这些类和接口, JDBC把SQL语句发送给不同类型的数据库进行处理并接收处理结果。

二、JDBC两大类
1.对Java开发人员而言是API,对数据库提供商而言是接口。
2."面向开发人员:作为API, JDBC为程序开发提供标准的接口
3.面向数据库厂商:作为接口i数据库厂直,标准方法来实现数据库连接与操作(数据库驱动程序)。

三、类型
1.类型一:JDBC-ODBC桥加ODBC驱动程序)
2.类型二(本地API和部分基于Java的驱动程序)
3.类型三(为数据库中间件实现的纯Java驱动程序)
4.类型四(本地协议纯Java驱动程序)
5.如果我们编写的程序只访问一种类型的数据库,那么最好选择类型4。如果程序需要同时访问多个类型的数据库,那么最好选择类型3。如果类型3和4都不适用于所用的数据库,才选择类型2,类型1通常不会考虑为部署级的驱动程序,一般只在开发或者测试中才会使用

四、有两种方法可以设置一个到数据库的连接
1.使用java.sql.DriverManager类的静态方法getConnection(,该方法带一个URL代表数据源的名称
2.使用JNDI (Java Naming and Directory Interface, Java命名服务)查找数据源的名称,.JNDI返回一个javax.sql.DataSource对象,然后使用DataSource类的getConnection()方法

五、DriverManag和DataSourcer区别
1.DataSource类是从数据库连接池中获取连接,而DriverManager类是直接建立与数据库的连接
2.在大型多层应用开发中,一般都是首选使用DataSource类来连接数据库

六、步骤
1.加载驱动程序
加载MySQL驱动程序.| Class.forName (con.mysql.jdbc.Driver)
2.创建一个连接对象口
Strinq url = “idbc:mysql://127.0.0.1: 3306/数据库名称?”?后可加useUnicode=true&characterEncoding=UTE8解决中文乱码
. con = DriverManager.getConnection(url, userName, password);
3.创建声明语句对象
StringBuilder sb = new StringBuilder();
sb.append("(’ “” ‘)")
sb. append("(’ “” ')")
Statement statement = null;
statementcon.createstatement ();
:statement.executeUpdate(sb.tostring());
4.创建声明语句对象
1)使用声明语句对象的executeUpdate(sal)方法完成增删改操作
2)使用声明语句对象的executeQuery(sal)方法获得结果集对象
5.执行该语句.
.execute( )
executeUpdate( )
executeQuery( )
6.关闭各种对象

七、驱动网站
mvnrepository.com
1.ResultSet executeQuery(String sql):执行一个返回单个结果集的SOL语句,只能该方法执行SELECT语句。
2.int executeUpdate(String sql):使用该方法执行不返回结果集的DDL和DML (Update.Insert、 Delete)语句。如果执行的是DML,则返回值为执行sOL语句影响的行数。1如果是执行DDL语句,则返回值为0.
3.boolean execute(String sql):该方法可以执行任何SOL语句。如果执行后第一个结果为 ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或者没有任何结果,则返回false。只有在不清楚sOL语句的类型时,才推荐使用execute(方法。如果该语句产生了结果集,则通过getResultSet()方法获得该结果集。

八、statement
1.存在sql注入风险
2.sql语句无法复用
3.预编译:Preparedstatement
1)避免sql注入风险
2)sql语句可以复用
4.CallableStatement调用存储讨程
4.日期类型:Dateutil.date2str(stu.getCreateTime (), “yyyy-MM-dd hh:mm:ss”)
对象关系数据库映射
ORM----object RelationShip Database Mapping

九、分页
第一个步骤:按照条件统计查询,满足查询条件的总条数,判断总条数是否为0,不为0,才开始具体数据的查询
第二个步骤:查询具体的数据

十、处理结果集
next( )
getXXX( )

十一、处理大数据
Clob大文本数据
Blob大二进制数据.

十二、分层思想(三层架构)
表现层
MVC
业务层
事物脚本(使用面向过程来组织业务逻辑)
领域模型(使用面向对象来组织业务逻辑)
持久层
ORM
行数据入口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值