zoukankan      html  css  js  c++  java
  • SpringDao操作——查询、增加方法

    新建一个实体类User  (@Component注解,将一个对象放入容器中。)

    新建一个接口UserDaoIface

    package com.zhaoming.dao.iface;
    import java.util.List;
    import com.zhaoming.entity.User;
    public interface UserDaoIface {
        public List<User> queryAll();
        public User addUser(User user); 
    }

    新建一个实现类UserDaoImp

    package com.zhaoming.dao.imp;
    
    
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.List;
    import javax.annotation.Resource;
    import org.springframework.jdbc.core.ConnectionCallback;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.jdbc.core.RowMapper;
    import org.springframework.stereotype.Repository;
    import com.zhaoming.dao.iface.UserDaoIface;
    import com.zhaoming.entity.User;
    
    
    @Repository
    
    public class UserDaoImp implements UserDaoIface{
    
        @Resource
        JdbcTemplate jdbcTemplate;
        /*
        @Override
        public List<User> queryAll() {
            String sql = "select * from users";
            List<User> list = jdbcTemplate.query(sql, new RowMapper<User>() {  //匿名内部类
    
                public User mapRow(ResultSet rs, int arg1) throws SQLException {
                    User user = new User(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4));
                    return user;
                }
            });
    */
        //兰姆达表达式
        @Override
        public List<User> queryAll() {
            String sql = "select * from users";
            List<User> list = jdbcTemplate.query(sql, (RowMapper<User>) (rs,index)->
                 new User(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4))
            );
            return list;
        }
        @Override
        public User addUser(User user) {
            String sql = "insert into users values(seq_uid.nextval,?,?,?)";
            User user0 = jdbcTemplate.execute((ConnectionCallback<User>) (connection) ->{
    
                    PreparedStatement psmt = connection.prepareStatement(sql,new String[]{"id"});
                    psmt.setString(1,user.getName() );
                    psmt.setString(2, user.getPassword());
                    psmt.setString(3, user.getTelephone());
                    psmt.executeUpdate();
                    ResultSet rs = psmt.getGeneratedKeys();
                    if(rs.next())
                    {
                        user.setId(rs.getInt(1));
                    }
                    return user;
            
            });
            return user0;
        }
    
    }

    测试

    package com.zhaoming.userdao;
    
    import java.util.List;
    import javax.annotation.Resource;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    import com.zhaoming.dao.imp.UserDaoImp;
    import com.zhaoming.entity.User;
    import spring.config.DataSourceConfig;
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = {DataSourceConfig.class})
    public class UserDaoTest {
    
        @Resource
        UserDaoImp userDao;
        public void testQuery(){ 
            List<User> list = userDao.queryAll();
            for (User user : list) {
                System.out.println(user.getName());
            }
        }
        
        @Test
        public void testAdd(){
            User user = new User(0, "admin", "123", "321");
            User user0 = userDao.addUser(user);
            System.out.println(user0.getId());
        }
    }
  • 相关阅读:
    Android 系统开发做什么?
    MySQL索引-B+树
    转:redis雪崩、穿透、击穿
    转:django3上线部署踩得坑
    nginx、uwsgi部署django中session丢失得问题
    类型转换(数字转字符串等)
    JS基础篇1:数据类型(8种)
    css3动画与js动画的区别
    drag拖拽事件
    三栏布局,中间自适应
  • 原文地址:https://www.cnblogs.com/zmlion1995/p/5800777.html
Copyright © 2011-2022 走看看