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

相关推荐

  • windows KB4524151更新了哪些内容

    KB4524151补丁主要更新: 更新可能导致打印作业失败的打印假脱机程序服务的间歇性问题。 KB4524151改进与修补程序: 此安全更新程序包括质量改进。 关键更改包括: ● 解决可能导致打印作业失败的打印假脱机程序服务的间歇性问题。 ● 某些应用程序可能关闭或生成错误,例如远程过程调用 (RP…

    2022年9月1日
    6100
  • mobilefile文件夹的路径怎么更改

    mobilefile是QQ软件的临时文件夹;该文件夹删除之后,再登录QQ还会再次生成该文件夹,可以在QQ的“文件管理”中找到“默认把接收到的文件保存到此文件夹中”更改目录来设置该文件夹的路径。 本教程操作环境:windows10系统、DELL G3电脑。 mobilefile是什么文件夹 Mobil…

    2022年9月8日
    10000
  • MySQL中的用户创建与权限管理怎么实现

    一、用户管理 在mysql库里有个user表可以查看已经创建的用户 1.创建MySQL用户 注意:MySQL中不能单纯通过用户名来说明用户,必须要加上主机。如hhy@10.1.1.1 基本语法: mysql> create user ‘用户名’@’被允许连接的主机名称或主机的IP地址’ ide…

    2022年9月2日
    10000
  • 导入mdf文件损坏如何解决

    解决方法: 1、安装D-RecoveryForMSSQLServer软件。 2、进入主界面。 3、点击“打开数据库文件”。 4、选择损坏文件点击“确定”。 5、左侧为打开文件。 6、点击把所有表导入数据库。 7、将信息填完整即可。 以上就是关于“导入mdf文件损坏如何解决”这篇文章的内容,相信大家都…

    2022年9月8日
    11300
  • torrent文件有什么作用

    torrent是BT种子文件,其本质是文本文件;torrent文件中包含Tracker信息和文件信息两部分,Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则…

    2022年9月8日
    18800
  • mysql的密码放在哪个表

    mysql的密码放在user权限表的authentication_string字段中。user表是MySQL中最重要的一个权限表,用来记录允许连接到服务器的账号信息;修改用户密码时,实际就是修改user表中authentication_string字段的值,语法为“SET PASSWORD FOR …

    2022年9月20日
    51400
  • cocos2d-LUA逆向中如何解密app资源

    还是以大神apk为例,通过前面分析app解密lua脚本,我们能够解密大神apk的lua脚本,现在我们来解密其资源(配置文件和图片等)。我们以比较重要的配置文件为例,未解密之前: 文件头部也有签名值:fuckyou!。看到这,我们首先就想到是不是也是用xxtea加密的,我们用上面的方法,先xxtea解…

    2022年9月21日
    46800
  • windows会声会影如何保存视频

    会声会影保存视频的方法 1、首先我们点击上方的“分享”按钮。 2、然后就可以选择我们需要保存的视频格式了。 3、我们还可以勾选“与项目设置相同”,这样就能直接保存和原视频一模一样的格式。 4、然后在下方设置文件名,点击右边文件夹图标设置保存位置,再点击“开始”。 5、最后只要等待视频成功保存就可以了…

    2022年9月15日
    5400
  • java常见log日志如何使用

    前言 log日志可以debug错误或者在关键位置输出想要的结果 java日志使用一般有原生logger、log4j、Slf4j等 一般的日志级别都有如下(不同日志不一样的方法参数,注意甄别) 参数 描述 OFF、ON 不输出或者输出所有级别信息,通常使用在setLevel方法中 FATAL 致命错误…

    2022年9月18日
    17600
  • 创业公司为何要进行人员培训?

    本文来自Worktile 运营国际事业部新晋小鲜肉 @邵智康的激情分享,其独到而又不失水准的看法如一股清流洒向人间如果你正囿于人员培训的问题,那就千万走过路过不要错过啦 在企业发展的巨流河里,无论商业环境如何发展与变迁,行业竞争如何残酷而激烈,对于无数大大小小的企业来说,他们在许多年的浮浮沉沉中也许…

    2022年3月20日
    23200
联系我们
站长微信
站长微信
分享本页
返回顶部