肖sir___第二个月java操作JDBC_02

1.1 JDBC概述
JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现。

 

 

2.1 JDBC编程
装载相应数据库的JDBC驱动并进行初始化
Java 连接 MySQL 需要驱动包,
最新版下载地址为:http://dev.mysql.com/downloads/connector/j/解压后得到 jar 库文件,然后在对应的项目中导入该库文件。
初始化驱动
通过初始化驱动类com.mysql.jdbc.Driver,
该类就在 mysql-connector-java-5.1.13中。
例如:Class.forName("com.mysql.jdbc.Driver");
Class.forName是把这个类加载到JVM中,加载的时候,就会执行其中的静态初始化块,完成驱动的初始化的相关工作
 
 
2.2 JDBC编程
建立JDBC和数据库之间的Connection连接
这里需要提供:
数据库服务端的IP地址:127.0.0.1 (如果连接其他电脑上的数据库,填写相应的IP地址)
数据库的端口号: 3306 (mysql默认端口号)
数据库名称: dcs(根据你自己数据库中的名称填写)
编码方式 :UTF-8
账号 :root
密码: 123456(如果你在创建数据库的时候没有使用默认的账号和密码,请填写自己
设置的账号和密码)
Connection c =DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/dcs?characterEncoding=UTF-8", "root", “123456");
 
2.3 JDBC编程
创建Statement或者PreparedStatement接口,执行SQL语句
使用Statement接口
Statement接口创建之后,可以执行SQL语句,完成对数据库的增删改查。
在Statement中使用字符串拼接的方式编写sql语句。
使用PreparedStatement接口
PreparedStatement与 Statement一样,PreparedStatement也是用来执行sql语句的
与创建Statement不同的是,需要根据sql语句创建PreparedStatement。除此之外,还能够通过设置参数,指定相应的值,而不是Statement那样使用字符串拼接
 
2.4 JDBC编程
处理和显示结果
ResultSet rs = s.executeQuery(sql);
利用While(rs .next()){…}循环将集合ResultSet中的结果遍历出来。
 
获取数据的值,有两种方式:
通过字段名获取
rs.get字段类型(“字段名”);
通过字段索引获取
rs . getInt(int columnIndex) ;
columnIndex - 第一个列是 1,第二个列是 2
 
2.5 JDBC编程
释放资源
在JDBC编码的过程中我们创建了Connection、ResultSet等资源,这些资源在使用完毕之后是一定要进行关闭的。关闭的过程中遵循从里到外的原则
 
3.1 JDBC总结
Statement和PreparedStatement的异同及优缺点
同:两者都是用来执SQL语句的
异:PreparedStatement需要根据SQL语句来创建,
它能够通过设置参数,指定相应的值,不是像Statement那样使用字符串拼接的方式。
PreparedStatement的优点:
1、其使用参数设置,可读性好,不易记错。
在statement中使用字符串拼接,可读性和维护性比较差。
2、其具有预编译机制,性能比statement更快。
3、其能够有效防止SQL注入攻击
 
3.2 JDBC总结
execute, executeQuery和executeUpdate的区别
相同点:二者都能够执行增加、删除、修改等操作。
不同点:
1、 executeQuery可以执行查询语句,然后通过getResult把结果取出来。
2、execute返回Boolean类型,true表示执行的是查询语句,false表示执行的insert、
delete、update等。
3 、 executeUpdate的返回值是int,表示有多少条数据受到了影响。
 
4.1 初识三层架构
三层架构的理解:可以和生活练习起来
可以借鉴服务员,厨师,采购员之间的关系:
顾客直接和服务员打交道,顾客和服务员(UI表示层)说:我要一个炒茄子,而服务员不负责炒茄子,她就把请求往上递交,传递给厨师(BLL业务逻辑层),厨师需要茄子,就把请求往上递交,传递给采购员(DAL数据访问层),采购员从仓库里取来茄子传回给厨师,厨师响应cookEggplant()方法,做好炒茄子后,又传回给服务员,服务员把茄子呈现给顾客
4.2 初识三层架构

 

 

 
posted @ 2022-10-01 14:41  xiaolehua  阅读(14)  评论(0编辑  收藏  举报