SpringBoot 数据库操作(集成MyBatis)

Spring对持久化的支持,不单只支持JDBC,为各种支持的持久化技术都提供了简单的模板和回调:

本章节主要讲解通过SpringBoot如何访问操作数据库,以下述三种方式来操作数据库:

JdbcTemplate
JPA
MyBatis
本文以简单的对数据库表的基本操作为例进行说明。

数据库使用MySQL数据库,新建t_user表。

CREATE TABLE `t_user` (
  `userid` varchar(10) NOT NULL,
  `username` varchar(255) DEFAULT NULL,
  `sex` varchar(2) DEFAULT NULL,
  `age` int(3) DEFAULT NULL,
  PRIMARY KEY (`userid`)
);
1、JdbcTemplate
      JdbcTemplate是Spring对JDBC的模板封装,提供了一套JDBC模板,能够让我们写持久层代码时减少冗余代码,简化JDBC代码,使代码更加简洁,有点像DBUtils。JdbcTemplate在实际开发中一般不会使用,通常都是使用MyBatis、Hibernate等更加成熟、优秀的数据持久层框架,这里只是对它的使用做一说明,知道如何用它就可以啦。

1.1 引入JdbcTemplate依赖包
在工程的pom.xml中,添加如下依赖包信息。

<!-- JdbcTemplate依赖包 -->
<dependency>
          <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
如果没有导入mysql依赖包,则需要添加mysql-connector-java。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
1.2 持久层(dao层)
    实现持久层dao完成数据的插入。

com.xcbeyond.springboot.dao.UserDao.java

package com.xcbeyond.springboot.dao;
 
import com.xcbeyond.springboot.model.User;
 
public interface UserDao {
    /**
     * 插入User
     * @param user
     * @return
     */
    public int insertUser(User user);
}
com.xcbeyond.springboot.dao.impl.UserDaoJdbcTemplateImpl.java

package com.xcbeyond.springboot.dao.impl;
 
import java.util.HashMap;
import java.util.Map;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;
 
import com.xcbeyond.springboot.dao.UserDao;
import com.xcbeyond.springboot.model.User;
/**
 * JdbcTemplate方式完成对t_user表的操作
 * @author xcbeyond
 * 2018年7月12日上午11:53:44
 */
//作用于持久层.用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常
@Repository
public class UserDaoJdbcTemplateImpl implements UserDao {
    
    //自动导入依赖的bean
    @Autowired
    private NamedParameterJdbcTemplate jdbcTemplate;
    
    @Override
    public int insertUser(User user) {
        String sql = "INSERT INTO t_user (userid, username, sex, age) VALUES (:userid, :username, :sex, :age)";
        Map<String,Object> param = new HashMap<String,Object>();
        param.put("userid", user.getUserId());
        param.put("username", user.getUserName());
        param.put("sex", user.getSex());
        param.put("age", user.getAge());
        
        return jdbcTemplate.update(sql, param);
    }
 
}
1.3、控制层(Controller)
com.xcbeyond.springboot.controller.ControllerDemo.java

(完整代码请从文末github地址获取)

/**
 * 通过JdbcTemplate方式插入用户信息
* @return
*/
@RequestMapping("/insertUserByJdbcTemplate")
public String insertUserByJdbcTemplate() {
    User user = new User();
    user.setUserId("xcbeyond");
    user.setUserName("xcbeyond");
    user.setSex("F");
    user.setAge(18);
        
    int ret = userDao.insertUser(user);
    return String.valueOf(ret);
        
}
在浏览器中输入http://localhost:8888/demo/insertUserByJdbcTemplate,完成数据的插入。

2、JPA
    JPA(Java Persistence API)是java持久层API,一个简化对象关系映射来管理Java应用程序中关系数据库的规范,可以直接使用对象而不是使用SQL语句。在JPA中,我们可以通过实体类轻松地操作数据库中的表。

更多请见:http://www.mark-to-win.com/tutorial/50408.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值