前言:
在现代的软件开发中,数据库连接和数据访问是每个应用程序都必须面对的核心问题之一。为了有效地管理数据库连接并执行各种数据库操作,开发人员经常会选择使用一些成熟的技术和工具。本文将介绍如何利用 JDBC、MyBatis 和 Druid 数据库连接池来实现数据库连接管理和数据访问功能,从而帮助开发人员更好地构建稳健的应用程序。
1.引入jdbc和mybatis和druid数据库连接池的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.14</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!-- spring中操作数据库专用的包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.30</version>
</dependency>
<!-- spring整合mybatis用的jar包 由mybatis提供,由spring提供接口-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.3</version>
</dependency>
2.生成数据库的的dataSoure实现数据库之间的连接管理和数据访问功能
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean//配置一个DataSource
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
return ds;
}
}
3.整合mybatis的两个核心对象交给Ioc进行管理
//Spring整合mybatis
public class MybatisConfig {
@Bean//负责连接数据库,还负责管理MyBatis的各种配置信息,执行sql语句
public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){
SqlSessionFactoryBean ssf = new SqlSessionFactoryBean();
ssf.setTypeAliasesPackage("org.example.config.entity");//设置类型别名的包(得到到数据封装到哪个javabean)
ssf.setDataSource(dataSource);//连接数据库的dataSource
return ssf;
}
@Bean//Spring框架中用于自动扫描和注册MyBatis Mapper接口的类。
public MapperScannerConfigurer mapperScannerConfigurer(){
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("org.example.dao");//配置映射所在的包
return msc;
}
}
4.书写数据层的代码
package org.example.dao;
import org.apache.ibatis.annotations.*;
import org.example.entity.Account;
import java.util.List;
@Mapper
public interface AccountDao {
@Insert("INSERT INTO spring_study.account (name, money) VALUES ('John', 1000);")
void save(Account account);
@Update("UPDATE spring_study.account SET name = #{name}, money = #{money} WHERE id = #{id};")
void update(Account account);
@Delete("DELETE FROM spring_study.account WHERE id = #{id};")
void delete(Account account);
@Select("SELECT * FROM spring_study.account where id = #{id};")
Account findById(int id);
@Select("SELECT * FROM spring_study.account;")
List<Account> findAll();
}
5.使用spring核心容器调用
public class App {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
AccountDao accountDao = context.getBean(AccountDao.class);
Account a = accountDao.findById(2);
System.out.println(a);
}
}
总结:
通过本文的介绍,我们了解了如何使用 JDBC、MyBatis 和 Druid 数据库连接池来实现数据库连接管理和数据访问功能。首先,我们引入了相应的依赖,包括 Druid、MyBatis 和 MySQL 连接驱动等。然后,我们创建了一个 JdbcConfig 类来配置数据源,并通过注解 @Bean 将数据源交给 Spring IoC 容器管理。接着,我们利用 MyBatisConfig 类来整合 MyBatis,并配置了 SqlSessionFactoryBean 和 MapperScannerConfigurer,以便在 Spring 中管理 MyBatis 的核心对象和 Mapper 接口。
通过这些步骤,我们成功地搭建了一个基于 JDBC、MyBatis 和 Druid 的数据库连接和数据访问框架,为应用程序提供了可靠的数据库支持。这种整合能够有效地简化开发过程,提高代码的可维护性和可扩展性,是构建高性能、稳健的应用程序的重要组成部分。