1.数据库编程的必备条件
编程语言:C, C++. JAVA, python等
数据库:mysql, oracle, sql server等
数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提
供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,
要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。
2.java数据库编程:JDBC
JDBC是执行SQL语句的专用java api (用于连接java数据库的)
JDBC :java标准库,提供的一套API(类+方法) 统一各种数据库提供的API
这样图可以清楚的表示JDBC的作用了
3. jar包导入项目中
(jar包可以在官网自行下载)
第一步:新建一个项目(名字 lib 的目录,lib是library库的缩写,也可写其他名字)
第二步:
- 然后右键这个目录选择【添加为库…】
点击add就会出来下面这个图片的内容 默认点ok就行
导入完成
4.编写代码连接数据库
1.创建dataSource 数据源 (描述了数据库服务器在哪里)
使用对象获取方法
DataSource dataSource = new MysqlDataSource();
下面的方法 setUrl ,setUser, setPassword都是MysqlDataAource这个接口实现类里面的方法,由于向上转型后父类无法调用子类的独有的方法,所以我们还需要向下转型
通过强制类型转换就可以调用我们需要使用的方法了
这里有个问题是为什么不直接使用MysqlDataSource呢 (这样就可以不用上下转换了)
这里要是使用这个代码会产生隐患
MysqlDataSource mysqlDataSource = new MysqlDataSource();
因为我们在设计一些接口、类的时候始终要遵循【高内聚 · 低耦合】的思想,即类的内部各个方法之间要紧密关联,但类与类之间不要产生太大的依赖
因为在上面我们使用的是【MysqlDataSource 】,所以在程序的其他方法中,我们可能也需要使用到这个类去做一个接受,就是因为这种高内聚的原因,导致了【MysqlDataSource 】被大量地进行扩散,此危害性就在于后续我们的项目要更换数据库的就需要改动很多的代码,加大了工作量!!!
setUrl括号里面的内容了解即可
setUser 用户名默认是root即可
setPassword 安装mysql数据库时设置的密码
2.DriverManager
(驱动管理类)的静态方法获取
区别:
DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源时,通过connection.close()都是关闭物理连接。
标签:JDBC,MysqlDataSource,SQL,数据库,编程,statement,sql From: https://blog.csdn.net/2401_83177222/article/details/142175101
DataSource提供连接池的支持。连接池在初始化时将内置了【数据库连接池】,这些连接是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将Conncetion连接对象回收