• 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());
        }
    }
  • 相关阅读:
    用python实现简单的调度场算法
    数据结构顺序表python
    数据结构顺序表C
    python绘制5角形,6角星方法
    TsinghuaX+00740043_2X C++程序设计进阶 C7-3
    Struts2开发环境搭建,及一个简单登录功能实例
    Javascript进度条
    java.util.Date与java.sql.Date
    Error while performing database login with the sqljdbc driver:Unable to create connection. Check your URL.
    java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
  • 原文地址:https://www.cnblogs.com/zmlion1995/p/5800777.html
Copyright © 2020-2023  润新知