当前位置: 首页 > 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.tj-hxxt.cn/news/229457.html

相关文章:

  • 网站设计主要包含3个方面沧州网络推广外包公司
  • 番禺网站(建设信科网络)手机ppt制作
  • 佛山住房和城乡建设厅网站大连旧房翻新装修哪家公司好
  • 广州seo网站开发徐州在线网
  • 建游戏网站网站开发所要达到的目标
  • 德令哈网站建设公司阿里云轻量服务器wordpress
  • 手机端网站建设郑州h5自己制作模板
  • asp.net网站开发书籍营销型建设
  • 网站服务器解决方案如何做网站站内搜索
  • 电子技术支持 东莞网站建设网站开发合同管辖权异议
  • 12306网站开发语言原创 网站 源码
  • 手机建造网站做网站的厉害还是黑网站的厉害
  • 石家庄的网站公司wordpress社群模板
  • 网站建设需要包含什么网站如何验收
  • 网站退出率是什么意思wordpress 表单 入库
  • 班级网站如何去建设桂林网站优化价格
  • 莱芜市城乡建设局网站首页湖南畅想网站建设
  • 连云港做网站网站做百度联盟收入已经很低了
  • 店面门头设计网站jsp网站开发的mvc
  • 陕西四通建设工程有限责任公司网站浙江省国有建设用地使用权建议网站
  • 有没有人一起做网站做网站服务器哪种好
  • 珠海公司网站建设建个简单的网站
  • 网站域名过期了怎么办vue网站引导页怎么做
  • 个人网站怎么设计wordpress4.7
  • 陕西 汽车 网站建设wordpress+云播插件
  • 优秀 网站设计 蓝色网站设计怎么做图片透明度
  • 深度科技商业官方网站wordpress固定链接标签加上页面
  • vue可以做pc的网站申请网站空间有哪几种方式
  • 网站建设推广关键词app平台开发定制软件
  • 网站建设中应该注意什么自己做的网站和ie不兼容