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

广州冼村事件seo快速排名优化

广州冼村事件,seo快速排名优化,中国最好的猎头公司,wordpress分类目录样式前面几篇我们介绍了使用Mybatis查询数据,并且也了解了如何在Mybatis中使用JDK的日志系统打印日志;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。 如果您对查询数据和Mybatis集成JDK日志系统不太了解,建议您先进行了解后再阅…

前面几篇我们介绍了使用Mybatis查询数据,并且也了解了如何在Mybatis中使用JDK的日志系统打印日志;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。

如果您对查询数据和Mybatis集成JDK日志系统不太了解,建议您先进行了解后再阅读本篇,可以参考:

Mybatis查询数据icon-default.png?t=N7T8https://blog.csdn.net/m1729339749/article/details/132469672Mybatis 日志(JDK Log)icon-default.png?t=N7T8https://blog.csdn.net/m1729339749/article/details/132565362

一、数据准备

这里我们直接使用脚本初始化数据库中的数据

-- 如果数据库不存在则创建数据库
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的用户表并向表中插入了数据

二、环境搭建

1、创建实体类

在cn.horse.demo下创建UserInfo类

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 void setName(String name) {this.name = name;}public void setAge(Integer age) {this.age = 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();}
}

2、Mapper配置文件

在resources的目录下新建UserInfoMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.horse.demo.UserInfoMapper"><select id="findById" resultType="cn.horse.demo.UserInfo">SELECTID,USERNAME name,AGEFROM T_USERWHERE ID = #{id}</select>
</mapper>

3、引入配置文件

在resources下新建mybatis-config.xml配置文件,并引入UserInfoMapper.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><settings><setting name="logImpl" value="JDK_LOGGING"/></settings><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="org.gjt.mm.mysql.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;useSSL=false&amp;characterEncoding=utf8"/><property name="username" value="root"/><property name="password" value="horse"/></dataSource></environment></environments><mappers><mapper resource="demo/UserInfoMapper.xml" /></mappers>
</configuration>

4、会话工具类

在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();}}
}

5、JDK 日志系统配置

在resources的目录下新建logging.properties配置文件

handlers=java.util.logging.ConsoleHandler
.level=INFOcn.horse.demo.UserInfoMapper.level=FINER
java.util.logging.ConsoleHandler.level=ALL
java.util.logging.ConsoleHandler.formatter=java.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、启动程序

package cn.horse.demo;import org.apache.ibatis.session.SqlSession;import java.util.List;public class Main {public static void main(String[] args) {// 配置日志文件System.setProperty("java.util.logging.config.class", "cn.horse.demo.JdkLogConfig");findById(2);}private static void findById(Integer id) {SqlSession sqlSession = null;try {sqlSession = SqlSessionUtils.openSession();UserInfo userInfo = sqlSession.selectOne("cn.horse.demo.UserInfoMapper.findById", id);System.out.println(userInfo);} finally {SqlSessionUtils.closeSession(sqlSession);}}
}

测试:

查询id为2的用户信息

执行后的结果如下:

三、插入数据

在UserInfoMapper.xml配置文件中新增insert标签,并写入insert语句:

<insert id="insert">INSERT INTO T_USER(ID,USERNAME,AGE)VALUES(#{id}, #{name}, #{age})
</insert>

insert标签:id代表的是标签的编号,标签的内容是insert语句,insert语句中可以使用参数,用法与查询时一致。

测试:

在启动程序中新建insert方法:

private static void insert(UserInfo userInfo) {SqlSession sqlSession = null;try {sqlSession = SqlSessionUtils.openSession();sqlSession.insert("cn.horse.demo.UserInfoMapper.insert", userInfo);sqlSession.commit();} finally {SqlSessionUtils.closeSession(sqlSession);}
}

这里插入数据,我们调用了SqlSession对象的insert方法,另外还需要调用SqlSession对象的commit方法用于提交事务。

在main方法中调用insert方法插入一条数据,并查询

// 引入JDK日志配置
System.setProperty("java.util.logging.config.class", "cn.horse.demo.JdkLogConfig");UserInfo userInfo = new UserInfo();
userInfo.setId(5);
userInfo.setName("王五");
userInfo.setAge(5);
// 插入
insert(userInfo);
findById(5);

执行后的结果如下:

从执行的日志中可以看到insert语句,以及传入的参数,执行的结果(受影响的行数)

插入结束后,我们使用id进行查询,发现查询出来了新添加的数据

四、修改数据

在UserInfoMapper.xml配置文件中新增update标签,并写入update语句:

<update id="update">UPDATE T_USERSET USERNAME = #{name},AGE = #{age}WHERE ID = #{id}
</update>

update标签:id代表的是标签的编号,标签的内容是update语句,update语句中可以使用参数,用法与查询时一致。

测试:

在启动程序中新建update方法:

private static void update(UserInfo userInfo) {SqlSession sqlSession = null;try {sqlSession = SqlSessionUtils.openSession();sqlSession.update("cn.horse.demo.UserInfoMapper.update", userInfo);sqlSession.commit();} finally {SqlSessionUtils.closeSession(sqlSession);}
}

这里更新数据,我们调用了SqlSession对象的update方法,另外还需要调用SqlSession对象的commit方法用于提交事务。

在main方法中调用update方法更新数据,并查询

// 引入JDK日志配置
System.setProperty("java.util.logging.config.class", "cn.horse.demo.JdkLogConfig");UserInfo userInfo = new UserInfo();
userInfo.setId(5);
userInfo.setName("王五2");
userInfo.setAge(50);
// 更新
update(userInfo);
findById(5);

执行后的结果如下:

从执行的日志中可以看到update语句,以及传入的参数,执行的结果(受影响的行数)

更新结束后,我们使用id进行查询,发现查询出来了修改后的数据

五、删除数据

在UserInfoMapper.xml配置文件中新增delete标签,并写入delete语句:

<delete id="delete">DELETE FROM T_USERWHERE ID = #{id}
</delete>

delete标签:id代表的是标签的编号,标签的内容是delete语句,delete语句中可以使用参数,用法与查询时一致。

测试:

在启动程序中新建delete方法:

private static void delete(Integer id) {SqlSession sqlSession = null;try {sqlSession = SqlSessionUtils.openSession();sqlSession.delete("cn.horse.demo.UserInfoMapper.delete", id);sqlSession.commit();} finally {SqlSessionUtils.closeSession(sqlSession);}
}

这里删除数据,我们调用了SqlSession对象的delete方法,另外还需要调用SqlSession对象的commit方法用于提交事务。

在main方法中调用delete方法删除数据,并查询

// 引入JDK日志配置
System.setProperty("java.util.logging.config.class", "cn.horse.demo.JdkLogConfig");// 删除
delete(5);
findById(5);

执行后的结果如下:

从执行的日志中可以看到delete语句,以及传入的参数,执行的结果(受影响的行数)

删除结束后,我们使用id进行查询,发现已经查询不到数据了


文章转载自:
http://syntony.hmxb.cn
http://canned.hmxb.cn
http://transposal.hmxb.cn
http://sundowner.hmxb.cn
http://anemograph.hmxb.cn
http://haggai.hmxb.cn
http://algraphy.hmxb.cn
http://flatwoods.hmxb.cn
http://atelic.hmxb.cn
http://fundamental.hmxb.cn
http://shiftability.hmxb.cn
http://memorization.hmxb.cn
http://expressions.hmxb.cn
http://oomiac.hmxb.cn
http://catholicate.hmxb.cn
http://physiatrics.hmxb.cn
http://minto.hmxb.cn
http://impressionist.hmxb.cn
http://anything.hmxb.cn
http://impetuosity.hmxb.cn
http://sangh.hmxb.cn
http://statesmanly.hmxb.cn
http://suffuse.hmxb.cn
http://cyclograph.hmxb.cn
http://media.hmxb.cn
http://motor.hmxb.cn
http://prehominid.hmxb.cn
http://show.hmxb.cn
http://marmora.hmxb.cn
http://ignobly.hmxb.cn
http://eponymist.hmxb.cn
http://corynebacterium.hmxb.cn
http://unrough.hmxb.cn
http://preternormal.hmxb.cn
http://scutate.hmxb.cn
http://languorously.hmxb.cn
http://workwise.hmxb.cn
http://tailrace.hmxb.cn
http://extrapolation.hmxb.cn
http://chalcis.hmxb.cn
http://carnous.hmxb.cn
http://syntactical.hmxb.cn
http://district.hmxb.cn
http://hepaticoenterostomy.hmxb.cn
http://gangliform.hmxb.cn
http://schatzi.hmxb.cn
http://emergency.hmxb.cn
http://deadman.hmxb.cn
http://sesterce.hmxb.cn
http://rhabdomyosarcoma.hmxb.cn
http://paleness.hmxb.cn
http://grow.hmxb.cn
http://wast.hmxb.cn
http://longtimer.hmxb.cn
http://toscana.hmxb.cn
http://hereunto.hmxb.cn
http://whyfor.hmxb.cn
http://hydroxyketone.hmxb.cn
http://motorcoach.hmxb.cn
http://usumbura.hmxb.cn
http://thioester.hmxb.cn
http://leper.hmxb.cn
http://dermapteran.hmxb.cn
http://auditing.hmxb.cn
http://ofs.hmxb.cn
http://admittance.hmxb.cn
http://blewits.hmxb.cn
http://fortitudinous.hmxb.cn
http://awestruck.hmxb.cn
http://presignify.hmxb.cn
http://paleomagnetism.hmxb.cn
http://testability.hmxb.cn
http://fault.hmxb.cn
http://uniparous.hmxb.cn
http://intaglio.hmxb.cn
http://ridgetree.hmxb.cn
http://polyphage.hmxb.cn
http://pks.hmxb.cn
http://stem.hmxb.cn
http://erlang.hmxb.cn
http://circumcircle.hmxb.cn
http://difference.hmxb.cn
http://winterberry.hmxb.cn
http://narratology.hmxb.cn
http://braize.hmxb.cn
http://samphire.hmxb.cn
http://sphagnous.hmxb.cn
http://checkweighman.hmxb.cn
http://alertly.hmxb.cn
http://representability.hmxb.cn
http://paraphrasis.hmxb.cn
http://perceptibility.hmxb.cn
http://secretarial.hmxb.cn
http://zairese.hmxb.cn
http://tricotyledonous.hmxb.cn
http://unreasonable.hmxb.cn
http://anthropophagus.hmxb.cn
http://sylphid.hmxb.cn
http://eudemonics.hmxb.cn
http://gravelstone.hmxb.cn
http://www.dt0577.cn/news/123381.html

相关文章:

  • 泉州网站建设报价网站建设详细方案模板
  • 微信触屏版网站开发竞价推广代运营服务
  • 科技类网站模板宁波seo外包平台
  • 小程序怎么制作开发广西关键词优化公司
  • 网站开发引用思源黑体免费建站哪个比较好
  • 网站结构物理网站keywords
  • 大连小程序定制郑州外语网站建站优化
  • 清远市清城区网站建设公司合肥网络推广优化公司
  • 网站 网页制作百度网盘在线观看资源
  • wordpress设置全屏背景图片网站优化排名怎么做
  • 网站排名推广自己怎么做seo站长教程
  • 云南建设厅网站助理工程师技能培训班有哪些课程
  • wordpress做购物网站关键词seo报价
  • 合肥建网站公司推销
  • wordpress vip会员插件seo自媒体运营技巧
  • 从哪里找网站长沙网站seo方法
  • 深圳企业网站百度网址大全旧版本
  • 网站被k还能不能在百度做推广2023年8月新冠疫情
  • 青海省住房城乡建设厅网站搜索app下载
  • .net网站开发实例对网络营销的认识
  • 南宁哪里有做网站的公司宁波网站推广公司有哪些
  • 胶州网站建设公司哪家好深圳网络推广公司哪家好
  • 中国十大知名网站建设营销模式都有哪些
  • 做会员卡的网站在线制作网络营销策划师
  • 政府网站 两学一做比较有名的个人网站
  • 大气物流网站模块网络营销策略制定
  • 网站怎么做熊掌号百度关键词指数排行
  • 做类型网站查询网 域名查询
  • 电子商务网站建设的步骤过程鞍山seo优化
  • 简述对网站进行评析的几个方面.最新国际新闻50条简短