文章目录
数据库开发:基本操作(查询)
♦ JdbcTemplate操作数据库(查询返回某个值)
1、查询表里面有多少条记录,返回是某个值
- 数据库:用户信息表
@Service
public class UserService {
// 注入UserDao对象属性
@Autowired
private UserDao userDao;
// 添加用户
public void addUser(User user){
userDao.add(user);
}
// 修改用户
public void updateUser(User user){
userDao.updateUser(user);
}
// 删除用户
public void deleteUser(String id){
userDao.deleteUser(id);
}
// 查询用户表的记录数
public int Count(){
return userDao.selectCount();
}
}
2、使用 JdbcTemplate
实现查询返回某个值。
- 第一个参数:
sql 语句
- 第二个参数:
返回值的类型所对应的类(.class)
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
// 删除用户记录
void deleteUser(String id);
// 查询用户表的记录数
int selectCount();
}
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
.......
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
.......
}
// 删除用户记录
@Override
public void deleteUser(String id) {
.......
}
// 查询返回用户表的记录数
@Override
public int selectCount() {
// sql 语句
String sql = "select count(*) from t_user";
int count = jdbcTemplate.queryForObject(sql,Integer.class);
return count;
}
}
3.测试
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
// 查询返回用户表的记录数
int count = userService.Count();
System.out.println("用户信息表的记录数为"+count+"条。");
} catch (Exception e){
e.printStackTrace();
}
}
♦ JdbcTemplate操作数据库(查询返回对象)
1、场景:查询用户详情
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
// 删除用户记录
void deleteUser(String id);
// 查询用户表的记录数
int selectCount();
// 查询返回用户对象
User selectObject(String id);
}
@Service
public class UserService {
// 注入UserDao对象属性
@Autowired
private UserDao userDao;
// 添加用户
public void addUser(User user){
userDao.add(user);
}
// 修改用户
public void updateUser(User user){
userDao.updateUser(user);
}
// 删除用户
public void deleteUser(String id){
userDao.deleteUser(id);
}
// 查询用户表的记录数
public int Count(){
return userDao.selectCount();
}
// 查询返回用户对象
public User select_Object(String id){
return userDao.selectObject(id);
}
}
2、JdbcTemplate 实现查询返回对象
- 第一个参数:
sql 语句
- 第二个参数:
RowMapper
是接口,针对返回不同类型数据添加对应的泛型,使用这个接口里面实现类完成数据封装 - 第三个参数:
sql 语句值
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
.......
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
.......
}
// 删除用户记录
@Override
public void deleteUser(String id) {
.......
}
// 查询返回用户表的记录数
@Override
public int selectCount() {
........
}
// 查询返回用户对象
@Override
public User selectObject(String id) {
// sql 语句
String sql = "select * from t_user where userId=?";
User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class), id);
return user;
}
}
3.测试
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
User user1 = userService.select_Object("1");
System.out.println("你查找的用户信息为:"+user1);
} catch (Exception e){
e.printStackTrace();
}
}
♦ JdbcTemplate操作数据库(查询返回集合)
1、场景:查询用户列表分页…
public interface UserDao {
// 添加用户的方法
void add(User user);
// 修改用户的方法
void updateUser(User user);
// 删除用户记录
void deleteUser(String id);
// 查询用户表的记录数
int selectCount();
// 查询返回用户对象
User selectObject(String id);
// 查询返回集合
List<User> findAll();
}
@Service
public class UserService {
// 注入UserDao对象属性
@Autowired
private UserDao userDao;
// 添加用户
public void addUser(User user){
userDao.add(user);
}
// 修改用户
public void updateUser(User user){
userDao.updateUser(user);
}
// 删除用户
public void deleteUser(String id){
userDao.deleteUser(id);
}
// 查询用户表的记录数
public int Count(){
return userDao.selectCount();
}
// 查询返回用户对象
public User select_Object(String id){
return userDao.selectObject(id);
}
// 查询信息返回集合
public List<User> findAll(){
return userDao.findAll();
}
}
2、调用 JdbcTemplate 方法实现查询返回集合
- 第一个参数:
sql 语句
- 第二个参数:
RowMapper
是接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装 - 第三个参数:
sql 语句值
@Repository
public class UserDaoImpl implements UserDao {
// 注入JdbcTemplate对象
@Autowired
private JdbcTemplate jdbcTemplate;
// 重写add方法
@Override
public void add(User user) {
.......
}
// 重写updateuser方法
@Override
public void updateUser(User user) {
.......
}
// 删除用户记录
@Override
public void deleteUser(String id) {
.......
}
// 查询返回用户表的记录数
@Override
public int selectCount() {
........
}
// 查询返回用户对象
@Override
public User selectObject(String id) {
.........
}
// 查询信息返回集合
@Override
public List<User> findAll() {
// sql语句
String sql = "select * from t_user";
List<User> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class));
return list;
}
}
3.测试
@org.junit.Test
public void test_jdbc(){
try {
ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
UserService userService = context.getBean("userService",UserService.class);
// 查询返回集合
List<User> list = userService.findAll();
System.out.println(list);
} catch (Exception e){
e.printStackTrace();
}
}