做视频的模板下载网站,邓州网站优化,企业年金是什么意思,排名优化价格T04BF #x1f44b;专栏: 算法|JAVA|MySQL|C语言 #x1faf5; 今天你敲代码了吗 文章目录 MyBatis XML配置文件开发配置连接字符串和MyBatis写Mapper层代码添加mapper接口添加UserInfoXmLMapper.xml 操作数据库INSERTDELETE UPDATE MyBatis XML配置文件开发
实际上,除… T04BF 专栏: 算法|JAVA|MySQL|C语言 今天你敲代码了吗 文章目录 MyBatis XML配置文件开发配置连接字符串和MyBatis写Mapper层代码添加mapper接口添加UserInfoXmLMapper.xml 操作数据库INSERTDELETE UPDATE MyBatis XML配置文件开发
实际上,除了使用注解的方式,MyBatis开发还能使用XML的方式,也就是将SQL语句写在XML配置文件里面
配置连接字符串和MyBatis
# 数据库连接配置
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncodingutf8useSSLfalse
username: root
password: 051215
driver-class-name: com.mysql.cj.jdbc.Driver# 配置 mybatis xml 的⽂件路径在 resources/mapper 创建所有表的 xml ⽂件
mybatis:
mapper-locations: classpath:mapper/**Mapper.xml写Mapper层代码
分为两个部分
方法定义Interface方法实现:XXX.xml
添加mapper接口
package org.jwcb.je0725_mybatis_xml.mapper;import org.jwcb.je0725_mybatis_xml.entity.UserInfo;import java.util.List;public interface UserInfoMapper {ListUserInfo queryAllUser();
}添加UserInfoXmLMapper.xml
MyBatis固定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 namespaceorg.jwcb.je0725_mybatis_xml.mapper.UserInfoMapper
/mapper尝试一下执行select操作:
mapper namespaceorg.jwcb.je0725_mybatis_xml.mapper.UserInfoMapperselect idqueryAllUser resultTypeorg.jwcb.je0725_mybatis_xml.entity.UserInfoselect * from userinfo/select
/mapper执行结果:
mapper标签:需要指定namespace属性,表示命名空间,值为mapper接口的**全限定类名, **包括全包名.类名select查询标签:用来执行数据库的查询操作 id:是和interface中定义的方法名一致,表示对接口的具体实现方法resultType:是返回的数据类型,也就是UserInfo
我们会发现,出现了返回的一些值为null的情况,这种情况与上一篇文章一致,是由于数据库列名和java实体类属性名不一致导致的此时我们同样需要对起来在XML中:
mapper namespaceorg.jwcb.je0725_mybatis_xml.mapper.UserInfoMapperresultMap idXMLBaseMap typeorg.jwcb.je0725_mybatis_xml.entity.UserInforesult columndelete_flag propertydeleteFlag/resultresult columncreate_time propertycreateTime/resultresult columnupdate_time propertyupdateTime/result/resultMapselect idqueryAllUser2 resultMapXMLBaseMapselect * from userinfo/select
/mapper此时的执行结果就是正确的了
建议将其余的,即使命名一致,也都写上对应关系
同时,上一篇文章提到的起别名/开启驼峰命名一样适用
操作数据库 INSERT
insert idinsertUserinsert into userinfo (username,password,age,gender,phone) values (#{userinfo.username},#{userinfo.password},#{userinfo.age},#{userinfo.gender},#{userinfo.phone})
/insert在接口中:
Mapper
public interface UserInfoMapper {Integer insertUser(Param(userinfo) UserInfo userInfo);
}测试用例:
返回自增IDXML文件设置 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此时返回值直接在userinfo.id里面取就行了 DELETE UPDATE
delete iddeleteUserdelete from userinfo where id #{id}
/deleteupdate idupdateUserupdate userinfo set phone #{phone} where id #{id}
/updateInteger updateUser(UserInfo userInfo);
Integer deleteUser(UserInfo userInfo);感谢您的访问!!期待您的关注!!! T04BF 今天记得敲代码