Java如何连接不同类型的数据库 (java连接不同数据库)

一、前言

随着数据存储技术的不断发展和变革,数据库技术也在不断地发展和变化。当前,市场上存在着多种类型的数据库,如关系型数据库、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如何连接不同类型的数据库 (java连接不同数据库)