将apache-maven-3.6.0复制粘贴到路径:C:\Program Files\JavaTools
复制路径:C:\Program Files\JavaTools\apache-maven-3.6.0
打开计算机>属性>高级系统设置>环境变量>系统变量下的MAVEN_HOME
将变量值替换成:C:\Program Files\JavaTools\apache-maven-3.6.0
C:\Program Files\JavaTools\apache-maven-3.6.0\conf
打开settings.xml文档
根据提示:
将常用工具下载放到本地仓库"maven_respository"存在D盘目录下的JAVA TOOLS文件夹
这些各种包都是从远程仓库下载下来,那远程仓库是在:
外网仓库地址:http://my.repository.com/repo/path (不推荐使用)
把阿里云这段仓库代码剪贴下来,贴在146行下面吧,方便查看。
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
<mirrors>
复制下这个网址,打开:
http://maven.aliyun.com/nexus/content/groups/public/
显示点击里面的网址:
https://maven.aliyun.com
继续点击网址之后
准备数据库:
打开mysql,将代码复制进去后,点击闪电按钮,运行
=》
set character set utf8;
create database bookmag default character set utf8;
use bookmag;
create table book
(
bid int primary key NOT NULL AUTO_INCREMENT,
bookname varchar(50),
author varchar(10)
)ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE `user` (
`uid` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`password` varchar(50) NOT NULL,
`age` int(10) DEFAULT NULL,
`bid` int(10) DEFAULT NULL,
PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
然后再新建一个user表和book表
点击user右键Select Rows,进入下图界面
每次写完要点击下面的Apply,应用一下
打开 IDEA软件
open打开项目student03
File>setting
修改为以下路径配置,配置好后要点击ok才行:
移除重新添加
服务器端口号:
server.port=2741
server.port=2741
spring.datasource.url=jdbc:mysql://127.0.0.1/bookmag?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=true
spring.datasource.username=root
spring.datasource.password=123456
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true
#关闭thymeleaf的缓存,不然在开发过程中修改页面不会立刻生效需要重启,生产可配置为true
spring.thymeleaf.cache=false
看看
浏览器访问本地网址:
前面有提到过服务器端口号设置为:server.port=2741
http://localhost:2741/userlist
若是没有数据可以手动在浏览器这个/userlist页面手动添加的
新建class类Book
Book类代码如下:
因为porm.xml有依赖,所以可以在User类里面使用@Data
代码代码如下:
package com.exp.repository;
import com.exp.domain.Book;
import org.springframework.data.jpa.repository.JpaRepository;
//T表示泛型接口
public interface BookRepository extends JpaRepository<Book, Integer> {
public Book findBookByBid(Integer bid);
}
package com.exp.repository;
import com.exp.domain.Publisher;
import org.springframework.data.jpa.repository.JpaRepository;
public interface PublisherRepository extends JpaRepository<UserRepository,Integer> {
public Publisher findPublisherByPid(Integer pid);
}
package com.exp.repository;
import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import com.exp.domain.User;
public interface UserRepository extends JpaRepository<User, Integer> {
//本次实验仅涉及简单的增删改查,如果需要其它功能可在该接口文件补充方法
public User findUserByUid(Integer uid);
@Query(value = "select * from user", nativeQuery = true)
Page<List<User>> findPage(Pageable pageable);
}
package com.exp.service;
import com.exp.domain.Book;
import com.exp.repository.BookRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.swing.text.html.Option;
import java.util.List;
import java.util.Optional;
@Service
public class BookServiceImpl {
@Autowired //自动装配
private BookRepository bookRepository;
public List<Book> selectBook()
{
return bookRepository.findAll(); //调用接口bookRepository里面的findAll方法
}
public Optional<Book> selectBookByBid(Integer bid){
return bookRepository.findById(bid);
}
public Book selectBookByBid1(Integer bid){
return bookRepository.findBookByBid(bid);
}
public void addBook(Book book)
{
bookRepository.save(book);
}
public void updateBook(Book book)
{
bookRepository.save(book);
}
public void deletBook(Integer bid)
{
bookRepository.deleteById(bid);
}
}
package com.exp.service;
import com.exp.domain.User;
import com.exp.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class PublicsherServiceImpl {
@Autowired
private UserRepository userRepository;
public List<User> selectUserList() {
return userRepository.findAll();
}
public User selectUserById(Integer uid) {
//用这个内置方法 userRepository.findById(uid);接口中就不需要声明
return userRepository.findUserByUid(uid);
}
//本次实验重在将后端数据传送到前端,编辑和修改操作直接调用了内置save方法,
// 建议按照实验2自定义加上事务管理后使用后使用
public void userSave(User user) {
userRepository.save(user);
}
public void userEdit(User user) {
userRepository.save(user);
}
public void userDelete(Integer uid) {
userRepository.deleteById(uid);
}
public Page<User> getUserList(int pageNum, int pageSize) {
Sort sort = new Sort(Sort.Direction.DESC, "uid");
Pageable pageable = PageRequest.of(pageNum, pageSize, sort);
Page<User> users = userRepository.findAll(pageable);
return users;
}
}
package com.exp.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import com.exp.domain.User;
import com.exp.repository.UserRepository;
@Service
public class UserServiceImpl {
@Autowired
private UserRepository userRepository;
public List<User> selectUserList() {
return userRepository.findAll();
}
public User selectUserById(Integer uid) {
//用这个内置方法 userRepository.findById(uid);接口中就不需要声明
return userRepository.findUserByUid(uid);
}
//本次实验重在将后端数据传送到前端,编辑和修改操作直接调用了内置save方法,
// 建议按照实验2自定义加上事务管理后使用后使用
public void userSave(User user) {
userRepository.save(user);
}
public void userEdit(User user) {
userRepository.save(user);
}
public void userDelete(Integer uid) {
userRepository.deleteById(uid);
}
public Page<User> getUserList(int pageNum, int pageSize) {
Sort sort = new Sort(Sort.Direction.DESC, "uid");
Pageable pageable = PageRequest.of(pageNum, pageSize, sort);
Page<User> users = userRepository.findAll(pageable);
return users;
}
}