Spring框架基于注解开发CRUD详解
短信预约 -IT技能 免费直播动态提醒
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.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis_test
jdbc.username=root
jdbc.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. 工程目录
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341