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等等。对于开发人员来说,了解这些数据库连接技术是非常有用的,可以提高代码的编写效率和应用的质量。今后,随着大数据时代的到来和技术的不断变化,我们也需要不断地学习和掌握最新的数据库连接技术,以适应不断变化的市场需求。