My Batis

1.创建项目时,需要添加两个依赖
(1)MyBatis Framework
(2)MySQL Driver

2.在application.properties里面设置数据库的相关连接信息

3.设置mybatis相关信息

先再resource里面创建一个文件夹:mybatis
mybatis.mapper-locations=classpath:mybatis/*Mapper.xml 这里的mybatis是在resource里面创建的一个文件夹的名字,要对应
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
logging.level.com.example.demo=debug

4.配置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 namespace=""></mapper>

使用MyBatis实现增、删、改、查功能

①查询userinfo表中的所有用户信息

在接口中定义方法

在xml中实现接口,查询使用<select>标签

id:是接口中定义的方法的名称

resultType是这个方法的返回类型,这个类型为userinfo,将这个类型的路径方法resultType中

②根据Id进行查询

(1)使用#{}获取数据

此时id的类型在数据库中定义为int,传递时必需使用包装类定义

在xml中实现取数据时,此时的id和Param里面的要对应,并且Param里面的要和数据库对应

(2)使用${}获取数据

#{}和${}的区别:

Ⅰ:${}在控制台打印的sql语句,直接将数据进行替换,读取时及时执行

#{}在控制台打印的sql语句,预执行,将代码中要输入的参数变成" ?"占位符

Ⅱ:${}不安全,存在sql注入;#{}是安全的,不存在sql注入

结论:#{}虽然是安全的,但是不能完全替代${}

${} 的使用场景:当业务需要进行传递SQL命令时,只能使用${},不能是哦也能够#{},但是使用了${},那么传递的参数一定要被穷举,否则不能被使用

③根据Id进行删除,删除返回的类型是受影响的行数,所以方法的返回结果用int接受

删除可以不用设置resultType

在测试delUserById这个方法时,如果想要测试业务但是并不想影响数据库的内容,可以在测试方法上加上注释@Transactional

④根据用户id进行修改,返回的结果也是受影响的行数

传递的是一个userinfo对象,在xml中取其中的参数也是用#{}进行读取

⑤插入一个新的用户,返回的结果是一个受影响的行数

⑥like查询

在使用like查询的时候,在xml文件中不能够使用#{}来读取数据

like的SQL语句:select * from userinfo where username like '% 三 %';

因为#{}是预执行,它会认为"% 三 %"是一个值,所以执行报错。使用${}读取时,是可以完成相应的要求的,但是${}会存在SQL注入,并且使用${}的前提是可以被穷举的,所以此时两个方法都不合适

采用数据库内置的函数:concat()来实现。

基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值