JDBC连接的进化
发布日期:2022-02-17 02:39:53
浏览次数:25
分类:技术文章
本文共 3372 字,大约阅读时间需要 11 分钟。
JDBC核心技术
持久化:
1.把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘是加以固话,而持久化的实现过程大多通过各种关系数据库来完成 2.持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件中、XML数据文件中java中的数据存储技术
在java中,数据库存储技术可分为以下几类
JDBC直接访问数据库 JDO技术 第三方O/R工具,如Hibernate、Myblats Jdbc是java访问数据库的基石,JDO、Hibernate、MyBalts等只是封装好的JDBCJDBC介绍
JDBC是一种独立于特定数据库管理系统,通用的SQL数据存储和操作的公共接口,定义了用来访问数据库的标准java类库,使用这些类库可以以一种标准的方法,方便地访问数据库资源。
Jdbc为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。 JDBC的目标是使java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发进程。 url jdbc:mysql:协议 localhost:ip地址 3306:默认mysql的端口号 test:test数据库连接方式
import java.sql.SQLException;import java.util.Properties;public class ConnectionTest { @Test public void testConnection1() throws SQLException{ Driver driver = new com.mysql.jdbc.Driver(); 驱动 String url = "jdbc:mysql://localhost:3306/test"; Properties info = new Properties(); info.setProperty("user","root"); info.setProperty("password","root"); Connection conn = driver.connect(url, info); System.out.println(conn); }}
这种移植性不好
所以要使用反射@Test public void testConnection2() throws Exception { Class clazz = Class.forName("com.mysql.jdbc.Driver"); Driver driver=(Driver)clazz.newInstance(); String url = "jdbc:mysql://localhost:3306/test"; Properties info = new Properties(); info.setProperty("user","root"); info.setProperty("password","root"); Connection conn = driver.connect(url, info); System.out.println(conn); }}
@Test public void testConnection3() throws Exception{ Class clazz = Class.forName("com.mysql.jdbc.Driver"); Driver driver=(Driver)clazz.newInstance(); String url = "jdbc:mysql://localhost:3306/test"; String password="root"; String user="root"; DriverManager.registerDriver(driver); Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); }}
使用drivemanager替换driver
@Test public void testConnection4() throws Exception{ //获取三个连接的基本信息 String url = "jdbc:mysql://localhost:3306/test"; String password="root"; String user="root"; 加载Driver Class.forName("com.mysql.jdbc.Driver"); 注册驱动// Driver driver=(Driver)clazz.newInstance();// DriverManager.registerDriver(driver); //获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); }}
相较于方式3,省略了注册驱动,因为在mysql的Driver类中声明了
static { try { DriverManager.registerDriver(new Driver()); } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } }
还有改进 将基本信息写入配置文件,用输入流读进来
@Test public void testConnection5() throws Exception{// 1.读取配置文件中的4个基本信息 InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties pros = new Properties(); pros.load(is); String user = pros.getProperty("user"); String password = pros.getProperty("password"); String url = pros.getProperty("url"); String driverClass = pros.getProperty("driverClass");// 2.加载驱动 Class.forName(driverClass); //3.获取连接 Connection conn =DriverManager.getConnection(url,user,password); System.out.println(conn); }}
实现了代码数据分离,解耦。
转载地址:https://blog.csdn.net/qq_39814938/article/details/106722322 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月08日 07时35分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
git中tag标签的用法
2019-04-26
boost::bad_function_call用法的测试程序
2019-04-26
SpringMVC框架学习总结
2019-04-26
boost::function_types::is_function用法的测试程序
2019-04-26
boost::geometry::clear用法的测试程序
2019-04-26
asp 指定读取前几条记录
2019-04-26
大数据_Hbase-内容回顾和补充---Hbase工作笔记0018
2019-04-26