java Spring JdbcTemplate配合mysql数据库将整张表数据以List集合形式查询到

我们之前说过,查询操作 分为三种大类型返回

返回某个值 在 java Spring JdbcTemplate配合mysql查询一个表中具体有几条数据中讲过
返回一个对象 在 java Spring JdbcTemplate配合mysql将表中的一条记录查询成一个类的数据对象
中有讲过

那么 本文 将要将第三种 查询返回一个集合

查询集合则更加常见 基本只能系统都需要渲染列表 就是通过集合实现

首先 准备工作 一个 test数据库 下面放一个 user_list表 参考数据如下图
在这里插入图片描述

首先 创建一个java项目 引入所需要的依赖
在这里插入图片描述
然后 在src目录下创建一个包 叫 mydata
在 mydata 下创建一个类 叫 user_list
参考代码如下

package mydata;

public class user_list {
    private int user_id;
    private String user_name;
    private String user_post;
    private int superior_id;
    public int getUser_id() {
        return user_id;
    }
    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }
    public String getUser_name() {
        return user_name;
    }
    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }
    public String getUser_post() {
        return user_post;
    }
    public void setUser_post(String user_post) {
        this.user_post = user_post;
    }
    public int getSuperior_id() {
        return superior_id;
    }
    public void setSuperior_id(int superior_id) {
        this.superior_id = superior_id;
    }

    public String toString(){
        return "user_id="+this.getUser_id()+
                "  user_name="+this.getUser_name()+
                "  user_post="+this.getUser_post();
    }
}

可以看出 我们user_list类 从类名 属性名 属性类型 都是和 user_list 数据库表一一对应的 这就是 user_list要用的属性类

然后 在src下创建目录 dao
在 dao下创建一个接口 叫 BookDao
参考代码如下

package dao;

import mydata.user_list;
import java.util.List;

public interface BookDao {
    List<user_list> getUser_listmin();
}

这里 我们声明了一个getUser_listmin方法 不需要参数 返回一个 泛型为user_list类对象的list集合

接口都写了 自然要有类来实现
在dao下创建一个目录 叫 BookDaoImpl

参考代码如下

package dao;

import mydata.user_list;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class BookDaoImpl implements BookDao {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public List<user_list> getUser_listmin() {
        String sql = "select * from user_list";
        List<user_list> userlilst = jdbcTemplate.query(sql,new BeanPropertyRowMapper<user_list>(user_list.class));
        return userlilst;
    }
}

这里 我们调用的是 jdbcTemplate.query方法 他和queryForObject接受的参数是一样的 第一个参数是一个字符串类型的sql语句
第二个参数是 BeanPropertyRowMapper new的一个返回类型对象 第三个是可变参数 sql中用了多少个问号 则要传多少个参数 当做尾号的参数 但这里 我们的sql语句没有任何条件 不需要任何外界参数 就直接不传第三个参了
然后会返回一个 List<user_list>类型的值回来

然后 在src下创建目录 叫 senvice
参考代码如下

package senvice;

import dao.BookDao;
import mydata.user_list;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookService {
    @Autowired
    protected BookDao BookDao;
    
    public List<user_list> findUser () {
        return BookDao.getUser_listmin();
    }
}

这里暂时只是搭个三级架构 调用了一层 然后返回一下

然后 我们在src下创建 bean.xml参考代码如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

       <!-- 数据库连接池 -->
       <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
             destroy-method="close">
              <property name="url" value="jdbc:mysql:///test" /><!--对应SQLyog里的数据库-->
              <property name="username" value="root" />            <!-- 用户名 -->
              <property name="password" value="root" />        <!-- 密码 -->
              <property name="driverClassName" value="com.mysql.jdbc.Driver" />
       </bean>

       <!-- JdbcTemplate对象 -->
       <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
              <!--注入dataSource属性-->
              <property name="dataSource" ref="dataSource"></property>
       </bean>

       <context:component-scan base-package="senvice"></context:component-scan>
       <context:component-scan base-package="dao"></context:component-scan>

</beans>

我们 jdbc:mysql:///test 就是指向了 test
用户名 密码 username password

然后 我们在src下编写一个测试类 参考代码如下


import mydata.user_list;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import senvice.BookService;

import java.util.List;

public class text {
    public static void main(String args[]) {
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = context.getBean("bookService", BookService.class);
        List<user_list> userList = bookService.findUser();
        for (int i = 0; i < userList.size(); i++) {
            System.out.println(userList.get(i));
        }
    }
}

我们通过反射 获取BookService对象 然后通过findUser一直往下调 最后触发到jdbcTemplate.query 调用数据库 查询出整个user_list表的数据 返回成一个 user_list类实体的数据集合
我们通过for循环遍历了得到的集合

运行结果如下
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Spring MVC中查询数据库数据并转化为List<String>形式,需要以下步骤: 1. 在Spring MVC配置文件中配置数据源,例如使用Spring自带的JdbcTemplate或者使用ORM框架如Hibernate等。 2. 编写SQL查询语句,使用SELECT语句查询需要的数据。 3. 在Controller中注入数据源,使用JdbcTemplate或者ORM框架执行SQL查询语句,并将查询结果转化为List<String>形式。 4. 将查询结果存储在ModelAndView中,返回给前端视图展示。 以下是一个示例代码: 在Spring MVC配置文件中配置数据源: ```xml <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="root"/> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"/> </bean> ``` 在Controller中注入数据源,并执行SQL查询语句: ```java @Controller public class MyController { @Autowired private JdbcTemplate jdbcTemplate; @RequestMapping("/query") public ModelAndView query() { // 编写SQL查询语句 String sql = "SELECT name FROM users"; // 执行SQL查询语句,并将查询结果转化为List<String>形式 List<String> names = jdbcTemplate.queryForList(sql, String.class); // 将查询结果存储在ModelAndView中,返回给前端视图展示 ModelAndView model = new ModelAndView("result"); model.addObject("names", names); return model; } } ``` 在上述代码中,@Autowired注解用于注入数据源,使用JdbcTemplate的queryForList方法执行SQL查询语句,并将查询结果转化为List<String>形式,最后将查询结果存储在ModelAndView中,返回给前端视图展示。请注意,该示例代码仅供参考,具体实现需根据具体情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值