欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring框架基于注解開發(fā)CRUD詳解

 更新時間:2022年08月26日 11:23:06   作者:磚廠打工仔  
這篇文章主要為大家詳細介紹了Spring框架基于注解開發(fā)CRUD,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Spring框架基于注解開發(fā)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. 業(yè)務層代碼

接口

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("西安市長安區(qū)");
? ? ? ? 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. 工程目錄

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SSM+微信小程序實現物業(yè)管理系統及實例代碼

    SSM+微信小程序實現物業(yè)管理系統及實例代碼

    這篇文章主要介紹了SSM+微信小程序實現物業(yè)管理系統,ssm微信小程序物業(yè)管理系統,有網站后臺管理系統,本文通過實例代碼給大家展示系統的功能,需要的朋友可以參考下
    2022-02-02
  • spring boot整合mybatis利用Mysql實現主鍵UUID的方法

    spring boot整合mybatis利用Mysql實現主鍵UUID的方法

    這篇文章主要給大家介紹了關于spring boot整合mybatis利用Mysql實現主鍵UUID的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-03-03
  • java虛擬機中多線程總結

    java虛擬機中多線程總結

    在本篇內容中小編給大家分享的是關于java虛擬機中多線程的知識點總結內容,需要的朋友們參考學習下。
    2019-06-06
  • 基于rocketmq的有序消費模式和并發(fā)消費模式的區(qū)別說明

    基于rocketmq的有序消費模式和并發(fā)消費模式的區(qū)別說明

    這篇文章主要介紹了基于rocketmq的有序消費模式和并發(fā)消費模式的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring的Xml和JavaConfig 擴展哪個好用

    Spring的Xml和JavaConfig 擴展哪個好用

    今天給大家介紹基于注解的Spring擴展,Spring的Xml和JavaConfig 擴展的配置方法,關于Spring的Xml和JavaConfig 擴展你會選哪個呢,帶著這個問題一起通過本文學習下吧
    2021-05-05
  • 基于Java編寫第一個區(qū)塊鏈項目

    基于Java編寫第一個區(qū)塊鏈項目

    區(qū)塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式,下面這篇文章主要給大家介紹了基于Java實現區(qū)塊鏈的相關資料,需要的朋友可以參考下
    2021-08-08
  • Springcloud eureka搭建高可用集群過程圖解

    Springcloud eureka搭建高可用集群過程圖解

    這篇文章主要介紹了Springcloud eureka搭建高可用集群過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java集合ArrayDeque類實例分析

    Java集合ArrayDeque類實例分析

    這篇文章主要介紹了Java集合ArrayDeque類實例分析的相關資料,需要的朋友可以參考下
    2017-04-04
  • Spring Security代碼實現JWT接口權限授予與校驗功能

    Spring Security代碼實現JWT接口權限授予與校驗功能

    本文給大家介紹Spring Security代碼實現JWT接口權限授予與校驗功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-12-12
  • Java發(fā)起http請求的完整步驟記錄

    Java發(fā)起http請求的完整步驟記錄

    這篇文章主要給大家介紹了關于Java發(fā)起http請求的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02

最新評論