一、查找一个对象即一条数据
- 写User类(pom文件的依赖也不赘述了)
@Data // 自动生成setter/getter、equals、canEqual、hashCode、toString方法
public class User {
private Integer id;
private String username;
private String password;
}
- 创建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可以将表中的数据映射到类中(类中的字段要和表中的字段对应)
}
- 配置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>
- 测试:
@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);
}
- 结果:
二、查找所有对象即所有数据
- 接口中添加方法
public List<User> findAllUser();
- 用实现类来实现
// BeanPropertyRowMapper可以将表中的数据映射到类中(类中的字段要和表中的字段对应)
@Override
public List<User> findAllUser() {
String sql = "select * from user";
return this.jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
}
- 测试
@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);
}
}
- 结果