1. 添加依赖

在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>com.dm</groupId>
    <artifactId>dm7-jdbc</artifactId>
    <version>7.4.1</version>
</dependency>
  1. 配置数据源

在 application.properties 中添加以下配置:

spring.datasource.driver-class-name=com.dm.jdbc.driver.DmDriver
spring.datasource.url=jdbc:dm://localhost:5236/test
spring.datasource.username=your_username
spring.datasource.password=your_password

注意要填写正确的数据库用户名和密码。

  1. 创建自定义数据源

创建一个自定义数据源的配置类 DmDataSourceConfig,代码如下:

@Configuration
public class DmDataSourceConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return DataSourceBuilder.create().build();
    }
}

这里使用了 @Configuration 和 @Bean 注解来创建数据源 Bean,并使用了 @ConfigurationProperties 注解绑定配置文件中的属性值。

  1. 创建 JdbcTemplate

创建一个 JdbcTemplate Bean,代码如下:

@Configuration
public class JdbcTemplateConfig {

    @Autowired
    private DataSource dataSource;

    @Bean
    public JdbcTemplate jdbcTemplate() {
        return new JdbcTemplate(dataSource);
    }
}

这里使用了 @Autowired 注解注入自定义的数据源。

  1. 编写 DAO 层代码

编写 DAO 层代码,可以直接使用 JdbcTemplate 进行数据库操作,例如:

@Repository
public class UserDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public User getUserById(Long id) {
        String sql = "SELECT * FROM user WHERE id = ?";
        return jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));
    }

    public List<User> getAllUsers() {
        String sql = "SELECT * FROM user";
        return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
    }

    public int saveUser(User user) {
        String sql = "INSERT INTO user (name, age) VALUES (?, ?)";
        return jdbcTemplate.update(sql, user.getName(), user.getAge());
    }

    public int updateUser(User user) {
        String sql = "UPDATE user SET name = ?, age = ? WHERE id = ?";
        return jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getId());
    }

    public int deleteUserById(Long id) {
        String sql = "DELETE FROM user WHERE id = ?";
        return jdbcTemplate.update(sql, id);
    }
}

这里演示了常见的增删改查操作,使用了 JdbcTemplate 的 queryForObject、query、update 方法。

  1. 编写 Service 层代码

编写 Service 层代码,调用 DAO 层方法实现业务逻辑,例如:

@Service
public class UserService {

    @Autowired
    private UserDao userDao;

    public User getUserById(Long id) {
        return userDao.getUserById(id);
    }

    public List<User> getAllUsers() {
        return userDao.getAllUsers();
    }

    public int saveUser(User user) {
        return userDao.saveUser(user);
    }

    public int updateUser(User user) {
        return userDao.updateUser(user);
    }

    public int deleteUserById(Long id) {
        return userDao.deleteUserById(id);
    }
}

这里使用了 @Autowired 注解注入 UserDao,调用其中的方法实现业务逻辑。

  1. 编写 Controller 层代码

编写 Controller 层代码,处理 HTTP 请求并调用 Service 层方法,例如:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @PostMapping
    public int saveUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @PutMapping("/{id}")
    public int updateUser(@PathVariable Long id, @RequestBody User user) {
        user.setId(id);
        return userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public int deleteUserById(@PathVariable Long id) {
        return userService.deleteUserById(id);
    }
}

这里使用了 @Autowired 注解注入 UserService,处理 HTTP 请求并调用其中的方法,例如使用 @GetMapping 注解处理 GET 请求。

  1. 测试

启动应用程序并访问 http://localhost:8080/user 可以查看所有用户信息。

发起 POST 请求 http://localhost:8080/user 新增用户信息。

发起 PUT 请求 http://localhost:8080/user/{id} 修改用户信息。

发起 DELETE 请求 http://localhost:8080/user/{id} 删除用户信息。

发起 GET 请求 http://localhost:8080/user/{id} 可以查看单个用户信息。

以上就是 Spring Boot 集成达梦数据库的详细步骤,希望对您有所帮助。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐