SpringBoot+MybatisPlus+Mysql+JSP實戰
本文主要介紹了SpringBoot+MybatisPlus+Mysql+JSP實戰,分享給大家,具體如下:
放個效果圖:
準備項目
首先在MySql控制臺輸入一下sql語句創建student 數據庫和student。
create databse student;use student;CREATE TABLE `student` ( `stu_id` bigint(20) NOT NULL, `stu_name` varchar(45) DEFAULT NULL, `stu_sex` varchar(6) DEFAULT NULL, `date` varchar(45) DEFAULT NULL, `room` int(2) DEFAULT NULL, `acadimy` varchar(45) DEFAULT NULL, PRIMARY KEY (`stu_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
SpringBoot
修改項目名稱,點擊next
這里直接點next
第一次打開會很慢打開后刪除用不到的文件
連接MySql
修改 application.properties 為 application.yml
插入一下代碼要修改的內容: url: jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=UTC&&characterEncoding=utf-8中的student改為自己的數據庫名稱
spring: #配置 數據庫 datasource: username: root #用戶名 password: akbar #密碼 #下一行中student 改為 自己建的database url: jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=UTC&&characterEncoding=utf-8 driver-class-name: com.mysql.cj.jdbc.Driver# 配置JSP 路徑 mvc: view: prefix: / suffix: .jsp#mybatis-plus 打印日志 不需要手寫sql 可查看把我們完成的sql mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl# 設置端口號server: port: 8001
pom.xml 依賴包
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency><!-- MYsql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency><!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <!-- 模板引擎 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> </dependency> <!-- servlet依賴的jar包start --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> <!-- servlet依賴的jar包start --> <!-- jsp依賴jar包start --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> </dependency> <!-- jsp依賴jar包end --> <!--jstl標簽依賴的jar包start --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions><exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId></exclusion> </exclusions> </dependency> </dependencies>
IDEA 鏈接數據庫
IDEA 鏈接本地MySql數據庫 (可以確定Mysql能正常訪問 ,方便我們調試)1.點擊屏幕右側Database2.點擊如下如的加號3.DataSource4.選擇Mysql
**如上圖所示表示成功連接,如果報錯,檢查用戶名,密碼,數據庫名稱 **
常見問題:時區(time zone)相關的報錯Mysql控制臺寫下面的代碼 重新Test Connection 。
set global time_zone=’+8:00’;
連接成功可以看到剛才見的數據庫
為了方便我們測試點擊加號“+”增加兩條記錄 增加完成后點擊如下圖DB的小圖標(如果沒看到鼠標移到大概位置會顯示別出來)
代碼生成器(不用我們自己寫實體類,controller ,mapper,service等) 在下圖目錄下測試類新建一個類GenerateCode
代碼如下:
需要修改的地方:1.這里修改成你自己的
pg.setParent('com.example.xxxx');
2.改稱自己的昵稱
gc.setAuthor('艾科');
3.把下邊的student 改為自己建的數據庫名稱
dsc.setUrl('jdbc:mysql://localhost:3306/studentuseSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8');`
4.// 版本8.0以下去掉中間的cj
dsc.setDriverName('com.mysql.cj.jdbc.Driver'); //8.0dsc.setDriverName('com.mysql.jdbc.Driver'); //8.0以下
5.數據庫用戶名和密碼
dsc.setUsername('root'); dsc.setPassword('root');
6.最后一個也是最重要的:這里是自己的數據不哭表
strategy.setInclude('student');
代碼如下:
public class GenerateCode { public static void main(String[] args) { AutoGenerator ag=new AutoGenerator();// 全局配置 GlobalConfig gc=new GlobalConfig(); String projectPath=System.getProperty('user.dir'); //獲取項目根目錄 gc.setOutputDir(projectPath+'/src/main/java'); //設置輸出目錄 gc.setAuthor('艾科'); //代碼注解 gc.setOpen(false); gc.setFileOverride(false); //是否覆蓋(選否)不然會覆蓋掉寫過的代碼 gc.setServiceName('%sService'); gc.setIdType(IdType.ID_WORKER); // 可以根據需求改成IdType.AUTO 或者其他 gc.setDateType(DateType.ONLY_DATE); //Date 類型 只使用 java.util.date 代替 ag.setGlobalConfig(gc);// 設置數據源 DataSourceConfig dsc=new DataSourceConfig(); //不要忘了修改數據庫名稱 dsc.setUrl('jdbc:mysql://localhost:3306/student?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8'); dsc.setDriverName('com.mysql.cj.jdbc.Driver');//8.0用com.mysql.cj.jdbc.Driver 5.7用com.mysql.jdbc.Driver dsc.setUsername('root'); dsc.setPassword('root'); dsc.setDbType(DbType.MYSQL); //數據庫類型 ag.setDataSource(dsc);// 包的配置 PackageConfig pg=new PackageConfig();// pg.setModuleName('') pg.setParent('com.example.xxxx'); //把xxx 改成你自己的 pg.setEntity('entity'); //實體類創建目錄 pg.setMapper('mapper');//mapper pg.setController('controller');//controoler ag.setPackageInfo(pg); StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); //代碼風格駝峰結構 strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setEntityLombokModel(false); strategy.setRestControllerStyle(true); strategy.setInclude('student'); // table 名稱 ,根據table 名稱生成 實體類,controller,service, mmapper // strategy.setInclude('student,user,class'); // 多個表用都逗號分開 strategy.setControllerMappingHyphenStyle(true); ag.setStrategy(strategy); ag.execute(); }
改完了執行該類
MyBatis Plus
把下圖目錄中的xxxxApplication 加上 @MapperScan(“com.xxxx.xx.mapper”) mapper 包名r如下圖所示(改成你自己的mapper 的包名)
**如果怕敲錯可以復制StudentMpaper 中的packege **
@MapperScan('com.example.student.mapper')@SpringBootApplicationpublic class StudentApplication { public static void main(String[] args) { SpringApplication.run(StudentApplication.class, args); }}
MyBatis Plus 簡單查詢 (這個可以留到最后寫作業的時候學 PS:肯定會用到)
@Autowired StudentMapper studentMapper; // Mybatis plus 查詢 student 表中的數據 返回List 類型// 相當于: SELECT stu_id,stu_name,stu_sex,date,room,acadimy FROM student List<Student> list = studentMapper.selectList(null); list.forEach(System.out::println);// 通過id 查詢 相當于:SELECT stu_id,stu_name,stu_sex,date,room,acadimy FROM student WHERE stu_id=1 Student student1 = studentMapper.selectById(1);// 條件查詢 查詢單個 相當于:SELECT stu_id,stu_name,stu_sex,date,room,acadimy FROM student WHERE stu_name = ? AND stu_sex = ? QueryWrapper<Student> wrapper = new QueryWrapper<>(); wrapper.eq('stu_name', '小明'); wrapper.eq('stu_sex', '男'); Student student2 = studentMapper.selectOne(wrapper); // 條件查詢 查詢列表 相當于:SELECT stu_id,stu_name,stu_sex,date,room,acadimy FROM student WHERE stu_id > 1 QueryWrapper<Student> wrapper1 = new QueryWrapper<>(); wrapper1.gt('stu_id', 1); Student student3 = studentMapper.selectOne(wrapper1); SimpleDateFormat simpleDateFormat=new SimpleDateFormat('yyyy-MM-dd'); String date=simpleDateFormat.format(System.currentTimeMillis());// insert 相當于 :// INSERT INTO student ( stu_id, stu_name, stu_sex, date, room, acadimy ) VALUES ( ?, ?, ?, ?, ?, ? ) //==> Parameters: 1280830334286217217(Long), aike(String), 男(String), 2020-07-08(String), 226(Integer), 計算機(String) Student student=new Student(); student.setStuName('aike'); student.setStuSex('男'); student.setDate(date); student.setRoom(226); student.setAcadimy('計算機'); studentMapper.insert(student);
更多復雜查詢查詢官網-----> MyBatis-Plus 官網
訪問JSP頁面
之前在pom.xml 中導入了相關的依賴包了
在mian 目錄下創建 webapp 文件夾
在webapp 目錄下創建 student.jsp文件
student.jsp文件內容如下 把瞎下面的文件放到 student.jsp
<%@ page language='java' contentType='text/html; charset=utf-8' pageEncoding='utf-8' %><%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %><!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html><head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> <title>學生信息</title> <link rel='external nofollow' rel='stylesheet'> <script type='text/javascript'> inserrtStudent= function() { console.log('新增學生') alert('新增學生') } inserrtRoom = function () { alert('新增宿舍') } updateRoom =function ( ) { alert('修改宿舍') } updateRecord =function (stu) { alert('查詢記錄:'${stu.stu_name}) } </script></head><body><div class='row'> <div class='col-md-6'> <table class='table table-striped'> <tr><th>ID</th><th>姓名</th><th>性別</th><th>學院</th><th>入學時間</th><th>宿舍號</th><td><button onclick='return inserrtStudent()' >新增學生</button></td><td><button onclick=' return inserrtRoom()'>新增宿舍</button></td> </tr> <c:if test='${not empty students}'><c:forEach items='${students}' var='stu'> <tr> <td>${stu.stuId}</td> <td>${stu.stuName}</td> <td>${stu.stuSex}</td> <td>${stu.acadimy}</td> <td>${stu.date}</td> <td>${stu.room}</td> <td><button onclick='return updateRoom(${stu})'>修改宿舍</button></td> <td><button onclick='return updateRecord()'>查詢記錄</button></td> </tr></c:forEach> </c:if> </table> </div></div><script src='https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js'></script><!-- 加載 Bootstrap 的所有 JavaScript 插件。你也可以根據需要只加載單個插件。 --><script src='https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js'></script></body></html>
StudentControoler 代碼如下
注意:StudentController注解是 @Controller 而不是 RestController 。
/** * * @author 艾科 * @since 2020-07-08 */@Controller@RequestMapping('/student')public class StudentController { @Autowired StudentMapper studentMapper; @RequestMapping(value = 'findall') public String findAll(Model model) {// Mybatis plus 查詢 student 表中的數據 返回List 類型// 相當于: SELECT stu_id,stu_name,stu_sex,date,room,acadimy FROM student List<Student> list = studentMapper.selectList(null); model.addAttribute('students', list); return 'student'; }}
運行結果(運行按鈕在右上角):localhost:你的端口號/student/findall
到此這篇關于SpringBoot+MybatisPlus+Mysql+JSP實戰的文章就介紹到這了,更多相關SpringBoot MybatisPlus Mysql JSP內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
