Spring框架基于注解怎么开发CRUD

1. Maven坐标

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>5.2.0.RELEASE</version></dependency><!-- SpringJDBC jar包 --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-jdbc</artifactId>    <version>5.2.0.RELEASE</version></dependency><!-- spring整合junit jar包 --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-test</artifactId>    <version>5.2.0.RELEASE</version>    <scope>test</scope></dependency><!--  Lombok jar包 --><dependency>    <scope>compile</scope>    <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>    <version>1.18.16</version></dependency><!--单元测试jar包--><dependency>    <groupId>junit</groupId>    <artifactId>junit</artifactId>    <version>4.12</version></dependency><!-- mysql数据库jar包 --><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>5.1.6</version>    <scope>runtime</scope></dependency>

2. 实体类

@Data@Component//等价于 <bean id="user" class="org.westos.pojo.User"/>public class User {    private Integer id;    private String username;    private Date birthday;    private String sex;    private String address;}

3. Spring配置类

用于代替原来的SpringIOC

@Configuration@ComponentScan(value = "org.westos")@PropertySource("classpath:jdbcConfig.properties")public class MyConfig {    @Value("${jdbc.driver}")    private String driver;    @Value("${jdbc.url}")    private String url;    @Value("${jdbc.username}")    private String username;    @Value("${jdbc.password}")    private String password;    //注入数据源    @Bean("dataSource")    public DataSource createDataSource() {        DruidDataSource ds = new DruidDataSource();        ds.setDriverClassName(driver);        ds.setUrl(url);        ds.setUsername(username);        ds.setPassword(password);        return ds;    }    @Bean("jdbcTemplate")    //注入JDBCtemplate模板    public JdbcTemplate createJdbcTemplate(DataSource dataSource){        return new JdbcTemplate(dataSource);    }}

4. 业务层代码

接口

public interface UserService {    //查询所有用户    List<User> findAll();    //根据id查询用户    User findUserById(Integer uid);    //保存用户    void save(User user);    //更新用户    void update(User user);    //删除用户    void delete(Integer uid);}

实现类

@Service("userService")public class UserServiceImpl implements UserService {    @Autowired    private UserDao userDao;    //查询所有用户    public List<User> findAll() {        List<User> list = userDao.findAll();        return list;    }    //根据id查询用户    public User findUserById(Integer uid) {        User user = userDao.findUserById(uid);        return user;    }    //保存用户    public void save(User user) {        userDao.save(user);    }    //更新用户    public void update(User user) {        userDao.update(user);    }    //删除用户    public void delete(Integer uid) {        userDao.delete(uid);    }}

5. 持久层代码

接口

public interface UserDao {    //查询所有    List<User> findAll();    //根据id查询    User findUserById(Integer uid);    //保存    void save(User user);    //更新    void update(User user);    //删除    void delete(Integer uid);}

实现类

@Repository("userDao")public class UserDaoImpl implements UserDao {    @Autowired    private JdbcTemplate jdbcTemplate;    //查询所有    public List<User> findAll() {        return jdbcTemplate.query("select * from user", new BeanPropertyRowMapper<User>(User.class));    }    //根据id查询    public User findUserById(Integer uid) {        return jdbcTemplate.queryForObject("select * from user where id=?", new BeanPropertyRowMapper<User>(User.class), uid);    }    //保存    public void save(User user) {        jdbcTemplate.update("insert into user(username,birthday,sex,address) values (?,?,?,?)", user.getUsername(), user.getBirthday(), user.getSex(), user.getAddress());    }    //更新    public void update(User user) {        jdbcTemplate.update("update user set username=?,birthday=?,sex=?,address=? where id = ?", user.getUsername(), user.getBirthday(), user.getSex(), user.getAddress(), user.getId());    }    //删除    public void delete(Integer uid) {        jdbcTemplate.update("delete from user where id=?", uid);    }}

6. jdbc配置文件

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis_testjdbc.username=rootjdbc.password=123

7. 测试类代码

@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes = MyConfig.class)public class MyTest {    @Autowired    private UserService userService;    @Autowired    private User user;    @Test    public void findAllTest(){        List<User> list = userService.findAll();        for (User user : list) {            System.out.println(user);        }    }    @Test    public void findUserByIdTest(){        User user = userService.findUserById(74);        System.out.println(user);    }    @Test    public void saveUserTest(){        user.setUsername("张三");        user.setBirthday(new Date());        user.setSex("女");        user.setAddress("西安市长安区");        userService.save(user);    }    @Test    public void updateUserTest(){        user.setId(75);        user.setUsername("李四");        user.setBirthday(new Date());        user.setSex("女");        user.setAddress("西安市雁塔");        userService.update(user);    }    @Test    public void deleteUserTest(){        user.setId(75);        userService.delete(user.getId());    }}

8. 工程目录

Spring框架基于注解怎么开发CRUD

以上就是“Spring框架基于注解怎么开发CRUD”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

文章标题:Spring框架基于注解怎么开发CRUD,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/20909

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云
上一篇 2022年8月27日 下午4:42
下一篇 2022年8月27日 下午4:51

相关推荐

  • 数据库加密有什么用

    数据库加密的主要用途包括:保护数据的安全性、防止未经授权的访问、满足法规要求、防止数据泄露、保证数据的完整性和可靠性。数据库加密是一种安全策略,它可以确保存储在数据库中的敏感信息不被未经授权的用户访问。如果没有正确的密钥,即使数据被盗,也无法解读加密的信息,从而极大地增强了数据的安全性。此外,数据库…

    2024年7月16日
    500
  • 数据库跳板是什么意思

    数据库跳板是一种在网络安全领域常见的术语,是指黑客通过某个已经被控制的数据库,跳转到其他的数据库或系统,以此进行进一步的攻击行为。具体来说,数据库跳板包括以下几个步骤:一、黑客首先找到一个安全漏洞较多、比较容易攻击的数据库,然后利用各种手段将其控制;二、控制后,黑客会在此数据库中植入恶意代码,使其成…

    2024年7月16日
    500
  • 数据库实现了些什么功能

    数据库实现了数据存储、数据检索、数据管理、数据完整性、数据安全、并发控制、备份与恢复等功能。在这些功能中,数据存储是最基础的功能,因为所有的数据操作都依赖于数据存储这一核心功能。数据存储确保了数据的持久化,能够在需要时进行读取和操作,而不会因为系统关闭或故障而丢失数据。数据库系统通过高效的数据存储机…

    2024年7月16日
    300
  • 电信数据库都做些什么工作

    电信数据库的主要工作包括数据存储、数据管理、数据分析、数据安全、数据备份和恢复、数据集成和数据挖掘。数据存储是其核心功能之一,确保大量用户信息、通话记录、账单数据等能够高效、安全地存储。数据管理涉及对这些数据的组织和维护,确保数据的准确性和一致性。数据分析则通过大数据技术对存储的信息进行深度挖掘,帮…

    2024年7月16日
    400
  • 启动数据库用什么软件好

    启动数据库,我们可以选择多种不同的软件,比如MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、SQLite等。每种数据库软件都有其独特的特性和适应的应用场景。例如,MySQL是最受欢迎的关系数据库管理系统,它具有开源、性能高效、成本低、可扩展性好等优点,被广泛应用…

    2024年7月16日
    300
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部