上一篇创建SSM框架项目和基本使用的文章后,项目已经能基本使用了,现在就是和数据库配合起来。这篇重点结合实例讲Mybatis的使用,演示下如何使用Thymeleaf以循环列表的形式展示数据
首先把数据库表建起来
数据库是Mysql,建一个user_info(用户表)和address_info(地址表)
user_id作为主键设置自增长
address_id作为主键设置自增长。
数据库表建好,先说下打算做什么
打算将用户和地址的信息在页面显示
1.下面这个是最基本的sql语句,查询user_info表里的信息
下面这个稍微复杂一点,用了表连接,第一个采用的是左连接(left jion),第二个是内联接(inner join),这两种输出结果是不一样的,你们可以自己思考下为什么,加深下数据库的知识,这两种是为了不同的目的存在的。
这个sql语句的目的是将用户表与地址表连接在一起,你想你的淘宝账号里,你的收获地址是有多个的。
然后开始使用Mybatis吧
先放上项目现在的结构:
首先在entity文件夹中建立实体类userInfo,addressInfo
下图是userInfo.java
还记得在创建项目时,勾选的lombok吗,@Data注解就是对其的使用,用上了这个注解,就不用自己写上get,set方法了,自动生成。
有些人可能在使用这个注解时会发现实体类使用get,set方法时可以使用,但会报红,这个原因无法言语表达,反正去下载个插件就可以了,在第三个图
import lombok.Data;
@Data
public class UserInfo {
/**
* 这个地方其实这样命名虽然规整,但最好还是和数据库里字段名称一样是最好,
* 可以避免一些麻烦,至于什么麻烦后面说,但为了更有直观对比性就和数据库命名不同
* 不过如果使用JPA什么的技术加上字段声明就没我说的麻烦问题了。
*/
private int userId;
private String pwd;
private String userName;
private String userRealName;
private String Telephone;
private String userPro;
private List<AddressInfo> addressInfoList;
}
addresInfo.java
import lombok.Data;
@Data
public class AddressInfo {
private int addressId;
private int userId;
private String address;
private String linkMan;
private String telephone;
private int defaultAddress;
}
然后在mapping中创建一个xml文件,xml文件我的是不能直接创建的,所以在mapping文件夹处右击选择new点击File
加上xml后缀就可以了
生成的空白文件里加入
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
这是一个硬型代码,必须要加
然后打标签
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper>
</mapper>
此时mapper标签这里有报错,这是因为还没写接口产生映射关系。
在mapper文件夹处我们建一个接口,方法:在mapper处右键创建java,在Kind选择下拉,选中接口
在UserInfoMapper.java中加入如下代码
加完后会报红,但没关系,报红是因为接口没被使用
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 生成Bean的注解,这个有点说不清,加就对了
*/
@Repository
public