Springboot學習筆記(六)關於jdbc的增刪改查
資料庫配置為:
以資料庫demo1,表:zh_user作為演示。含有以下幾個元素:
實體類為:User
1、查
(1)查詢全部,sql語句:”select* from zh_user(表名)”;在Dao層。
Service層Controller層:
輸入 http://localhost:8080/getall的返回效果
(2)根據某一項條件查詢,sql語句:”select password,sex from zh_user where username=?”。表示根據username查詢此項的password及sex。
Dao層:
Service層:Controller層:
輸入:localhost:8080/learn?name=mm。因id是主鍵,故會自動建立(沒有查詢,值為0)。
也可以寫作另外一個形式,傳入引數是User類。
2、增
Sql語句:"insert into zh_user(username,password) values(?,?)"。
Dao層:使用update方法,其中type是傳入引數的資料型別
Service層:Controller層:
3、刪
Sql語句:"delete from zh_user where username = ?"。通過輸入username,刪除對應資料。Dao層:同樣使用update方法。
Service層:Controller層:
4、改
Sql語句:"update zh_user set username = ? , sex = ? where id = ?"。通過輸入id,更改對應資料的username以及sex的值。
Dao層:同樣使用update方法。
Service層: Controller層:
5、Dao層所有配置
package com.example.demo.dao; import java.sql.Types; import java.util.List; import javax.annotation.Resource; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import com.example.demo.bean.User; @Repository public class UserDao { @Resource public JdbcTemplate jdbc; private String querySql = "SELECT username,id FROM zh_user WHERE username=?"; private String insertSql = "insert into zh_user(username,password) values(?,?)"; private String findsql = "select * from zh_user"; //通過username查詢表內,password及sex資訊 public User getPassword(User use) { String sql = "select password,sex from zh_user where username = ?"; RowMapper<User> rpw = new BeanPropertyRowMapper<>(User.class); Object[] namee = new Object[] {use.getUsername()}; User password = jdbc.queryForObject(sql,namee , rpw); return password; } //查全部 public List<User> getAll() { String findsql = "select * from zh_user"; RowMapper<User> rwp = new BeanPropertyRowMapper<>(User.class); List<User> mm = jdbc.query(findsql, rwp); return mm; } //增 public int insert(User use) { String insertSql = "insert into zh_user(username,password) values(?,?)"; Object[] obj = new Object[] {use.getUsername(),use.getPassword()}; int[] type = new int[] {Types.VARCHAR,Types.VARCHAR}; int uss = jdbc.update(insertSql, obj, type); return uss; } //刪 public int delete(User use) { String deleteSql = "delete from zh_user where username = ?"; Object[] obb = new Object[] {use.getUsername()}; int[] typee = new int[] {Types.VARCHAR}; int res = jdbc.update(deleteSql, obb, typee); return res; } //改 public void update(User uss) { String updateSql = "update zh_user set username = ? , sex = ? where id = ?"; Object[] obj = new Object[] {uss.getUsername(),uss.getSex(),uss.getId()}; int[] tt = new int[] {Types.VARCHAR,Types.VARCHAR,Types.BIGINT}; jdbc.update(updateSql, obj, tt); } } 6、Service層,所有配置 package com.example.demo.service; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.example.demo.bean.User; import com.example.demo.dao.UserDao; @Service public class userService { @Resource public UserDao usedao; //查 public User getpasd(User name) { return usedao.getPassword(name); } public List<User> getalll() { return usedao.getAll(); } //增 public int insert(User use) { return usedao.insert(use); } //刪 public void delete(User use) { usedao.delete(use); } //改 public void update(User use) { usedao.update(use); } } 7、Controller層所有配置 package com.example.demo.controller; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.example.demo.bean.User; import com.example.demo.service.userService; @Controller public class UserController { @Resource public userService user; @ResponseBody @RequestMapping("/learn") public User getpad(User name) { name.setUsername("劉亦菲"); return user.getpasd(name); } @ResponseBody @RequestMapping("/getall") public List<User> getl() { return user.getalll(); } @ResponseBody @RequestMapping("/insert") public int inse(User use) { use.setUsername("mm"); use.setPassword("977423"); return user.insert(use); } @ResponseBody @RequestMapping("/delete") public String delet(User uss) { uss.setUsername("趙雲"); user.delete(uss); return "刪除完成"; } @ResponseBody @RequestMapping("/update") public String upda(User uss) { uss.setUsername("諸葛亮"); uss.setSex("男"); uss.setId(2); user.update(uss); return "更改完成"; } }