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年9款优质CRM系统全方位解析

    文章介绍的工具有:纷享销客、Zoho CRM、八百客、红圈通、简道云、简信CRM、Salesforce、HubSpot CRM、Apptivo。 在选择合适的CRM系统时,许多企业面临着功能繁多、选择困难的痛点。对于中小企业来说,找到一个既能提高客户关系管理效率,又能适应业务扩展的CRM系统尤为重要…

    2024年7月25日
    1600
  • 数据库权限关系图表是什么

    数据库权限关系图表是一种以图表形式展示数据库权限分配和管理的工具。它可以有效地帮助我们理解和管理数据库中的各种权限关系。数据库权限关系图表主要包含以下几个部分:数据对象、用户(或用户组)、权限类型、权限级别、权限状态等。其中,数据对象是权限关系图表中的核心元素,它代表了数据库中的各种数据资源,如表、…

    2024年7月22日
    200
  • 诚信数据库是什么意思

    诚信数据库是一种收集、存储和管理个人或组织诚信信息的系统。它是一种用于评估和管理个人或组织行为的工具,通常由政府、商业组织或者非营利组织进行运营。诚信数据库的主要功能包括:1、评估个人或组织的诚信状况;2、提供决策支持;3、预防和控制风险;4、促进社会信用体系建设。 在这四大功能中,评估个人或组织的…

    2024年7月22日
    400
  • 数据库期末关系代数是什么

    关系代数是一种对关系进行操作的代数系统,是关系模型的数学基础,主要用于从关系数据库中检索数据。其操作包括选择、投影、并集、差集、笛卡尔积、连接、除法等。其中,选择操作是对关系中的元组进行筛选,只保留满足某一条件的元组;投影操作则是从关系中选择出一部分属性构造一个新的关系。 一、选择操作 选择操作是关…

    2024年7月22日
    700
  • mysql建立数据库用什么命令

    在MySQL中,我们使用"CREATE DATABASE"命令来创建数据库。这是一个非常简单且基础的命令,其语法为:CREATE DATABASE 数据库名。在这个命令中,“CREATE DATABASE”是固定的,而“数据库名”则是你要创建的数据库的名称,可以自己设定。例如,如…

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

400-800-1024

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

分享本页
返回顶部