特殊SQL的执行
本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!
SQLMapper
/**
* @description:根据用户名模糊查询用户信息
* @author: Hey
* @date: 2022/7/3 21:45
* @param: [username]
* @return: java.util.List<com.ir.mybatis.pojo.User>
**/
List<User> getUserByLike(@Param("username") String username);
SelectMapper.xml
<select id="getUserByLike" resultType="user">
<!--方式一:select * from t_user where username like '%${username}%'-->
<!--方式二:select * from t_user where username like concat('%',#{username},'%')-->
<!--方式三:-->
select * from t_user where username like "%"#{username}"%"
</select>
SQLMapperTest
/**
* @description:根据用户名模糊查询用户信息
* @author: Hey
* @date: 2022/7/3 21:48
* @param: []
* @return: void
**/
@Test
public void testGetUserByLike(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
List<User> list = mapper.getUserByLike("a");
System.out.println(list);
}
注意:使用
#{}的方式,要使用上面的方式二与方式三,否则会报错,因为此时占位符?在双引号""中,所以无法识别占位符?
SQLMapper
/**
* @description:批量删除
* @author: Hey
* @date: 2022/7/3 21:58
* @param: [ids]
* @return: int
**/
int deleteMore(@Param("ids") String ids);
SelectMapper.xml
<delete id="deleteMore">
delete from t_user where id in (${ids})
</delete>
SQLMapperTest
/**
* @description:批量删除
* @author: Hey
* @date: 2022/7/3 21:59
* @param: []
* @return: void
**/
@Test
public void testDeleteMore(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
int result = mapper.deleteMore("1,2,3");
System.out.println(result);
}
注意:不可以使用#{}的方式,因为
DELETE FROM t_user WHERE id IN("1,2,3")此sql语句会报错,正确的语句应该是DELETE FROM t_user WHERE id IN(1,2,3)。
SQLMapper
/**
* @description:查询指定表中的数据
* @author: Hey
* @date: 2022/7/3 22:08
* @param: [tableName]
* @return: java.util.List<com.ir.mybatis.pojo.User>
**/
List<User> getUserByTableName(@Param("tableName") String tableName);
SelectMapper.xml
<select id="getUserByTableName" resultType="User">
select * from ${tableName}
</select>
SQLMapperTest
/**
* @description:查询指定表中的数据
* @author: Hey
* @date: 2022/7/3 22:09
* @param: []
* @return: void
**/
@Test
public void testGetUserByTableName(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
List<User> list = mapper.getUserByTableName("t_user");
System.out.println(list);
}
注意:不能使用
#{}的方式,因为表名是不可以加上单引号的
场景:
表1: t_clazz(clazz_id,clazz_name)
表2:t_student(student_id,student_name,clazz_id)
- 添加班级信息
- 获取新添加的班级的id
- 为班级分配学生,即将某学的班级id修改为新添加的班级的id
SQLMapper
void insertUser(User user);
SelectMapper.xml
<!--
void insertUser(User user);
useGeneratedKeys:设置当前标签中的sql使用了自增的主键
keyProperty:将自增的主键的值赋值给传输到映射文件中参数的某个属性
-->
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})
</insert>
SQLMapperTest
/**
* @description:添加用户
* @author: Hey
* @date: 2022/7/3 22:55
* @param: []
* @return: void
**/
@Test
public void testInsertUser(){
SqlSession sqlSession = SqlSessionUtils.getSqlSession();
SQLMapper mapper = sqlSession.getMapper(SQLMapper.class);
User user = new User(null, "王五", "123", 23, "男", "123@163.com");
mapper.insertUser(user);
System.out.println(user);//User{id=8, username='王五', password='123', age=23, sex='男', email='123@163.com'}
}
/**
添加的用户信息是:new User(null, "王五", "123", 23, "男", "123@163.com")
输出用户的信息是:User{id=8, username='王五', password='123', age=23, sex='男', email='123@163.com'}
id由 null--> 8,这是因为SelectMapper.xml中的设置
*/
我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass
我遵循了教程http://gettingstartedwithchef.com/,第1章。我的运行list是"run_list":["recipe[apt]","recipe[phpap]"]我的phpapRecipe默认Recipeinclude_recipe"apache2"include_recipe"build-essential"include_recipe"openssl"include_recipe"mysql::client"include_recipe"mysql::server"include_recipe"php"include_recipe"php::modul
我在用Ruby执行简单任务时遇到了一件奇怪的事情。我只想用每个方法迭代字母表,但迭代在执行中先进行:alfawit=("a".."z")puts"That'sanalphabet:\n\n#{alfawit.each{|litera|putslitera}}"这段代码的结果是:(缩写)abc⋮xyzThat'sanalphabet:a..z知道为什么它会这样工作或者我做错了什么吗?提前致谢。 最佳答案 因为您的each调用被插入到在固定字符串之前执行的字符串文字中。此外,each返回一个Enumerable,实际上您甚至打印它。试试
如何检查Ruby文件是否是通过“require”或“load”导入的,而不是简单地从命令行执行的?例如:foo.rb的内容:puts"Hello"bar.rb的内容require'foo'输出:$./foo.rbHello$./bar.rbHello基本上,我想调用bar.rb以不执行puts调用。 最佳答案 将foo.rb改为:if__FILE__==$0puts"Hello"end检查__FILE__-当前ruby文件的名称-与$0-正在运行的脚本的名称。 关于ruby-检查是否
我正在尝试找到一种方法来规范化字符串以将其作为文件名传递。到目前为止我有这个:my_string.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n,'').downcase.gsub(/[^a-z]/,'_')但第一个问题:-字符。我猜这个方法还有更多问题。我不控制名称,名称字符串可以有重音符、空格和特殊字符。我想删除所有这些,用相应的字母('é'=>'e')替换重音符号,并将其余的替换为'_'字符。名字是这样的:“Prélèvements-常规”“健康证”...我希望它们像一个没有空格/特殊字符的文件名:“prelevements_routin
//1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类
我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption