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

彩票网站开发 合法岳阳网站建设收费标准

彩票网站开发 合法,岳阳网站建设收费标准,局域网站开发,销售公司名字大全前面我们介绍了Mybatis动态SQL的使用#xff1b;本篇我们介绍使用mybatis-velocity动态语言生成动态SQL。 如果您对Mybatis动态SQL不太了解#xff0c;建议您先进行了解后再阅读本篇#xff0c;可以参考#xff1a; Mybatis 动态SQL – 使用if,where标签动态生成条件语句…前面我们介绍了Mybatis动态SQL的使用本篇我们介绍使用mybatis-velocity动态语言生成动态SQL。 如果您对Mybatis动态SQL不太了解建议您先进行了解后再阅读本篇可以参考 Mybatis 动态SQL – 使用if,where标签动态生成条件语句 Mybatis 动态SQL – 使用if,set标签动态生成更新语句 Mybatis 动态SQL – 使用choose标签动态生成条件语句 Mybatis 动态SQL – 使用choose标签动态生成更新语句 Mybatis 动态SQL - 使用foreach标签查询数据、批量新增、批量修改、删除数据 一、数据准备 这里我们直接使用脚本初始化数据库中的数据 -- 如果数据库不存在则创建数据库 CREATE DATABASE IF NOT EXISTS demo DEFAULT CHARSET utf8; -- 切换数据库 USE demo; -- 创建用户表 CREATE TABLE IF NOT EXISTS T_TEACHER(ID INT PRIMARY KEY COMMENT 教师编号,TEACHER_NAME VARCHAR(64) NOT NULL COMMENT 教师名称,DEPARTMENT VARCHAR(16) NOT NULL COMMENT 所属部门,BIRTH DATE NOT NULL COMMENT 出生年月,DEGREE VARCHAR(16) NOT NULL COMMENT 学历(ZK:专科, BK:本科, YJS:研究生, BS:博士) ); -- 插入用户数据 INSERT INTO T_TEACHER(ID, TEACHER_NAME, DEPARTMENT, BIRTH, DEGREE) VALUES(1, 张三1, 001, 1990-06-12, BK),(2, 李四1, 002, 1992-05-10, BK),(3, 张三2, 003, 1988-01-15, YJS),(4, 李四2, 001, 1979-03-10, BK),(5, 李四3, 003, 1995-08-16, YJS); 创建了一个名称为demo的数据库并在库里创建了名称为T_TEACHER的教师表并向表中插入了数据 二、环境准备 1、添加依赖 dependencygroupIdorg.mybatis.scripting/groupIdartifactIdmybatis-velocity/artifactIdversion2.1.0/version /dependency 2、创建实体类 在cn.horse.demo下创建TeacherInfo、TeacherInfoQuery实体类 TeacherInfo类 package cn.horse.demo;import java.time.LocalDate;public class TeacherInfo {private Integer id;private String name;private String department;private LocalDate birth;private String degree;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 setDepartment(String department) {this.department department;}public String getDepartment() {return department;}public void setBirth(LocalDate birth) {this.birth birth;}public LocalDate getBirth() {return birth;}public void setDegree(String degree) {this.degree degree;}public String getDegree() {return degree;}Overridepublic String toString() {StringBuilder stringBuilder new StringBuilder();stringBuilder.append({ );stringBuilder.append(id: );stringBuilder.append(this.id);stringBuilder.append(, );stringBuilder.append(name: );stringBuilder.append(this.name);stringBuilder.append(, );stringBuilder.append(department: );stringBuilder.append(this.department);stringBuilder.append(, );stringBuilder.append(birth: );stringBuilder.append(this.birth);stringBuilder.append(, );stringBuilder.append(degree: );stringBuilder.append(this.degree);stringBuilder.append( });return stringBuilder.toString();} } TeacherInfoQuery类 package cn.horse.demo;public class TeacherInfoQuery {private String department;private String degree;public void setDepartment(String department) {this.department department;}public String getDepartment() {return department;}public void setDegree(String degree) {this.degree degree;}public String getDegree() {return degree;} } 3、Mapper配置文件 在resources的目录下新建TeacherInfoMapper.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.TeacherInfoMapper/mapper 4、动态语言配置 在resources下新建mybatis-config.xml配置文件配置velocity默认的脚本语言并引入TeacherInfoMapper.xml配置文件 ?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/setting namedefaultScriptingLanguage valueorg.mybatis.scripting.velocity.VelocityLanguageDriver//settingsenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valueorg.gjt.mm.mysql.Driver/property nameurl valuejdbc:mysql://localhost:3306/demo?useUnicodetrueamp;useSSLfalseamp;characterEncodingutf8/property nameusername valueroot/property namepassword valuehorse//dataSource/environment/environments /configuration 其中setting namedefaultScriptingLanguage valueorg.mybatis.scripting.velocity.VelocityLanguageDriver/用于配置velocity作为默认的动态语言 5、日志配置 在resources的目录下新建logging.properties配置文件 handlersjava.util.logging.ConsoleHandler .levelINFOcn.horse.demo.TeacherInfoMapper.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);}} } 6、会话工具类 在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();}} } 7、启动程序配置 package cn.horse.demo;import org.apache.ibatis.session.SqlSession;import java.util.List;public class Main {public static void main(String[] args) {// 引入JDK日志配置System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);}private static void find(String statement, TeacherInfoQuery query) {SqlSession sqlSession null;try {sqlSession SqlSessionUtils.openSession();ListTeacherInfo teacherInfoList sqlSession.selectList(statement, query);for (TeacherInfo teacherInfo: teacherInfoList) {System.out.println(teacherInfo);}} finally {SqlSessionUtils.closeSession(sqlSession);}}private static void insert(String statement, ListTeacherInfo teacherInfoList) {SqlSession sqlSession null;try {sqlSession SqlSessionUtils.openSession();sqlSession.insert(statement, teacherInfoList);sqlSession.commit();} finally {SqlSessionUtils.closeSession(sqlSession);}}private static void update(String statement, TeacherInfo teacherInfo) {SqlSession sqlSession null;try {sqlSession SqlSessionUtils.openSession();sqlSession.update(statement, teacherInfo);sqlSession.commit();} finally {SqlSessionUtils.closeSession(sqlSession);}}private static void delete(String statement, ListInteger idList) {SqlSession sqlSession null;try {sqlSession SqlSessionUtils.openSession();sqlSession.delete(statement, idList);sqlSession.commit();} finally {SqlSessionUtils.closeSession(sqlSession);}} } 启动程序中我们提供了新增、删除、修改、查询等方法用于测试使用 三、查询数据 在TeacherInfoMapper.xml配置文件中新增findByQuery查询语句 select idfind resultTypecn.horse.demo.TeacherInfoSELECTID,TEACHER_NAME name,DEPARTMENT,BIRTH,DEGREEFROM T_TEACHER#where()#if($_parameter.degree and ! $_parameter.degree)AND DEGREE {_parameter.degree}#end#if($_parameter.department and ! $_parameter.department)AND DEPARTMENT {_parameter.department}#end#end /select #where()类似于where标签 #if()类似于if标签第一个标签代表的是degree不为null并且不为空字符串第二个标签代表的是department不为null并且不为空字符串 取参数值时使用 $_parameter.参数名 格式例如我们获取degree参数值时使用$_parameter.degree 预处理参数使用 {_parameter.参数名} 格式例如我们预处理degree参数时使用{_parameter.degree} 测试 // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);// 查询学历为本科的教师 TeacherInfoQuery query new TeacherInfoQuery(); query.setDegree(BK); find(cn.horse.demo.TeacherInfoMapper.find, query); 执行后的结果如下 四、批量插入数据 在TeacherInfoMapper.xml配置文件中新增insert插入语句 insert idinsertINSERT INTO T_TEACHER(ID, TEACHER_NAME, DEPARTMENT, BIRTH, DEGREE)#repeat($_parameter.list $teacherInfo , VALUES )({teacherInfo.id}, {teacherInfo.name}, {teacherInfo.department}, {teacherInfo.birth}, {teacherInfo.degree})#end /insert #repeat类似于foreach标签其格式为 #repeat(collection var separator open close)#end collection数组或可迭代对象 var数组中的元素或本次迭代的元素 separator迭代之间的分隔符 open指定开头的字符串 close指定结尾的字符串 测试  // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);ListTeacherInfo teacherInfoList new ArrayList(); TeacherInfo teacherInfo1 new TeacherInfo(); teacherInfo1.setId(11); teacherInfo1.setName(张三11); teacherInfo1.setDepartment(001); teacherInfo1.setBirth(LocalDate.of(1988, 5, 20)); teacherInfo1.setDegree(BK); teacherInfoList.add(teacherInfo1);TeacherInfo teacherInfo2 new TeacherInfo(); teacherInfo2.setId(12); teacherInfo2.setName(李四12); teacherInfo2.setDepartment(003); teacherInfo2.setBirth(LocalDate.of(1989, 8, 10)); teacherInfo2.setDegree(ZK); teacherInfoList.add(teacherInfo2); insert(cn.horse.demo.TeacherInfoMapper.insert, teacherInfoList); 执行的结果如下 五、更新数据 在TeacherInfoMapper.xml配置文件中新增update更新语句 update idupdateUPDATE T_TEACHER#mset()#if($_parameter.name and ! $_parameter.name)TEACHER_NAME {_parameter.name},#end#if($_parameter.department and ! $_parameter.department)DEPARTMENT {_parameter.department},#end#if($_parameter.birth)BIRTH {_parameter.birth},#end#if($_parameter.degree and ! $_parameter.degree)DEGREE {_parameter.degree},#end#endWHERE ID {_parameter.id} /update #mset类似于set标签 测试  // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);TeacherInfo teacherInfo new TeacherInfo(); teacherInfo.setId(11); teacherInfo.setName(张三22); update(cn.horse.demo.TeacherInfoMapper.update, teacherInfo); 执行的结果如下 六、批量删除数据 在TeacherInfoMapper.xml配置文件中新增delete删除语句 delete iddeleteDELETE FROM T_TEACHERWHERE ID IN#repeat($_parameter.list $id , ( )){id}#end /delete 测试  // 引入JDK日志配置 System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);delete(cn.horse.demo.TeacherInfoMapper.delete, Arrays.asList(11, 12)); 执行的结果如下
http://www.w-s-a.com/news/263153/

相关文章:

  • 怎么做室内设计公司网站电商运营培训视频课程
  • 昆明网站策划天津市建筑信息平台
  • 三亚放心游app官方网站wordpress 个人主题
  • 做简单的网站备案平台新增网站
  • 中国建设网站银行网络营销推广方案整合
  • 网站域名列表dede网站白屏
  • 站长工具一区品牌建设卓有成效
  • 电子商务网站建设案例wordpress批量编辑
  • 想代理个网站建设平台100个最佳市场营销案例
  • 钟表东莞网站建设石家庄做网站时光
  • 织梦 图片网站源码成都建设工程安监局网站
  • 做兼职的网站策划书湖北省建设工程造价信息网
  • 企业网站网址长期做网站应该购买稳定的空间
  • 网站静态化设计html5手机网站制作
  • 深圳最简单的网站建设家居网站建设全网营销
  • 如何取消网站备案佛山网站优化公司
  • 网站开发 成都广水网站设计
  • 音乐网站建设目标合同管理系统
  • jq网站特效插件如何知道网站是否被k
  • 自己的网站怎么接广告网站搭建收费
  • 宁波大型网站制作建立一个网站 优帮云
  • 大连零基础网站建设教学电话有哪些比较好的做ppt好的网站
  • 哪个网站做logo设计我的建筑网
  • php电子商务网站开发沂源手机网站建设公司
  • html和php做网站哪个好3gcms企业手机网站整站源码asp
  • 网站建设网页设计案例云南建设厅网站删除
  • 杏坛网站制作太原做网站要多少钱呢
  • 做新闻类网站还有市场吗东莞黄页网广告
  • 地方网站做外卖专业做互联网招聘的网站有哪些
  • 网站推广公司兴田德润紧急网页升级紧急通知