当前位置: 首页 > news >正文

镇江网站建设平台公司官网开发制作

镇江网站建设平台,公司官网开发制作,政务网站模板,解答网站内容优化策略之前我们介绍了使用XML配置方式完成对数据的增删改查操作#xff0c;使用此方式在实际调用时需要使用【命名空间.标签编号】的方式执行#xff0c;此方式在编写SQL语句时很方便#xff0c;而在执行SQL语句环节就显得不太优雅#xff1b;另外我们也介绍了使用映射器完成对数…之前我们介绍了使用XML配置方式完成对数据的增删改查操作使用此方式在实际调用时需要使用【命名空间.标签编号】的方式执行此方式在编写SQL语句时很方便而在执行SQL语句环节就显得不太优雅另外我们也介绍了使用映射器完成对数据的增删改查操作使用此方式在实际调用时可以直接调用接口中的方法来执行但在编写SQL语句时则显得不太友好尤其是在编写动态SQL语句时显得很麻烦如果能把两种方式结合XML配置动态SQL后使用映射器调用则会更加的优雅本篇我们以此目的介绍映射器与XML配置职责分离。 如果您对在Mybatis映射器、XML配置不太了解建议您先进行了解后再阅读本篇可以参考 Mybatis 使用映射器进行查询(Select)、新增(Insert)、修改(Update)、删除(Delete)https://blog.csdn.net/m1729339749/article/details/132831561Mybatis查询数据https://blog.csdn.net/m1729339749/article/details/132469672Mybatis 插入、修改、删除https://blog.csdn.net/m1729339749/article/details/132601345 一、数据准备 这里我们直接使用脚本初始化数据库中的数据 -- 如果数据库不存在则创建数据库 CREATE DATABASE IF NOT EXISTS demo DEFAULT CHARSET utf8; -- 切换数据库 USE demo; -- 创建用户表 CREATE TABLE IF NOT EXISTS T_USER(ID INT PRIMARY KEY,USERNAME VARCHAR(32) NOT NULL,AGE INT NOT NULL ); -- 插入用户数据 INSERT INTO T_USER(ID, USERNAME, AGE) VALUES(1, 张三, 20),(2, 李四, 22),(3, 王五, 24);创建了一个名称为demo的数据库并在库里创建了名称为T_USER的用户表并向表中插入了数据 二、创建实体类 在cn.horse.demo下创建UserInfo、UserInfoQuery类 UserInfo类 package cn.horse.demo;public class UserInfo {private Integer id;private String name;private Integer age;public void setId(Integer id) {this.id id;}public Integer getId() {return id;}public void setName(String name) {this.name name;}public String getName() {return name;}public void setAge(Integer age) {this.age age;}public Integer getAge() {return age;}Overridepublic String toString() {StringBuilder stringBuilder new StringBuilder();stringBuilder.append({);stringBuilder.append(id: this.id);stringBuilder.append(, );stringBuilder.append(name: this.name);stringBuilder.append(, );stringBuilder.append(age: this.age);stringBuilder.append(});return stringBuilder.toString();} }UserInfoQuery类 package cn.horse.demo;public class UserInfoQuery {private Integer startAge;private Integer endAge;public void setStartAge(Integer startAge) {this.startAge startAge;}public Integer getStartAge() {return startAge;}public void setEndAge(Integer endAge) {this.endAge endAge;}public Integer getEndAge() {return endAge;} }三、创建映射器、Mapper配置 在cn.horse.demo下创建UserInfoMapper接口 UserInfoMapper接口 package cn.horse.demo;import org.apache.ibatis.annotations.*;import java.util.List;public interface UserInfoMapper {ListUserInfo find(Param(query) UserInfoQuery query);Integer insert(Param(userInfoList) ListUserInfo userInfoList);Integer update(Param(userInfoList) ListUserInfo userInfoList);Integer delete(Param(idList) ListInteger idList); }在resources下创建cn/horse/demo目录并在此目录下创建UserInfoMapper.xml配置文件 UserInfoMapper.xml配置 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapperPUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttps://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecn.horse.demo.UserInfoMapperresultMap iduserInfoMap typecn.horse.demo.UserInforesult columnID propertyid /result columnUSERNAME propertyname/result columnAGE propertyage//resultMapselect idfind parameterTypecn.horse.demo.UserInfoQuery resultMapuserInfoMapSELECTID,USERNAME,AGEFROM T_USERwhereif testnull ! query.startAgeAND AGE gt; #{query.startAge}/ifif testnull ! query.endAgeAND AGE lt; #{query.endAge}/if/where/selectinsert idinsertINSERT INTO T_USER(ID,USERNAME,AGE)VALUESforeach collectionuserInfoList itemuserInfo separator,(#{userInfo.id}, #{userInfo.name}, #{userInfo.age})/foreach/insertupdate idupdateforeach collectionuserInfoList itemuserInfo separator; close;UPDATE T_USERsetif testnull ! userInfo.name and ! userInfo.nameUSERNAME #{userInfo.name},/ifif testnull ! userInfo.ageAGE #{userInfo.age},/if/setWHERE ID #{userInfo.id}/foreach/updatedelete iddeleteDELETE FROM T_USERwhereID INforeach collectionidList itemid open( separator, close)#{id}/foreach/where/delete /mapper注意 UserInfoMapper.xml配置文件需要与UserInfoMapper接口所在目录保持一致因为在UserInfoMapper接口加载时会加载同目录下的UserInfoMapper.xml配置文件如果目录不一致则UserInfoMapper.xml配置文件将不会被加载。UserInfoMapper.xml配置文件中的命名空间必须是UserInfoMapper接口的全限类名另外UserInfoMapper.xml配置文件中的标签编号需要与UserInfoMapper接口中的方法名一致。 四、引入配置文件 在resources下新建mybatis-config.xml配置文件并引入UserInfoMapper映射器。 ?xml version1.0 encodingUTF-8 ? !DOCTYPE configurationPUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd configurationsettingssetting namelogImpl valueJDK_LOGGING//settingsenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valueorg.gjt.mm.mysql.Driver/property nameurl valuejdbc:mysql://localhost:3306/demo?useUnicodetrueamp;useSSLfalseamp;characterEncodingutf8amp;allowMultiQueriestrue/property nameusername valueroot/property namepassword valuehorse//dataSource/environment/environmentsmappersmapper classcn.horse.demo.UserInfoMapper //mappers /configuration这里我们使用mapper引入映射器只需要设置class属性为UserInfoMapper接口的全限类名。 五、启动程序配置 1、会话工具类 在cn.horse.demo包下新建SqlSessionUtils工具类 package cn.horse.demo;import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream; import java.util.Objects;public class SqlSessionUtils {private static final SqlSessionFactory sqlSessionFactory;static {// 读取mybatis配置文件InputStream inputStream ClassLoader.getSystemClassLoader().getResourceAsStream(mybatis-config.xml);// 根据配置创建SqlSession工厂sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);}/*** 开启会话* return*/public static SqlSession openSession() {return sqlSessionFactory.openSession();}/*** 关闭会话* param sqlSession*/public static void closeSession(SqlSession sqlSession) {if(Objects.nonNull(sqlSession)) {sqlSession.close();}} }2、JDK 日志系统配置 在resources的目录下新建logging.properties配置文件 handlersjava.util.logging.ConsoleHandler .levelINFOcn.horse.demo.UserInfoMapper.levelFINER java.util.logging.ConsoleHandler.levelALL java.util.logging.ConsoleHandler.formatterjava.util.logging.SimpleFormatter java.util.logging.SimpleFormatter.format%1$tY-%1$tm-%1$td %1$tT.%1$tL %4$s %3$s - %5$s%6$s%n在cn.horse.demo下创建JdkLogConfig类 JdkLogConfig类 package cn.horse.demo;import java.io.IOException; import java.io.InputStream; import java.util.logging.LogManager;public class JdkLogConfig {public JdkLogConfig() {try {InputStream inputStream ClassLoader.getSystemClassLoader().getResourceAsStream(logging.properties);LogManager.getLogManager().readConfiguration(inputStream);} catch (IOException e) {throw new RuntimeException(e);}} }3、启动程序配置 package cn.horse.demo;import org.apache.ibatis.session.SqlSession;import java.util.List; import java.util.function.Consumer;public class Main {public static void main(String[] args) {// 引入JDK日志配置System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);}private static void execute(ConsumerUserInfoMapper function) {SqlSession sqlSession null;try {sqlSession SqlSessionUtils.openSession();function.accept(sqlSession.getMapper(UserInfoMapper.class));sqlSession.commit();} finally {SqlSessionUtils.closeSession(sqlSession);}} }execute方法用于执行操作方法中使用sqlSession.getMapper方法获取映射器对象然后将映射器对象具体的执行操作委托给了Consumer对象。 六、查询数据 // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);// 查询 execute((UserInfoMapper userInfoMapper) - {UserInfoQuery query new UserInfoQuery();query.setStartAge(20);ListUserInfo userInfoList userInfoMapper.find(query);for (UserInfo userInfo: userInfoList) {System.out.println(userInfo);} });执行后的结果如下 七、批量新增数据 // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);// 插入 execute((UserInfoMapper userInfoMapper) - {ListUserInfo userInfoList new ArrayList();UserInfo userInfo1 new UserInfo();userInfo1.setId(5);userInfo1.setName(王五1);userInfo1.setAge(5);userInfoList.add(userInfo1);UserInfo userInfo2 new UserInfo();userInfo2.setId(6);userInfo2.setName(王五2);userInfo2.setAge(6);userInfoList.add(userInfo2);Integer total userInfoMapper.insert(userInfoList);System.out.println(插入条数: total); });执行后的结果如下 八、批量修改数据 // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);// 更新 execute((UserInfoMapper userInfoMapper) - {ListUserInfo userInfoList new ArrayList();UserInfo userInfo1 new UserInfo();userInfo1.setId(5);userInfo1.setName(王五11);userInfoList.add(userInfo1);UserInfo userInfo2 new UserInfo();userInfo2.setId(6);userInfo2.setAge(26);userInfoList.add(userInfo2);Integer total userInfoMapper.update(userInfoList);System.out.println(更新条数: total); });执行后的结果如下 九、批量删除数据 // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);// 删除 execute((UserInfoMapper userInfoMapper) - {Integer total userInfoMapper.delete(Arrays.asList(5, 6));System.out.println(删除条数: total); });执行后的结果如下
文章转载自:
http://www.morning.swwpl.cn.gov.cn.swwpl.cn
http://www.morning.spftz.cn.gov.cn.spftz.cn
http://www.morning.kjyhh.cn.gov.cn.kjyhh.cn
http://www.morning.litao4.cn.gov.cn.litao4.cn
http://www.morning.cpctr.cn.gov.cn.cpctr.cn
http://www.morning.hengqilan.cn.gov.cn.hengqilan.cn
http://www.morning.junyaod.com.gov.cn.junyaod.com
http://www.morning.qnzgr.cn.gov.cn.qnzgr.cn
http://www.morning.drhnj.cn.gov.cn.drhnj.cn
http://www.morning.ysmw.cn.gov.cn.ysmw.cn
http://www.morning.bkppb.cn.gov.cn.bkppb.cn
http://www.morning.mjjty.cn.gov.cn.mjjty.cn
http://www.morning.thrcj.cn.gov.cn.thrcj.cn
http://www.morning.whothehellami.com.gov.cn.whothehellami.com
http://www.morning.wgrm.cn.gov.cn.wgrm.cn
http://www.morning.huxinzuche.cn.gov.cn.huxinzuche.cn
http://www.morning.drtgt.cn.gov.cn.drtgt.cn
http://www.morning.nfpgc.cn.gov.cn.nfpgc.cn
http://www.morning.fflnw.cn.gov.cn.fflnw.cn
http://www.morning.mmosan.com.gov.cn.mmosan.com
http://www.morning.nwljj.cn.gov.cn.nwljj.cn
http://www.morning.hhboyus.cn.gov.cn.hhboyus.cn
http://www.morning.lbgfz.cn.gov.cn.lbgfz.cn
http://www.morning.rfqkx.cn.gov.cn.rfqkx.cn
http://www.morning.npqps.cn.gov.cn.npqps.cn
http://www.morning.pmnn.cn.gov.cn.pmnn.cn
http://www.morning.fldrg.cn.gov.cn.fldrg.cn
http://www.morning.rxnxl.cn.gov.cn.rxnxl.cn
http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn
http://www.morning.gprzp.cn.gov.cn.gprzp.cn
http://www.morning.bpmnh.cn.gov.cn.bpmnh.cn
http://www.morning.hlzpb.cn.gov.cn.hlzpb.cn
http://www.morning.bgbnc.cn.gov.cn.bgbnc.cn
http://www.morning.zkqjz.cn.gov.cn.zkqjz.cn
http://www.morning.mzrqj.cn.gov.cn.mzrqj.cn
http://www.morning.mmkrd.cn.gov.cn.mmkrd.cn
http://www.morning.grpfj.cn.gov.cn.grpfj.cn
http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn
http://www.morning.nclps.cn.gov.cn.nclps.cn
http://www.morning.nnhfz.cn.gov.cn.nnhfz.cn
http://www.morning.tnjff.cn.gov.cn.tnjff.cn
http://www.morning.hqsnt.cn.gov.cn.hqsnt.cn
http://www.morning.tpps.cn.gov.cn.tpps.cn
http://www.morning.qxnns.cn.gov.cn.qxnns.cn
http://www.morning.ysgnb.cn.gov.cn.ysgnb.cn
http://www.morning.fqklt.cn.gov.cn.fqklt.cn
http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn
http://www.morning.msgnx.cn.gov.cn.msgnx.cn
http://www.morning.skrxp.cn.gov.cn.skrxp.cn
http://www.morning.nrqnj.cn.gov.cn.nrqnj.cn
http://www.morning.bzcjx.cn.gov.cn.bzcjx.cn
http://www.morning.jfjfk.cn.gov.cn.jfjfk.cn
http://www.morning.dpmkn.cn.gov.cn.dpmkn.cn
http://www.morning.gnwse.com.gov.cn.gnwse.com
http://www.morning.fbdtd.cn.gov.cn.fbdtd.cn
http://www.morning.dnzyx.cn.gov.cn.dnzyx.cn
http://www.morning.pntzg.cn.gov.cn.pntzg.cn
http://www.morning.xbtlt.cn.gov.cn.xbtlt.cn
http://www.morning.fbzyc.cn.gov.cn.fbzyc.cn
http://www.morning.bfhfb.cn.gov.cn.bfhfb.cn
http://www.morning.wgbmj.cn.gov.cn.wgbmj.cn
http://www.morning.cthrb.cn.gov.cn.cthrb.cn
http://www.morning.yxshp.cn.gov.cn.yxshp.cn
http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn
http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn
http://www.morning.kpwcx.cn.gov.cn.kpwcx.cn
http://www.morning.ghwdm.cn.gov.cn.ghwdm.cn
http://www.morning.qsmch.cn.gov.cn.qsmch.cn
http://www.morning.wrbx.cn.gov.cn.wrbx.cn
http://www.morning.crsnb.cn.gov.cn.crsnb.cn
http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn
http://www.morning.qjxkx.cn.gov.cn.qjxkx.cn
http://www.morning.tsxg.cn.gov.cn.tsxg.cn
http://www.morning.clpkp.cn.gov.cn.clpkp.cn
http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn
http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn
http://www.morning.trzzm.cn.gov.cn.trzzm.cn
http://www.morning.cfcpb.cn.gov.cn.cfcpb.cn
http://www.morning.rfhm.cn.gov.cn.rfhm.cn
http://www.morning.bgpch.cn.gov.cn.bgpch.cn
http://www.tj-hxxt.cn/news/246973.html

相关文章:

  • 北京建网站公司哪家便宜淄博张店整合网络推广
  • 什么是网站根目录怎么制作古装视频
  • 做网站asp用什么软件咸阳做网站费用
  • 企业网站建设收费wordpress 好用插件
  • 然后建设自营网站jsp网站购买空间
  • 昆山 网站p2p倒闭 网站开发
  • 网站备案现状有源码怎么做app
  • 建设项目环境登记表辽宁省网站python 网站开发书籍
  • 一个不懂技术的人如何做网站创新型的合肥网站建设
  • 连南网站建设电子商务网站建设基础步骤
  • 为什么网站经常被攻击简易个人网页模板
  • 南昌市科协网站泵阀网站建设
  • 宝山网站建设制作网站排名大全
  • 广州企业网站互联网企业营销策略
  • 三合一网站建站ip分享网站
  • 网站建设标准网站如何进行网络推广
  • 开发一个功能网站多少钱seo公司网站推广
  • 网站的登录界面是怎么做的常州市建设局网站资质
  • 上海市普陀区建设规划局网站杭州索象营销策划有限公司
  • 创建网站制作仪表企业百度快速排名
  • php网站开发方案哪里有网站开发定制
  • 江苏省常州建设高等职业技术学校网站暴雪王
  • 设计的素材网站有哪些视频教育网站开发
  • 网站 备份 还原专业的网站建设找聚爱
  • 福建省住房和城乡建设网站律师建网站
  • 建设网站的书籍自己做的网站打不开怎么回事
  • 网站网页设计在哪找买一个商标大概要多少钱
  • 医院网站网站建设分金手指排名十三
  • 做网站能赚多少钱群晖nas可以做网站
  • php网站建设一流程免费制作app平台