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

平面设计案例网站推荐推广哪些app最挣钱

平面设计案例网站推荐,推广哪些app最挣钱,专注营销型网站建设公司 做网站,给wordpress程序提速写mybatis代码的方法有两种: 注解xml方式 本篇就介绍注解的方式 mybatis的操作主要有增删改查,下面进行一一讲解。 目录 一、参数传递 二、增(Insert) 三、删(Delete) 四、改(Update&#…

写mybatis代码的方法有两种:

  1. 注解
  2. xml方式

本篇就介绍注解的方式

mybatis的操作主要有增删改查,下面进行一一讲解。

目录

 一、参数传递

二、增(Insert)

三、删(Delete)

四、改(Update)

五、查(Select)

1.起别名

2.结果映射

3.开启驼峰命名(推荐)


 一、参数传递

   需求:查找id=4的用户,对应的sql就是: select * from user_info where id=4

@Select("select username, `password`, age, gender, phone from user_info where 
id= 4 ")
UserInfo queryById();

结果集返回一条记录该记录与与UserInfo构成映射返回UserInfo类型的一个对象。

只能查找id=4的数据,这样代码写死了,需要变为动态的数值。

这时可以通过在queryById方法中添加一个参数{id},将方法中的参数,传给sql语句,使用#{}的方式获取方法中的参数。

@Select("select username, `password`, age, gender, phone from user_info where 
id= #{id} ")
UserInfo queryById(Integer id);

注意:如果mapper接口方法形参只有一个普通类型的参数,#{...}里面的属性名可以随便写,如:#{id}、#{value},形参会与#{}里面的参数进行绑定,但是建议和参数名一致。

添加测试用例:

@Test
void queryById() {UserInfo userInfo = userInfoMapper.queryById(4);System.out.println(userInfo);
}

运行测试用例:

当然也可以通过@Param 设置参数别名,如果使用@Param设置别名 ,#{}里面参数的名字要和@Param设置的参数名一致。

@Select("select username, `password`, age, gender, phone from user_info where 
id= #{userid} ")
UserInfo queryById(@Param("userid") Integer id);

二、增(Insert)

SQL语句:

insert into user_info (username, `password`, age, gender, phone) values
("zhaoliu","zhaoliu",19,1,"18700001234");
  • 把sql中的常量替换成动态的参数

Mapper接口:

@Insert("insert into user_info (username, `password`, age, gender, phone) 
values (#{username},#{password},#{age},#{gender},#{phone})")
Integer insert(UserInfo userInfo);
  • 这里可以用UserInfo对象来获取参数

测试代码:

@Test
void insert() {UserInfo userInfo = new UserInfo();userInfo.setUsername("zhaoliu");userInfo.setPassword("zhaoliu");userInfo.setGender(2);userInfo.setAge(21);userInfo.setPhone("18612340005");userInfoMapper.insert(userInfo);
}

运行之后,观察数据库执行结果

  •  如果设置了@Param 属性 ,#{}需要使用 参数.属性 来获取。
 @Insert("insert into user_info (username,password,age,gender,phone)"+
"values (#{UI.username},#{UI.password},#{UI.age},#{UI.gender},#{UI.phone})")Integer insert(@Param("UI") UserInfo userInfo);

运行后观察结果:

  •  返回主键

Insert语句默认返回的是 受影响的行数。

但有些情况下,数据插入之后,还需要有后续的关联操作,需要获取到新插入数据的id。

比如订单系统。

当我们下完订单之后,需要通知物流系统,库存系统,结算系统,这时候就需要拿到订单的id。

如果想要拿到自增id,需要在Mapper接口的方法上添加一个Options的注解,。

 //获取自动生成的id,并设置返回的id@Options(useGeneratedKeys = true,keyProperty = "id")@Insert("insert into user_info (username,password,age,gender,phone)"+"values (#{UI.username},#{UI.password},#{UI.age},#{UI.gender},#{UI.phone})")Integer insert(@Param("UI") UserInfo userInfo);

useGeneratedKeys:这会令Mybatis使用JDBC的getGenerateKeys方法来取出由数据库内部生成的主键(自增主键),默认值:false

keyProperty:指定能够唯一识别的对象的属性,Mybatis会使用getGenerateKeys的返回值或insert语句的selectKey 子元素设置 keyProperty的值,默认值:未设置。

 

测试代码:

 @Testvoid insert() {UserInfo userInfo = new UserInfo();userInfo.setUsername("zhao77");userInfo.setPassword("zhao");userInfo.setGender(1);userInfo.setAge(100);userInfo.setPhone("18612344705");Integer result = userInfoMapper.insert(userInfo);log.info("测试结果"+result+"自增ID"+userInfo.getId());}

运行结果:

注意:如果没有Options注解,即使测试方法创建完对象之后,使用getId方法也是不能够获取到自增id的。


三、删(Delete)

sql语句:

delete from user_info where id=6
  • 把sql中的常量替换为动态的参数。

Mapper接口

@Delete("delete from user_info where id = #{id}")
void delete(Integer id);

四、改(Update)

sql语句:

update user_info set username="zhaoliu" where id=5
  • 把sql中的常量替换为动态的参数

Mapper接口

@Update("update user_info set username=#{username} where id=#{id}")
void update(UserInfo userInfo);

五、查(Select)

上面的参数传递中讲述了查询的例子,但是如果实体类的属性名和数据库字段名不一致时,可以采取下面的措施:

1.起别名

2.结果映射

3.利用驼峰命名,配置驼峰命名配置

1.起别名

在sql语句中,给列名起别名,保持别名和 实体类属性名一样。

@Select("select id, username, `password`, age, gender, phone, delete_flag as 
deleteFlag, " +"create_time as createTime, update_time as updateTime from user_info")
public List<UserInfo> queryAllUser();

sql语句太长时,可以使用加号 +进行字符串拼接。

2.结果映射

使用@Result注解‘

  //这里的映射要与对象的属性一致,不然会报错,找不到@Results(id = "BaseMap",value = {@Result(column = "delete_flag",property = "deleteFlag"),@Result(column = "create_time",property = "createTime"),@Result(column = "update_time",property = "updateTime")})@Select("select * from user_info")List<UserInfo> selectAll2();

如果有其他sql复用这种映射关系,我们可以给Result定义一个id,然后再搭配@ResultMap注解使用。

@Results(id = "BaseMap",value = {@Result(column = "delete_flag",property = "deleteFlag"),@Result(column = "create_time",property = "createTime"),@Result(column = "update_time",property = "updateTime")})@Select("select * from user_info")List<UserInfo> selectAll2();//复用映射关系@ResultMap(value = "BaseMap")@Select("select *from user_info where id=4")UserInfo selectById();

3.开启驼峰命名(推荐)

这种方式要满足下面的条件:

  • 配置驼峰命名规则

.properties

#配置驼峰转换
mybatis.configuration.map-underscore-to-camel-case=true

.yml 

mybatis:configuration:map-underscore-to-camel-case: true  #配置驼峰自动转换
  • 类中属性名为驼峰格式(createTime);表中字段名为蛇形格式(create_time)

其中Java代码中不做任何处理:

@Select("select id, username, `password`, age, gender, phone, delete_flag, " +"create_time, update_time from user_info")
public List<UserInfo> queryAllUser();

http://www.dtcms.com/wzjs/306165.html

相关文章:

  • 现在哪个网站做网站好网页代码
  • 做网站设计的总结郑州网站策划
  • 莱芜四中网站一个新手如何推销产品
  • 河北众成建设有限公司网站武汉大学人民医院地址
  • 医院图书馆网站建设的意义app开发费用一般多少钱
  • 做家务的男人们在哪个网站播出厦门网站制作
  • 泊头 网站优化网络营销的5种方式
  • 网页设计与制作教程第四版课后答案提升seo排名平台
  • 一级a做爰网站中国app推广方式有哪些
  • 西安网站建设哪家强链接搜索引擎
  • 网站开发项目比赛百度seo快速排名优化服务
  • 房产网站建设公司宁波网站推广网站优化
  • 做网站安卓客户端网络策划是做什么的
  • 有什网站可以做设计赚钱免费推广网址
  • 安阳网站建设开发如何做网页设计
  • 力洋网站建设公司化工seo顾问
  • 贵州省建设局八大员报名网站收录平台
  • div css 网站后台百度云客服人工电话
  • 抖音电商网站建设注册域名后怎么建网站
  • 做网站编辑是不是也要做推广国外推广网站
  • 网站可以做伦理片吗商业软文怎么写
  • 管理系统有哪些定西seo排名
  • app页面模板百度搜索名字排名优化
  • 中国营销型网站网站流量
  • 用css代码做新闻网站seo百度贴吧
  • 广告设计专业属于什么大类网站制作优化
  • 怎么写代码自己制作网站百度地图优化
  • 开公司网站创建费用东莞网站建设制作
  • 泊头做网站的有哪些如何快速推广自己的产品
  • 美女做游戏广告视频网站有哪些做外贸网站哪家公司好