Java如何连接不同类型的数据库 (java连接不同数据库)
  9cnbBwHCpWTA 2023年11月22日 14 0

一、前言

随着数据存储技术的不断发展和变革,数据库技术也在不断地发展和变化。当前,市场上存在着多种类型的数据库,如关系型数据库、NoSQL数据库、HR/HRDBMS等,而Java作为一门强大而且广泛应用的语言,也需要具有良好的能力来连接和操作这些不同类型的数据库。

本文将介绍Java连接不同类型的数据库的方法,包括连接关系型数据库、连接NoSQL数据库、连接HR/HRDBMS等等。

二、连接关系型数据库

关系型数据库(即传统的SQL数据库)是当前最为普遍的数据库类型,在Java中连接关系型数据库的方法也是比较常见的。

1.使用JDBC API连接关系型数据库

Java中可以使用JDBC API连接关系型数据库,JDBC(Java Database Connectivity)是Java语言访问关系型数据库的标准规范。使用JDBC连接关系型数据库涉及到以下步骤:

Step 1:加载连接驱动

需要将所需要连接的数据库的连接驱动加载到当前项目中。不同类型的数据库对应着不同的连接驱动,比如连接MySQL需要使用mysql-connector-java驱动,连接Oracle需要使用ojdbc14.jar驱动。

//加载MySQL连接驱动

Class.forName(“com.mysql.jdbc.Driver”);

Step 2:创建数据库连接

通过在Java代码中创建数据库连接,我们就能在Java中连接到相应的关系型数据库中。在创建数据库连接时,需要指定数据库的URL、用户名、密码等信息。

String url = “jdbc:mysql://127.0.0.1:3306/test”;

String user = “root”;

String password = “123456”;

Connection conn = DriverManager.getConnection(url, user, password);

Step 3:执行SQL语句

有了数据库连接后,就可以在Java中执行SQL语句了。在执行SQL操作前,需要使用Connection对象创建一个Statement对象,然后通过Statement对象执行相应的SQL语句执行数据库操作。

PreparedStatement pst = conn.prepareStatement(“SELECT * FROM student WHERE id = ?”);

//绑定参数

pst.setInt(1,1);

ResultSet rs = pst.executeQuery();

while(rs.next()) {

System.out.println(“id:” + rs.getInt(“id”));

System.out.println(“name:” + rs.getString(“name”));

}

2.使用Spring JDBC连接关系型数据库

Spring JDBC是Spring框架中提供的一种访问关系型数据库的模块,使用Spring JDBC连接关系型数据库时,可以大量地减少编写重复代码的工作量,提高代码的可复用性、可维护性和可扩展性。

使用Spring JDBC连接关系型数据库的步骤如下:

Step 1:添加相关依赖库

需要在pom.xml文件中添加相关的Spring JDBC依赖库,例如:

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-jdbc</artifactId>

<version>4.2.6.RELEASE</version>

</dependency>

Step 2:配置数据源

需要在Spring文件配置文件中配置数据源,告诉Spring框架如何访问当前的关系型数据库。

<bean id=”dataSource” class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>

<property name=”driverClassName” value=”com.mysql.jdbc.Driver” />

<property name=”url” value=”jdbc:mysql://localhost:3306/test” />

<property name=”username” value=”root” />

<property name=”password” value=”123456″ />

</bean>

Step 3:执行DAO操作

使用Spring JDBC时,需要创建一个DAO对象,并通过该对象执行相关的数据库操作。比如:

public class StudentDaoImpl implements StudentDao {

private NamedParameterJdbcTemplate jdbcTemplate;

public void setDataSource(DataSource dataSource) {

jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);

}

public Student findById(int id) {

MapSqlParameterSource paramSource = new MapSqlParameterSource();

paramSource.addValue(“id”, id);

String sql = “SELECT * FROM student WHERE id = :id”;

Student student = jdbcTemplate.queryForObject(

sql, paramSource, new StudentRowMapper());

return student;

}

}

三、连接NoSQL数据库

NoSQL数据库(即非关系型数据库)由于其良好的可扩展性和高性能特性,在近些年的快速发展中,也成为了很多企业非常关注的一种数据库类型。Java中连接NoSQL数据库的方式也随之而来。

1.使用Java驱动连接NoSQL数据库

NoSQL数据库中的Java驱动通常都是由各自的开发者或者社区提供的。使用Java驱动连接NoSQL数据库仅需要将驱动导入项目,并正确地配置数据库连接参数即可,具体使用方式各有不同。

比如,连接MongoDB时,需要使用mongo-java-driver驱动。连接Redis时,需要使用Jedis库。

//连接MongoDB

MongoClient mongoClient = new MongoClient(“localhost”, 27017);

DB db = mongoClient.getDB(“test”);

//连接Redis

Jedis jedis = new Jedis(“localhost”, 6379);

jedis.auth(“password”);

2.使用ORM框架连接NoSQL数据库

ORM(Object Relational Mapping)是一种Java语言映射技术,能够帮助我们将NoSQL数据库中的数据映射为Java对象。当我们需要在Java中连接NoSQL数据库时,一种较好的方式是使用ORM框架来进行操作,目前比较流行的ORM框架有mybatis-redis和Spring Data。

通过ORM框架连接NoSQL数据库的步骤如下:

Step 1:添加相关依赖库

需要在pom.xml文件中添加相关的ORM依赖库,例如:

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>1.1.1</version>

</dependency>

<dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-mongodb</artifactId>

</dependency>

Step 2:配置数据源

需要在项目中配置数据源,告诉ORM框架如何访问当前的NoSQL数据库。

比如,连接MongoDB时,我们可以通过如下方式配置数据源:

mongo.host=127.0.0.1

mongo.port=27017

mongo.username=

mongo.password=

mongo.database=test

@Configuration

@PropertySource(value = {“classpath:/mongodb.properties”})

@EnableMongoRepositories(basePackages = “com.mypackage.repository”)

public class MongoConfig extends AbstractMongoConfiguration {

@Value(“${mongo.host}”)

private String mongoHost;

@Value(“${mongo.port}”)

private String mongoPort;

@Value(“${mongo.username}”)

private String mongoUsername;

@Value(“${mongo.password}”)

private String mongoPassword;

@Value(“${mongo.database}”)

private String mongoDatabase;

@Override

protected String getDatabaseName() {

return mongoDatabase;

}

@Override

public MongoClient mongoClient() {

MongoClient mongoClient = new MongoClient(mongoHost, Integer.parseInt(mongoPort));

MongoCredential credential = MongoCredential.createCredential(mongoUsername, getDatabaseName(), mongoPassword.toCharArray());

mongoClient = new MongoClient(new ServerAddress(mongoHost, Integer.parseInt(mongoPort)), Arrays.asList(credential));

return mongoClient;

}

}

3.连接HR/HRDBMS

HR数据库或者HRDBMS(Hierarchical and Relational Database Management Systems)是一种不同于传统关系型数据库的数据库类型,它采用了树状结构存储数据,而不是传统的表格模式存储数据。

Java中连接HR数据库的方法和连接关系型数据库的方式比较类似,但需要使用到HR数据库的专用驱动,例如H2数据库。

1.使用H2数据库连接HR/HRDBMS

H2数据库是一款轻量级的Java关系型数据库,它可以用来连接HR/HRDBMS。使用H2数据库连接HR/HRDBMS需要进行以下操作:

Step 1:加载H2连接驱动

//加载HR连接驱动

Class.forName(“org.h2.Driver”);

Step 2:创建数据库连接

String url = “jdbc:h2:~/hrdb”;

String user = “sa”;

String password = “”;

Connection conn = DriverManager.getConnection(url, user, password);

Step 3:执行SQL语句

//执行SQL语句

PreparedStatement pst = conn.prepareStatement(“SELECT * FROM person”);

ResultSet rs = pst.executeQuery();

while(rs.next()) {

System.out.println(“name:” + rs.getString(“name”));

System.out.println(“age:” + rs.getInt(“age”));

}

2.使用Hibernate连接HR/HRDBMS

Hibernate是一种流行的Java ORM框架,它可以用来连接HR/HRDBMS。使用Hibernate连接HR/HRDBMS需要进行以下操作:

Step 1:添加hibernate-hrdbms驱动

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-hrdbms</artifactId>

<version>5.4.5.Final</version>

</dependency>

Step 2:配置Hibernate.cfg.xml

<hibernate-configuration>

<session-factory>

<property name=”hibernate.connection.driver_class”>org.h2.Driver</property>

<property name=”hibernate.connection.url”>jdbc:h2:~/hrdb</property>

<property name=”hibernate.connection.username”>sa</property>

<property name=”hibernate.connection.password”></property>

<property name=”hibernate.dialect”>org.hibernate.dialect.H2Dialect</property>

<!– HRDBMS specific mapping –>

<property name=”hibernate.default_schema”>hrdb</property>

<!– mapping files –>

<mapping class=”com.mypackage.entity.Person” />

</session-factory>

</hibernate-configuration>

Step 3:执行HR操作

//开启Session

SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

Session session = sessionFactory.openSession();

//执行HR操作

List<Person> personList = session.createQuery(“FROM Person”).list();

for (Person person : personList) {

System.out.println(“name:” + person.getName());

System.out.println(“age:” + person.getAge());

}

四、

本文介绍了Java连接不同类型的数据库的方法,包括连接关系型数据库、连接NoSQL数据库、连接HR/HRDBMS等等。对于开发人员来说,了解这些数据库连接技术是非常有用的,可以提高代码的编写效率和应用的质量。今后,随着大数据时代的到来和技术的不断变化,我们也需要不断地学习和掌握最新的数据库连接技术,以适应不断变化的市场需求。

相关问题拓展阅读:

一个java工程如何连接两个数据库

jdbc连接的话可以建多个jdbc链接类

hibernate等框架可以在bean上可以指定数据库

如果说都不符合你的情况,请具体说明你的情况

可以的,使用jdbc的链接代码,在你需要的地方建立两个连接即可。每个连接连接到一个数据库。

因为Connection是从Class.forName()中的出来的,所以你想建立几个就几个。

Java连接多个数据库有什么开源实现吗

对于一个应用连接多个数据库的问题,如果是因为数据量大而分库形成的多个数据库,可以在数据库的层面使用分布式中间件,比如:cobar或amoba都可以。

如果是分表形成的多库,则建议使用原生的jdbc或Spring配置多个数据源,根据业务逻辑,通过代码动态查询。

关于java连接不同数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月22日 0

暂无评论

9cnbBwHCpWTA