Spring连接数据库 之 query() 查询数据库

一、查找一个对象即一条数据

  1. 写User类(pom文件的依赖也不赘述了)
@Data  // 自动生成setter/getter、equals、canEqual、hashCode、toString方法
public class User {
    private Integer id;
    private String username;
    private String password;
}
  1. 创建UserDao接口、用UserDaoImpl实现:
public interface UserDao {
    public int addUser(User user);

    public int updateUser(User user);

    public int deleteUser(int id);

    public User findUserById(int id);

    public List<User> findAllUser();
}

这里其他方法的实现就不赘述了:

    @Override
    public User findUserById(int id) {
        String sql = "select * from user where id = ?";
        return (User) this.jdbcTemplate.queryForObject(sql,
                new BeanPropertyRowMapper<User>(User.class),
                id);
        // BeanPropertyRowMapper可以将表中的数据映射到类中(类中的字段要和表中的字段对应)
    }
  1. 配置spring的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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--配置数据源-->
    <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!--数据库驱动-->
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <!--连接数据库的url-->
        <property name="url" value="jdbc:mysql:///db_spring?serverTimezone=CTT"/>
        <!--连接数据库的用户名-->
        <property name="username" value="xxxxxx"/>
        <!--密码-->
        <property name="password" value="xxxxxx"/>
    </bean>

    <!--配置JDBC模板-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--注入userDao组件-->
    <bean id="userDao" class="com.mason.UserDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"/>
    </bean>

</beans>
  1. 测试:
    @Test
    public void findUserByIdTest() {
        ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("spring.xml");
        UserDao userDao = (UserDao) applicationContext.getBean("userDao");
        User user = userDao.findUserById(2);
        System.out.println(user);
    }
  1. 结果:
    在这里插入图片描述
    在这里插入图片描述

二、查找所有对象即所有数据

  1. 接口中添加方法
public List<User> findAllUser();
  1. 用实现类来实现
// BeanPropertyRowMapper可以将表中的数据映射到类中(类中的字段要和表中的字段对应)
    @Override
    public List<User> findAllUser() {
        String sql = "select * from user";
        return this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
    }
  1. 测试
    @Test
    public void findAllUserTest() {
        ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("spring.xml");
        UserDao userDao = (UserDao) applicationContext.getBean("userDao");
        List<User> list = userDao.findAllUser();
        for (User user : list) {
            System.out.println(user);
        }
    }
  1. 结果
    在这里插入图片描述
    在这里插入图片描述
发布了157 篇原创文章 · 获赞 0 · 访问量 5012

猜你喜欢

转载自blog.csdn.net/Mason97/article/details/105677560