昆山做网站好的,wordpress 语录小程序,网站建设 媒体广告,注册网址怎么注册步骤目录
一、引入依赖
二、配置数据库的连接信息
三、实现持久层代码
3.1 添加mapper接口
3.2 添加UserInfoXMLMapper.xml
3.3 增删改查操作
3.3.1 增(insert)
3.3.2 删(delete)
3.3.3 改(update)
3.3.4 查(select) 本篇内容仍然衔接上篇内容#xff0c;使用的代码及案…目录
一、引入依赖
二、配置数据库的连接信息
三、实现持久层代码
3.1 添加mapper接口
3.2 添加UserInfoXMLMapper.xml
3.3 增删改查操作
3.3.1 增(insert)
3.3.2 删(delete)
3.3.3 改(update)
3.3.4 查(select) 本篇内容仍然衔接上篇内容使用的代码及案例仍是上篇的内容MyBatis的基础操作。上篇是采用注解的方式实现CRUD本篇介绍XML的方式。
MyBatis的开发有两种方式注解和XML使用Mybatis的注解方式主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能可使用XML来配置映射语句也就是将SQL语句写在XML配置文件中。
一、引入依赖 dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion3.0.3/version /dependencydependencygroupIdcom.mysql/groupIdartifactIdmysql-connector-j/artifactIdscoperuntime/scope/dependency
二、配置数据库的连接信息
如果是yml文件 # 数据库连接配置spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncodingutf8useSSLfalseusername: rootpassword: rootdriver-class-name: com.mysql.cj.jdbc.Driver# 配置 mybatis xml 的文件路径在 resources/mapper 创建所有表的 xml 文件mybatis:mapper-locations: classpath:mapper/**Mapper.xml
如果是properties文件
#驱动类名称
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.urljdbc:mysql://127.0.0.1:3306/mybatis_test?
characterEncodingutf8useSSLfalse
#连接数据库的用户名
spring.datasource.usernameroot
#连接数据库的密码
spring.datasource.passwordroot
# 配置 mybatis xml 的文件路径在 resources/mapper 创建所有表的 xml 文件
mybatis.mapper-locationsclasspath:mapper/**Mapper.xml
三、实现持久层代码
持久层代码分为两部分
方法定义interface方法实现×××.xml
3.1 添加mapper接口
import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
Mapper
public interface UserInfoXMlMapper {ListUserInfo queryAllUser();
}
3.2 添加UserInfoXMLMapper.xml
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN
http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.demo.mapper.UserInfoMapper/mapper 创建UserInfoXMLMapper.xml, 路径参考yml中的配置 UserInfoXMLMapper.xml的具体实现
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.mybatis_demo.mapper.UserInfoXMLMapperselect idqueryAllUser resultTypecom.example.mybatis_demo.model.UserInfoselect username,password, age, gender, phone from userinfo/select
/mapper
测试代码
SpringBootTest
class UserInfoXMLMapperTest {Autowiredprivate UserInfoMapper userInfoMapper;Testvoid queryAllUser() {userInfoMapper.queryUserInfos().forEach(System.out::println);}
}
运行代码 3.3 增删改查操作
3.3.1 增(insert) UserInfoMapper接口 Integer insertUser(UserInfo userInfo); UserInfoMapper.xml实现 insert idinsertUserinsert into userinfo (username, password, age, gender, phone) values (#{username}, #{password}, #{age},#{gender},#{phone})
/insert 如果使用Param设置参数名称的话使用方法和注解类似。 UserInfoMapper接口 Integer insertUser(Param(userinfo) UserInfo userInfo); UserInfoMapper.xml实现 insert idinsertUserinsert into userinfo (username, password, age, gender, phone) values(#{userinfo.username},#{userinfo.password},#{userinfo.age},#{userinfo.gender},#{userinfo.phone})
/insert 返回自增 id 接口定义不变, Mapper.xml 实现设置useGeneratedKeys 和keyProperty属性。 insert idinsertUser useGeneratedKeystrue keyPropertyidinsert into userinfo (username, password, age, gender, phone) values(#{userinfo.username},#{userinfo.password},#{userinfo.age},#{userinfo.gender},#{userinfo.phone})
/insert 3.3.2 删(delete) UserInfoMapper接口 Integer deleteUser(UserInfo userInfo); UserInfoMapper.xml实现 delete iddeleteUserdelete from userinfo where id#{id}
/delete 3.3.3 改(update) UserInfoMapper接口 Integer updateUser(UserInfo userInfo); UserInfoMapper.xml实现 update idupdateUserupdate userinfo set username#{username} where id#{id}
/update 3.3.4 查(select) 我们在上面查询时发现, 有几个字段是没有赋值的只有Java对象属性和数据库字段一模一样时, 才会进行赋值。
如果将上述没有查询的数据进行查询 select idqueryAllUser resultTypecom.example.mybatis_demo.model.UserInfoselect username,password, age, gender, phone, delete_flag, create_time, update_time from userinfo/select
结果 从运行结果上可以看到SQL语句中, 查询了delete_flag, create_time, update_time但是这几个属性却没有赋值.
解决办法和注解相似
起别名结果映射开启驼峰命名
其中方法1和3跟注解一样那么这儿就介绍结果映射使用xml来写
Mapper.xml
resultMap idBaseMap typecom.example.demo.model.UserInfoid columnid propertyid/idresult columndelete_flag propertydeleteFlag/resultresult columncreate_time propertycreateTime/resultresult columnupdate_time propertyupdateTime/result
/resultMapselect idqueryAllUser resultMapBaseMapselect id, username,password, age, gender, phone, delete_flag, create_time, update_time from userinfo
/select