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

淘宝里网站建设公司可以吗免费cms建站系统

淘宝里网站建设公司可以吗,免费cms建站系统,重庆sem网站推广,受欢迎的扬中网站建设文章目录 一. MyBatis XML配置文件1. 配置链接字符串和MyBatis2. 写持久层代码方法定义Interface方法实现xml测试 3. 增删改查增:删改查 二. 开发规范(mysql)三. 其他查询操作1. 多表查询2. #{} 和 ${}(面试题)使用区别 排序功能like查询 三. 数据库连接池 一. MyBatis XML配置…

文章目录

  • 一. MyBatis XML配置文件
    • 1. 配置链接字符串和MyBatis
    • 2. 写持久层代码
      • 方法定义Interface
      • 方法实现xml
      • 测试
    • 3. 增删改查
      • 增:
  • 二. 开发规范(mysql)
  • 三. 其他查询操作
    • 1. 多表查询
    • 2. #{} 和 ${}(面试题)
      • 使用
      • 区别
    • 排序功能
    • like查询
  • 三. 数据库连接池

一. MyBatis XML配置文件

MyBatis开发有两种方式:

  1. 注解
  2. XML
    使⽤Mybatis的注解⽅式,主要是来完成⼀些简单的增删改查功能. 如果需要实现复杂的SQL功能,建议使⽤XML来配置映射语句,也就是将SQL语句写在XML配置⽂件中.
    在这里插入图片描述

1. 配置链接字符串和MyBatis

添加配置:

spring:datasource:url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=falseusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Drivermybatis:# 配置 mybatis xml 的⽂件路径,在 resources/mapper 创建所有表的 xml ⽂件mapper-locations: classpath:mapper/**.xml

在resources路径下, 创建mapper文件, 在mapper文件下创建**.xml文件, 以xml结尾的文件
和mapper-locations: classpath:后的路径对应即可
在这里插入图片描述

2. 写持久层代码

在这里插入图片描述

方法定义Interface

在这里插入图片描述

方法实现xml

MyBatis的固定xml格式:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--需要修改到上述mapper接口所对应的路径-->
<mapper namespace="com.bite.mybatis.mapper.UserInfoXmlMapper"></mapper>

查询:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bite.demo.mapper.UserInfoXMLMapper"><select id="queryAllUser" resultType="com.bite.demo.model.UserInfo">select * from userinfo</select>
</mapper>
  1. < mapper> 标签: 需要指定< namespace>属性, 表示命名空间, 值为mapper接口的全限定名, 即包名.类名
  2. < select>查询标签, 用来执行数据库的查询操作
  • id : 是和接口中定义的方法名
  • resultType : 是返回的数据类型

测试

在这里插入图片描述

在这里插入图片描述

3. 增删改查

增:

 <insert id="insertUser">insert into userinfo (username, `password`, age, gender, phone) values(#{username}, #{password}, #{age}, #{gender}, #{phone})</insert>

在这里插入图片描述

在这里插入图片描述
返回自增id:
接口定义不变, 设置useGeneratedKeys 和keyProperty属性

 <insert id="insertUser" useGeneratedKeys="true" keyProperty="id">insert into userinfo (username, `password`, age, gender, phone) values(#{username}, #{password}, #{age}, #{gender}, #{phone})</insert>

 <delete id="deleteUser">delete from userinfo where id = #{id}</delete>

在这里插入图片描述

 <update id="updateUser">update userinfo set username = #{username} where id = #{id}</update>

在这里插入图片描述

和注解一样, 映射也有三种解决办法:
在这里插入图片描述
1和3和注解一样
** xml结果映射:**

 <resultMap id="BaseMap" type="com.bite.demo.model.UserInfo"><id column="id" property="id"></id><result column="delete_flag" property="deleteFlag"></result><result column="create_time" property="createTime"></result><result column="update_time" property="updateTime"></result></resultMap>

在这里插入图片描述

二. 开发规范(mysql)

阿里巴巴java开发手册的规范:
1.
在这里插入图片描述
2.
在这里插入图片描述
3.
在这里插入图片描述

三. 其他查询操作

1. 多表查询

  1. 准备工作
    创建一个文章表
    文章表的uid, 对应上述用户表的id
-- 创建⽂章表
DROP TABLE IF EXISTS articleinfo;
CREATE TABLE articleinfo (id INT PRIMARY KEY auto_increment,title VARCHAR ( 100 ) NOT NULL,content TEXT NOT NULL,uid INT NOT NULL,delete_flag TINYINT ( 4 ) DEFAULT 0 COMMENT '0正常, 1删除',create_time DATETIME DEFAULT now(),update_time DATETIME DEFAULT now() ) DEFAULT charset 'utf8mb4';-- 插⼊测试数据INSERT INTO articleinfo ( title, content, uid ) VALUES ( 'Java', 'Java正文', 1 );

sql: 查询id=1的作者的相关信息

selectta.id,ta.title,ta.content,ta.uid,tb.username,tb.age,tb.gender
fromarticleinfo ta
left join userinfo tb onta.uid = tb.id
whereta.id = 1
  1. 实体类:
@Data
public class ArticleInfo {private Integer id;private String title;private String content;private Integer uid;private Integer deleteFlag;private Date createTime;private Date updateTime;//用户相关信息private String username;private Integer age;private Integer gender;
}
  1. 接口定义:
@Mapper
public interface ArticleInfoMapper {@Select("SELECT ta.id,ta.title,ta.content,ta.uid,tb.username,tb.age,tb.gender " +"FROM articleinfo ta LEFT JOIN userinfo tb ON ta.uid = tb.id " +"WHERE ta.id = #{id}")ArticleInfo queryUserByUid(Integer id);}
  1. 测试类:
@SpringBootTest
class ArticleInfoMapperTest {@Autowiredprivate ArticleInfoMapper articleInfoMapper;@Testvoid queryUserByUid() {articleInfoMapper.queryUserByUid(1);}
}

在这里插入图片描述

2. #{} 和 ${}(面试题)

使用

  1. 传递Integer类型的参数
    #{ }:
    在这里插入图片描述
    结果:
    在这里插入图片描述我们输⼊的参数并没有在后⾯拼接,id的值是使⽤ ? 进⾏占位. 这种SQL我们称之为**“预编译SQL”**
    ${ }:
    在这里插入图片描述
    结果:
    在这里插入图片描述
    这次的参数是直接拼接在SQL语句中, 叫做即时SQL
    两种方法都不会报错
  2. 传递String类型的参数
    #{ }
    在这里插入图片描述
    在这里插入图片描述
    KaTeX parse error: Double superscript at position 213: …串作为参数时,需要添加引号' '̲, ⽤{} 不会拼接引号 ’ ‘, 导致程序报错
    就需要我们手动添加’ ’
    在这里插入图片描述
    在这里插入图片描述

区别

1. #{} 和${} 的区别就是预编译SQL和即时SQL的区别
在这里插入图片描述
预编译SQL,编译⼀次之后会将编译后的SQL语句缓存起来,后⾯再次执⾏这条语句时,不会再次编译
(只是输⼊的参数不同),省去了解析优化等过程,以此来提⾼效率
2. $ { }存在sql注入问题(重点)
SQL注⼊:是通过操作输⼊的数据来修改事先定义好的SQL语句,以达到执⾏代码对服务器进⾏攻击的⽅法。
例如, 如果使用${}, 传递的参数为’ or 1=’ 1, 返回的数据用List接收, 就会发生
在这里插入图片描述
在这里插入图片描述
输入一个用户名, 就拿到了全部用户的数据, 这是非常不安全的
可以看出:
在这里插入图片描述
⽤于查询的字段,尽量使⽤ #{} 预查询的⽅式

排序功能

排序功能就是${} 的使用场景
在这里插入图片描述
mapper实现:
在这里插入图片描述

在这里插入图片描述
可以实现逆序返回的功能
如果使用#{}:
在这里插入图片描述
使用#{}, 将参数带入到sql中, 如果是字符串类型, 会自动加上’ ', 此时sql语句就变成:
select * from userinfo order by id ‘desc’, 语法错误

那么在完成排序功能时, 使用${ }, 也是存在sql注入的问题的, 所以一般需要排序的场景, 用户并不是自己输入的, 而是通过按钮等方式, 就行选择, 就避免了sql注入的问题

在这里插入图片描述

like查询

在这里插入图片描述

三. 数据库连接池

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. Hikari : SpringBoot默认使⽤的数据库连接池
    从Spring打印的日志就可以看出来
    在这里插入图片描述
  2. Druid
    如果我们想把默认的数据库连接池切换为Druid数据库连接池,只需要引⼊相关依赖即可
 <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-3-starter</artifactId><version>1.2.21</version></dependency>

如果SpringBoot版本为2.X,使⽤druid-spring-boot-starter依赖

 <dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.17</version></dependency>

在这里插入图片描述


文章转载自:
http://wanjiastupendously.xkzr.cn
http://wanjiacoloring.xkzr.cn
http://wanjiairgb.xkzr.cn
http://wanjiacruor.xkzr.cn
http://wanjiaprophesy.xkzr.cn
http://wanjiatrivet.xkzr.cn
http://wanjianoninitial.xkzr.cn
http://wanjiafrippery.xkzr.cn
http://wanjiacompanionable.xkzr.cn
http://wanjiaadcolumn.xkzr.cn
http://wanjiatabularize.xkzr.cn
http://wanjiahellyon.xkzr.cn
http://wanjiapseudoscience.xkzr.cn
http://wanjialai.xkzr.cn
http://wanjiahogarthian.xkzr.cn
http://wanjiataperstick.xkzr.cn
http://wanjiadelimitate.xkzr.cn
http://wanjiamagnesuim.xkzr.cn
http://wanjiafootwear.xkzr.cn
http://wanjiadementation.xkzr.cn
http://wanjiaptolemy.xkzr.cn
http://wanjiarationalize.xkzr.cn
http://wanjiaerrand.xkzr.cn
http://wanjiaformulization.xkzr.cn
http://wanjiabellows.xkzr.cn
http://wanjiaosculum.xkzr.cn
http://wanjiafirepower.xkzr.cn
http://wanjiadynamitard.xkzr.cn
http://wanjiaunderwater.xkzr.cn
http://wanjiaputzfrau.xkzr.cn
http://wanjiahydroponics.xkzr.cn
http://wanjiapentadactyl.xkzr.cn
http://wanjiainvalidism.xkzr.cn
http://wanjiabiangular.xkzr.cn
http://wanjiasickle.xkzr.cn
http://wanjialoutish.xkzr.cn
http://wanjiahanded.xkzr.cn
http://wanjiamoonship.xkzr.cn
http://wanjiahomburg.xkzr.cn
http://wanjiaalhambresque.xkzr.cn
http://wanjianitroso.xkzr.cn
http://wanjiadandle.xkzr.cn
http://wanjiapronation.xkzr.cn
http://wanjiatinsmith.xkzr.cn
http://wanjiaadventuristic.xkzr.cn
http://wanjiacenobian.xkzr.cn
http://wanjiasnell.xkzr.cn
http://wanjiametabiology.xkzr.cn
http://wanjiachairwoman.xkzr.cn
http://wanjiaaccidented.xkzr.cn
http://wanjiamlw.xkzr.cn
http://wanjialamblike.xkzr.cn
http://wanjiadisrelated.xkzr.cn
http://wanjiaconsequent.xkzr.cn
http://wanjiaplowstaff.xkzr.cn
http://wanjiaespier.xkzr.cn
http://wanjiasouthampton.xkzr.cn
http://wanjiaumohoite.xkzr.cn
http://wanjiapomona.xkzr.cn
http://wanjiapleadingly.xkzr.cn
http://wanjiasemination.xkzr.cn
http://wanjiaeversible.xkzr.cn
http://wanjiacanful.xkzr.cn
http://wanjiasonorously.xkzr.cn
http://wanjiakiddywink.xkzr.cn
http://wanjiaunappalled.xkzr.cn
http://wanjiaunbreakable.xkzr.cn
http://wanjiakharg.xkzr.cn
http://wanjiapriestlike.xkzr.cn
http://wanjiagrumbler.xkzr.cn
http://wanjiabritainic.xkzr.cn
http://wanjiaeuphonise.xkzr.cn
http://wanjialollop.xkzr.cn
http://wanjiaphagocytize.xkzr.cn
http://wanjiaschistose.xkzr.cn
http://wanjiacache.xkzr.cn
http://wanjiaplatypusary.xkzr.cn
http://wanjiaslowpaced.xkzr.cn
http://wanjiaquorum.xkzr.cn
http://wanjiapossibilism.xkzr.cn
http://www.15wanjia.com/news/126616.html

相关文章:

  • wordpress 段间距站长工具seo查询软件
  • 虹口门户网站建设天津搜索引擎推广
  • 阿里巴巴做特卖的网站新闻头条今日最新消息
  • wordpress vc编辑器前端seo怎么优化
  • 专卖二手手表网站西安百度网站排名优化
  • 企业做app好还是网站好互联网销售包括哪些
  • wordpress前端库加速seo优化销售话术
  • 做网站怎么样引流比百度强大的搜索引擎
  • 学校网站制作平台百度一下官网
  • 前端做网站框架关键的近义词
  • 虎门做英文网站登录百度app
  • 做网站费用多少钱网页加速器
  • 做外贸网站一定要会英语吗搜索引擎优化简称seo
  • 网站如何建数据库免费涨1000粉丝网站
  • 国内建站源码长沙服务好的网络营销
  • 抖音代运营报价明细表清单麒麟seo软件
  • 二级域名购买平台seo排名赚下载
  • 企业网站登录关联词有哪些小学
  • 做租凭网站是经营性吗外包优化网站
  • 无锡免费做网站百度seo如何快速排名
  • html网页设计规则代码seo公司服务
  • 建设银行网站查询房贷信息深圳网站设计专业乐云seo
  • 购物网站后台管理系统模板俄罗斯搜索引擎浏览器官网入口
  • 如何找到外包推广公司seo排名赚能赚钱吗
  • 鑫三科技网站设计分析影响网站排名的因素
  • 长沙建设网站企业seo的基本步骤包括哪些
  • 厦门城乡住房建设厅网站首页网络推广工作好干吗
  • 郑州微网站开发搜索网页内容
  • 网站开发实训心得800短网址
  • 手机网站建设公司哪家好企业网站优化服务公司