Springboot项目基本结构——注册 持久层

一般使用IDEA建立Springboot项目。

建立好后,我们会看到IDEA自动为我们配置好了一个StoreApplication的java类。这个类就是以后启动项目时要运行的类,就是说进入这个类点运行就行。

然后还会看到有一个application.properties,这是配置文件,里面配置的信息一般是数据库的信息,配置好以后它长这样:

好了,这些是最基本的。

现在需要需要配置数据库信息,我们在数据库里面创建一张表,里面添加进一些数据后,肯定要在后台,也就是Springboot里面测试一下这个数据库的数据操作是否成功。

现在要做的就是在这个项目的大包下创建一个entity包,里面存有User类,User里面无非就是一些id,username,password这样的数,跟创建数据库时是一样的。

当然也可以先创建一个BaseEntity基类,里面的变量不需要那么多,然后再创建一个User类去继承这个BaseEntity类,再去添加更多的就行了。

以上工作全部完成后,现在就来测试!如何测试呢?在大包下创建一个mapper包,里面一般写一个UserMapper接口,这个接口里面定义一些查询或插入数据的方法,如下:

此时,你想要直接在外面创建一个类然后实现这个接口然后就直接用的话,那显然是不行的,因为这个还没有被Springboot管理。怎么做呢?在这个Interface的最前面加一个@Mapper注解就行了。不过在这里我没有这样做。我采用的是一个更显逼格的方法,在StoreApplication这个启动类中加一个MapperScan注解,里面就直接跟到mapper的包的位置就可以了。

这么做有一个什么好处?你不需要再在UserMapper这个接口前加@Mapper注解了。

接下来配置映射文件。我们要创建的是xml映射文件,与对应接口关联。它们是资源文件,所以要在resources文件夹下创建。

我们在resource这个文件夹下创建一个mapper文件夹,然后里面创建一个UserMapper的xml文件,注意名字要和接口的名字一致。在这个文件夹里做所有我们想做的事:

注意这里有SQL的插入语句和选择某条数据的语句,这其实就是SQL的增删改查操作。此外也因为我们的UserMapper接口里也只有这么两个方法,它们是对应的!

As you can see,它们是通过标签实现的。id是啥?就是它映射的接口里面的方法名。它们通过id和上面的namespace的UserMapper接口唯一确定映射关系。

此外,注意查询语句,这里可以返回一个对象,也可能是多个对象,于是我们要使用ResultType来指定。制定对应映射类的类型即可,路径具体到接口即可,如:com.cy.store.entity.User。但是可以发现我们这里User类里面定义的变量名称和数据库表里的名称不同,所以这种方法不行。

Instead,我们使用ResultMap,特别用于这种名称不一致的情况。我们指定一个ResultMap即可,用来自定义查询结果集的映射规则。这个可以在这个xml文件中指定,如下:

在这个里面只写名字不一致的字段即可。

 

 

 

 

 

 

posted @ 2022-09-04 19:23  EvanTheBoy  阅读(55)  评论(0编辑  收藏  举报