专栏首页好好学java的技术栈几句简单代码解决springboot整合JdbcTemplate访问数据库进行操作

几句简单代码解决springboot整合JdbcTemplate访问数据库进行操作

这篇文章我们看一下springboot整合jdbc,做一个小例子来讲解。

数据源配置

pom.xml文件中导入

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring‐boot‐starter‐jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql‐connector‐java</artifactId>
    <scope>runtime</scope>
</dependency>

然后在application.properties中配置数据库信息:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=0911SIHAI
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

使用JdbcTemplate操作数据库

这里我们以user进行对数据库的操作,做一个小例子

user代码:

/**
 * @author 
 * @date 2018/7/26 16:09
 */
public class User {


    private String username;

    private String password;

    //getter setter
}
  • 定义包含有插入、删除、查询的抽象接口UserService
/**
 * @author 
 * @date 2018/7/26 16:07
 */
public interface UserService {

    /**
     * 新增用户
     * @param username
     * @param password
     */
    void add(String username, String password);

    /**
     * 根据name删除一个用户高
     * @param userName
     */
    void deleteByName(String userName);

    /**
     * 获取所有用户
     */
    List<User> getAllUsers();


}
  • 通过JdbcTemplate实现UserService中定义的数据访问操作
/**
 * @author 
 * @date 2018/7/26 16:11
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void add(String username, String password) {
        jdbcTemplate.update("insert into user values (?,?)",username,password);
    }

    @Override
    public void deleteByName(String userName) {
        jdbcTemplate.update("delete from user where username = ?",userName);
    }

    @Override
    public List<User> getAllUsers() {
        return jdbcTemplate.query("select * from user",
                new RowMapper(){
                    @Override
                    public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                        User user  = new User();
                        user.setUsername(rs.getString("username"));
                        user.setPassword(rs.getString("password"));
                        return user;
                    }
        } );
    }
}
  • 对用户操作进行测试
/**
 * @author 
 * @date 2018/7/26 16:22
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserTest {

    @Autowired
    private UserService userService;

    @Test
    public void testAdd(){

        userService.add("sihai","abc");
        userService.add("yan","abc");
    }

    @Test
    public void testQuery(){

        List<User> users = userService.getAllUsers();

        Assert.assertEquals(2, users.size());
    }
}

这里只是一个简单的例子,但是基本的jdbc的操作是有了,具体的jdbcTemplate的使用可以查看

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html

本文分享自微信公众号 - 好好学java(SIHAIloveJAVA)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 轻松看懂java设计模式简单工厂模式

    简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

    好好学java
  • 常用的设计模式汇总,超详细!

    来源:cnblogs.com/ILoke-Yang/p/8054466.html

    好好学java
  • HttpServletRequest这篇文章就够了

    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的...

    好好学java
  • Netty整理(二) 顶

    我们将EchoServerHandler修改如下,增加全部的监听事件,并打印事件方法名称。

    算法之名
  • Hadoop数据分析平台实战——260用户数据ETL离线数据分析平台实战——260用户数据ETL

    离线数据分析平台实战——260用户数据ETL ETL目标 解析我们收集的日志数据,将解析后的数据保存到hbase中。 这里选择hbase来存储数据的主要原因就...

    Albert陈凯
  • 抽象工厂模式

    抽象工厂中 接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 在简单工厂中,我们需要一辆车就用CarFact...

    OPice
  • Android OkGo网络请求库 自定义回调支持带泛型的对象

    这里写了两种方式请求接口 (文中用了Java和Kotlin两种语言 没有特殊标示的都是Java)

    剑行者
  • 找到源码了!使用python+机器学习方法进行情感分析(详细步骤)

    使用python+机器学习方法进行情感分析(详细步骤) http://www.360doc.com/content/16/0725/19/15165994_57...

    机器学习AI算法工程
  • .NET基础拾遗(2)面向对象的实现和异常的处理基础

      在C#中申明一个类型时,只支持单继承(即继承一个父类),但支持实现多个接口(Java也是如此)。像C++可能会支持同时继承自多个父类,但.NET的设计小组认...

    Edison Zhou
  • SpringMVC组件-常用注解学习笔记

    ​ required:请求参数中是否必须提供此参数,默认值:true 表示必须提供,如果不提供将报错

    地道小菜鸟

扫码关注云+社区

领取腾讯云代金券