第三步:我们把项目切回用户模块;我们先把数据库里面的数据搜索出来;步骤是:
(1)查看静态页面确认提交的表单Ajax;我们确认的如果请求成功那么页面要返回一个对象,两个属性,一个是status,一个是message;
if(status){}
如果有条件是这样的那么,括号里面的status一定是Boolean类型的;
(2)确认了之后那么我们进行编写实体类,用于返回的对象;
(3)Mapper启动器是一个基于JDBC的通过反射的ORM框架;提供了一些通用的增删改查操作,而且不需要定义SQL的映射文件,直接采用注解实现SQL语句;
也就是我们在传统的mybati启动器上更进一步直接省略部分SQL语句,直接采用注解进行开发;
<!--mybatis启动类,弱化了SQL语句,采用注解开发-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
(4)写一个mapper接口类,这个接口类,相当于原来的xml文件;用于写搜索方法,现在直接继承一个BaseMapper 类就好了;至于泛型里面的就是你操作的表的名字;我们搜索的是哪个表呢?就是customer表;
继承了这个类的同时,这个类里面把增删改查都给写好了;
public interface CustomerMaper extends BaseMapper<Customer> {
// @Select("")
// List<Customer> find();
}
(5)写一个搜索接口类
public interface CustomerService { //创建service接口类
//根据条件查所有
public List<Customer> searchCustomerByQuery(Map<String,String> param);
//实现客户添加
void add(Customer customer);
//搜索出表中的所有数据
List<Customer> list();
}
(6)写搜索接口的实现类;
@Autowired //获取值
private CustomerMaper customerMaper;
//我们继承了CustomerMaper接口类,要从接口类中拿值;
//虽然我们在mapper类中什么都没写,但是我们继承方法了;
@Override
public List<Customer> list() {//这个<Customer>泛型就规定了我们使用的实体类
return customerMaper.selectAll();//我们并没有写selectAll() 这个方法
//因为我们继承了类BaseMapper()类,里面就有这个方法所以我们不需要写;
//selectAll()这个方法就是查所有的方法,省略了SQL语句;
}
(6)在启动类里(也就是用main方法的那个类里)写一个接口扫描,接口扫描还是要照样写的;
注意:加注解@MapperScan
,需要注意在注解导包的时候,我们以前用的是org.mybatis.spring.....
现在用我们导包的那个tk.mybatis.....
的这个;
@SpringBootApplication
@MapperScan("com.xfx.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
(7)配置数据库连接池;全部写完之后发现我们并没有写关于数据库的任何东西,甚至也没有写连接数据库的对象,更没有用连接数据库的对象;而这些,我们都不用写;只需要我们配置好连接池就行了;然后关于数据库中的任何东西都不需要写;
#配置连接池
#只要加载了Mybatis启动类依赖下面的会自动配置好,只需我们提供参数
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource #连接池的类型,默认
driver-class-name: com.mysql.jdbc.Driver #驱动名
url: jdbc:mysql://localhost:3306/sys?useUnicode=true&characterEncoding=utf8
username: root
password:
(8)直接点击运行,然后我们就搜出了表里的所有的内容