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

本地电脑如何做网站网站建立的重要性

本地电脑如何做网站,网站建立的重要性,溧阳人才网 网站开发,做外贸去哪些网站找老外上一篇我们介绍了mybatis中二级缓存的使用#xff0c;本篇我们在此基础上介绍Mybatis中如何使用Redis作为二级缓存。 如果您对mybatis中二级缓存的使用不太了解#xff0c;建议您先进行了解后再阅读本篇#xff0c;可以参考#xff1a; Mybatis 二级缓存https://blog.csd…上一篇我们介绍了mybatis中二级缓存的使用本篇我们在此基础上介绍Mybatis中如何使用Redis作为二级缓存。 如果您对mybatis中二级缓存的使用不太了解建议您先进行了解后再阅读本篇可以参考 Mybatis 二级缓存https://blog.csdn.net/m1729339749/article/details/133376283 一、添加依赖 dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.4.5/version /dependency dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.49/version /dependency dependencygroupIdorg.mybatis.caches/groupIdartifactIdmybatis-redis/artifactIdversion1.0.0-beta2/version /dependency二、Redis配置 在resources目录下新建redis.properties配置文件 hostlocalhost port6379 connectionTimeout2000 soTimeout2000 passwordhorse database0 clientNameMybatis_Cachehostredis服务主机 portredis服务端口 passwordredis密码 三、创建实体类 在cn.horse.demo下创建UserInfo、UserInfoQuery类另外需要特别注意缓存的对象类型必须实现Serializable接口 UserInfo类 package cn.horse.demo;import java.io.Serializable;public class UserInfo implements Serializable {private static final long serialVersionUID 9213975268411777481L;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); }在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.UserInfoMappercache typeorg.mybatis.caches.redis.RedisCache /resultMap 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/select /mapper注意cache标签代表在此命名空间下使用二级缓存type代表的是二级缓存的实现方式这里使用的是org.mybatis.caches.redis.RedisCache 五、引入配置文件 在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、数据准备 这里我们直接使用脚本初始化数据库中的数据 -- 如果数据库不存在则创建数据库 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的用户表并向表中插入了数据 2、会话工具类 在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();}} }3、JDK 日志系统配置 在resources的目录下新建logging.properties配置文件 handlersjava.util.logging.ConsoleHandler .levelINFOcn.horse.demo.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);}} }4、启动程序 package cn.horse.demo;import org.apache.ibatis.session.SqlSession;import java.util.List; import java.util.function.Consumer; import java.util.logging.Logger;public class Main {private static final Logger LOGGER;static {// 引入JDK日志配置System.setProperty(java.util.logging.config.class, cn.horse.demo.JdkLogConfig);LOGGER Logger.getLogger(cn.horse.demo.Main);}public static void main(String[] args) throws InterruptedException {// 查询selectGreaterThan(20);// 查询selectGreaterThan(20);}private static void selectGreaterThan(Integer age) {LOGGER.finer(--------------- 查询 ----------------);execute((UserInfoMapper userInfoMapper) - {UserInfoQuery query new UserInfoQuery();query.setStartAge(age);ListUserInfo userInfoList userInfoMapper.find(query);for (UserInfo userInfo: userInfoList) {LOGGER.info(userInfo.toString());}});}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对象。 执行后的结果如下
http://www.w-s-a.com/news/173747/

相关文章:

  • 电商类网站模板下载济南市建设网官网
  • 万户网络做网站如何采集器wordpress
  • 襄阳网站建设企业查看 wordpress 插件
  • 网站地址申请京东联盟怎么做网站
  • 三亚市城乡建设局网站网站口碑营销
  • 图书租借网站 开发企业网站搜索优化外
  • 新乡个人网站建设哪家好免费的图片做视频在线观看网站
  • 洛阳工程建设信息网站山西响应式网页建设哪里好
  • 企业网站建设市场的另一面wordpress分类插件
  • 网站建设名头公司展厅装修
  • 小型购物网站开发费用郑州企业网站模板建站
  • 个体商户建自己的网站做销售建设积分兑换官方网站
  • 网站建设与维护培训网页制作专业用语
  • 建站特别慢wordpress网页制作与设计项目策划书
  • 视频制作素材免费网站头像制作在线生成器
  • 网站建设是不是可以免费建站广州做网站 信科网络
  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法