JDBC和DAO

JDBC

JDBC是一种用于执行SQL语句的java API,可以为多种关系型数据库提供统一的访问方式
它由一组java语言编程的类和接口注册,JDBC提供了一种标准,据此可以构建更高级的工具和接口,使数据库开发人员能够更加便捷的开发数据库应用程序

ps:图解释,因为JDBC本身就是java连接数据库的一个标准,进行数据库的连接,因为市面上有很多不同的
数据库厂商 ,为了宝成JDBC可以对其数据库进行操作,厂商需要提供字节的驱动程序来帮组JDBC对数据库的连接

JDBC是可以在javaAPI中查找到了,封装JDBCAPI的包是java.sql
我们运用的API全部来源于java.sql包下,绝对不能出现来来自于驱动包的数据
千万不要引入 coom.mysql.xxx类 —> 都是驱动包的


获取数据的连接
1.将Mysql的驱动包拷贝到项目中
2.build path 将jar加载到当前工程中
先找到jar通过鼠标右键,build path --> add to build path

使用DriverManager类来获取当前数据库的连接
getConnection(“jdbc:mysql://IP地址:3306/数据库名”, “数据库用户名”, “密码”);
getConnection为静态方法 ,得到一个Connection对象
Connection接口 --> JDBC和数据库之间执行SQL语句


完成JDBC的相关操作
操作步骤:
1.加载注册驱动
2.获取连接对象
3.创建/获取语句对象
4.执行SQL
5.释放资源

创建一个表

//1.写入一个sql语句
String sql = "create table t_student(
id BIGINT PRIMARY KEY AUTO_INCREMENT,//id为主键,自增
name varchar(50),
age int
)";
//2.加载当前注册驱动
Class.forName("com.mysql.jdbc.Driver");
//3.获取连接对象
Connection conn = DriverManager.getConnection("jdbc.mysql://localhost:3306/db1","root", "123456");
//4.通过连接对象创建数据库中建表语句对象
		Statement st =  conn.createStatement();
		//5.执行sql,参数是字符串--->SQL语句
		int rows = st.executeUpdate(sql);
		//6.rows若是0时没有实际返回值的建表语句,行数insert  update  delete 回返回行数
		System.out.println(rows);
		
		//释放资源
		st.close();
		conn.close();
}

DAO:

通过一种方式将这些相同代码进行一个封装,对外提供统一的接口,这样操作数据的接口统一命名为 DAO
数据的分离处理可以很好的体现 MVC设计模式的结构

DAO包主要的作用:
其实就是完成对数据库的增删改查(CRUD)
DAO(Data Access Object)
DAO就是和数据完成数据交互的业务逻辑 --> 对应着MCV中M层

DAO包的设计:
DAO的设计规范:
DAO包是有DAO接口和DAO实现类和描述类组成,在开发中会多件一个包测试DAO包

DAO的命名:
公司域名倒写.项目名.DAO --> 主包
例子:
com.qq.项目名称.domain --> 存储到是domain文件
com.qq.项目名称.dao --> 存储dao的接口 -->封装了处理数据库的方法
com.qq.项目名称.dao.impl --> 存储dao包下的实现类
com.qq.项目名称.test --> 存储的是测试文件 --> 项目开发完成必须删除

简单解释一下对应包存储的文件:
domain包 --> 存描述类会以英文单词描述 例如Student --> JAVABEAN规范
dao包 --> 接口接口中的名称 I+ domain下的描述类名称+DAO IStudentDAO -->IXXXDAO
dao包的实现 impl—>名称 XXXDAOImpl --> 接口的实现了 domain下的描述类名称
test包 --> 名称 XXXDAOTest --> domain下描述类的名称

ps:java项目其实是不安全,可以通过反编译jar包拿到项目原码
实际上传java项目时,会对项目中所有类,接口,变量进行加密

DAO封装

  1. 创建domian包中的描述了
  2. 创建当前dao包封装CRUD方法
  3. 创建当前dao包的实现类来完成这些方法

ps:测试这个逻辑需要将表中的数据id重新设置成Long , 从新创建一个表
代码中的表使用t_student所有这里需要注意一下Student这个类中id

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值