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

网站建设总结和体会seo是什么字

网站建设总结和体会,seo是什么字,西安seo外包服务,目前网站开发怎么兼顾手机Mybatis(二):实现“增删改查”前言一、MyBatis的增删改查1、添加2、修改3、删除4、查询4.1 查询一个实体4.1 查询集合二、MyBatis获取参数值的两种方式(重点)1、单个字面量类型的参数2、多个字面量类型的参数3、map集合…

Mybatis(二):实现“增删改查”

  • 前言
  • 一、MyBatis的增删改查
    • 1、添加
    • 2、修改
    • 3、删除
    • 4、查询
      • 4.1 查询一个实体
      • 4.1 查询集合
  • 二、MyBatis获取参数值的两种方式(重点)
    • 1、单个字面量类型的参数
    • 2、多个字面量类型的参数
    • 3、map集合类型的参数
    • 4、实体类类型的参数
    • 5、使用@Param标识参数
    • 6、结论
  • 三、MyBatis的各种查询功能
    • 1、查询一个实体类对象
    • 2、查询一个list集合
    • 3、查询单个数据
    • 4、查询一条数据为map集合
    • 5、查询多条数据为map集合
    • 6、结论



前言

本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!

一、MyBatis的增删改查

1、添加

UserMapper接口:

     /***添加用户信息*/int insertUser();

UserMapper.xml

<!--int insertUser();--><insert id="insertUser">insert into t_user values(null,'张三','123',23,'女')</insert>

2、修改

UserMapper接口:

     /*** 修改用户信息*/void updateUser();

UserMapper.xml

        <!-- void updateUser();--><update id = "updateUser">update t_user set username = '张三' where id = 4</update>

3、删除

UserMapper接口:

    /*** 删除用户信息*/void deleteUser();

UserMapper.xml

        <!-- void deleteUser();--><delete id="deleteUser">delete from t_user where id = 5</delete>

4、查询

4.1 查询一个实体

UserMapper接口:

    /*** 查询用户信息*/User getUserId();
UserMapper.xml
      <!--User getUserById();--><!--查询功能的标签必须设置resultType或resultMapresultType:设置默认的映射关系resultMap:设置自定义的映射关系--><select id="getUserById" resultType="com.ir.mybaits.pojo.User">select * from t_user where id = 3</select>

4.1 查询集合

UserMapper接口:

    /*** 查询用户信息*/List<User> getAllUser();

UserMapper.xml

      <!--List<User> getAllUser();--><select id="getAllUser" resultType="User">select * from t_user</select>

注意:

⭕ 查询的标签select必须设置属性resultTyperesultMap,用于设置实体类和数据库表的映射关系
resultType:自动映射,用于属性名和表中字段名一致的情况
resultMap:自定义映射,用于一对多或多对一或字段名和属性名不一致的情况

⭕当查询的数据为多条时,不能使用实体类作为返回值,只能使用集合,否则会抛出异常TooManyResultsException,但是若查询的数据只有一条,可以使用实体类或集合作为返回值

二、MyBatis获取参数值的两种方式(重点)

MyBatis获取参数值的两种方式:${}#{}

${}的本质就是字符串拼接,使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;

#{}的本质就是占位符赋值,但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号

1、单个字面量类型的参数

⭕ 若mapper接口中的方法参数为单个的字面量类型,此时可以使用${}#{}以任意的名称获取参数的值,但是需要注意${}的单引号问题

⭕ 代码演示:

UserMapper

/*** @description:查询用户信息* @author: Hey* @date: 2022/7/3 16:53* @param: [username]* @return: com.ir.mybatis.pojo.User**/User getUserByUsername(String username);

UserMapper.xml

 <!--User getUserByUsername(String username);--><select id="getUserByUsername" resultType="user"><!--此时只注重传递过来的值,{username}中的usernsme可以替换为任意字母,结果都不会改变--><!--select * from t_user where username = '${username}';-->select * from t_user where username = #{username};</select>

UserMapperTest

   /*** @description:* @author: Hey* @date: 2022/7/3 15:29* @param: []* @return: void**/@Testpublic void getUserByUsername(){UserMapper userMapper = SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);System.out.println(userMapper.getUserByUsername("张三"));}

2、多个字面量类型的参数

mapper接口方法的参数为多个时,此时MyBatis会将这些参数放在一个map集合中,以两种方式进行存储

  1. arg0,arg1…为键,以参数为值
  2. param1,param2…为键,以参数为值

因此只需要通过${}#{}访问map集合的键就可以获取相对应的 值,但是需要注意${}的单引号问题。

⭕ 代码演示:

UserMapper

    /*** @description:检查用户登录信息* @author: Hey* @date: 2022/7/3 15:46* @param: [username, password]* @return: com.ir.mybatis.pojo.User**/User checkLoginByParameter(String username,String password);

UserMapper.xml

  <!--User checkLoginByParameter(String username,String password);--><select id="checkLoginByParameter" resultType="user">select * from t_user where username=#{arg0} and password=#{arg1};</select>

UserMapperTest

 /*** @description:* @author: Hey* @date: 2022/7/3 15:30* @param: []* @return: void**/@Testpublic void checkLoginByParam(){UserMapper userMapper = SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);User user = userMapper.checkLoginByParameter("张三","123");System.out.println(user);}

3、map集合类型的参数

⭕ 若mapper接口中的方法需要的参数为多个时,此时可以手动创建map集合,将这些数据放在map中,只需要通过${}#{}访问map集合的键就可以获取相对应的值,但是需要注意${}的单引号问题

⭕ 代码演示:

UserMapper

    /*** @description:通过自定义Map来验证登录* @author: Hey* @date: 2022/7/3 15:45* @param:* @return:**/User checkLoginByMap(Map<String, Object> map);

UserMapper.xml

 <!--User checkLoginByMap(Map<String, Object> map);--><select id="checkLoginByMap" resultType="user">select * from t_user where username=#{username} and password=#{password};</select>

UserMapperTest

     /*** @description:测试通过自定义Map验证登录* @author: Hey* @date: 2022/7/3 15:55* @param: []* @return: void**/@Testpublic void checkLoginByMap(){UserMapper userMapper = SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);Map<String,Object> map = new HashMap<>();map.put("username","张三");map.put("password","123");User user = userMapper.checkLoginByMap(map);System.out.println(user);}

4、实体类类型的参数

⭕ 若mapper接口中的方法参数为实体类对象时,此时可以使用${}#{},通过访问实体类对象中的属性名获取属性值,但是需要注意${}的单引号问题

⭕ 代码演示:

UserMapper

 /*** @description:添加用户* @author: Hey * @date: 2022/7/3 16:11* @param: [user]* @return: int**/Integer insertUser(User user);

UserMapper.xml

<!--int insertUser(User user);--><select id="insertUser" >insert into t_user values(null,#{username},#{password},#{age},#{sex},#{email})</select>

UserMapperTest

     /*** @description:添加用户  * @author: Hey* @date: 2022/7/3 16:24* @param: []* @return: void**/@Testpublic void insertUser(){UserMapper userMapper = SqlSessionUtils.getSqlSession().getMapper(UserMapper.class);Integer result = userMapper.insertUser(new User(null,"喜羊羊","123456",18,"男","123123@qq.com"));System.out.println(result);}

5、使用@Param标识参数

⭕ 可以通过@Param注解标识mapper接口中的方法参数,此时,会将这些参数放在map集合中,以如下两种方式来取值访问:

  1. @Param注解的value属性值为键,以参数为值;
  2. param1,param2…为键,以参数为值;

只需要通过${}#{}访问map集合的键就可以获取相对应的值,但是需要注意${}的单引号问题

⭕ 代码演示:

UserMapper

 /*** @description:通过参数注解验证登录* @author: Hey * @date: 2022/7/3 16:59* @param: [username, password]* @return: com.ir.mybatis.pojo.User**/User checkLoginByParam(@Param("username") String username, @Param("password") String password);

UserMapper.xml

    <!--User checkLoginByParam(@Param("username") String username, @Param("password") String password);--><select id="checkLoginByParam" resultType="User">select * from t_user where username = #{username} and password = #{password}</select>

UserMapperTest

 /*** @description:通过注解方式验证登录* @author: Hey* @date: 2022/7/3 16:57* @param: []* @return: void**/@Testpublic void testCheckLoginByParam(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();UserMapper mapper = sqlSession.getMapper(UserMapper.class);User user = mapper.checkLoginByParam("admin", "123456");System.out.println(user);}

6、结论

将以上五种情况分为两类情况
⭕ 情况一:参数为实体类型
⭕ 情况二:参数都用@Param来修饰

三、MyBatis的各种查询功能

1、查询一个实体类对象

SelectMapper

    /*** @description:通过id查询用户* @author: Hey* @date: 2022/7/3 17:54* @param: [id]* @return: com.ir.mybatis.pojo.User**/User getUserById(@Param("id") Integer id);

SelectMapper.xml

<select id="getUserById" resultType="user">select * from t_user where id= #{id};</select>

SelectMapperTest

/*** @description:通过id查询用户* @author: Hey* @date: 2022/7/3 17:58* @param: []* @return: void**/@Testpublic void getUserById(){SelectMapper selectMapper = SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);User user = selectMapper.getUserById(3);System.out.println(user);}

2、查询一个list集合

SelectMapper

/*** @description:获取多个用户* @author: Hey* @date: 2022/7/3 17:56* @param: []* @return: java.util.List<com.ir.mybatis.pojo.User>**/List<User> getAllUser();

SelectMapper.xml

<select id="getAllUser" resultType="user">select * from t_user;</select>

SelectMapperTest

/*** @description:查询所有用户* @author: Hey* @date: 2022/7/3 18:00* @param: []* @return: void**/@Testpublic void getAllUser(){SelectMapper selectMapper = SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);List<User> list =  selectMapper.getAllUser();for (User user:list) {System.out.println(user);}}

3、查询单个数据

MyBatis中,对于Java中常用的类型都设置了类型别名

AliasMapped Type
_bytebyte
_char (since 3.5.10)char
_character (since 3.5.10)char
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
char (since 3.5.10)Character
character (since 3.5.10)Character
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
bigintegerBigInteger
objectObject
date[]Date[]
decimal[]BigDecimal[]
bigdecimal[]BigDecimal[]
biginteger[]BigInteger[]
object[]Object[]
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

SelectMapper

    /*** @description:查询用户信息的总记录数* @author: Hey* @date: 2022/7/3 20:40* @param: []* @return: java.lang.Integer**/Integer getCount();

SelectMapper.xml

 <select id="getCount" resultType="int">select count(1) from t_user;</select>

SelectMapperTest

/*** @description:查询用户信息的总记录数* @author: Hey * @date: 2022/7/3 20:45* @param: []* @return: void**/@Testpublic void getCount(){SelectMapper selectMapper = SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);int result = selectMapper.getCount();System.out.println(result);}

4、查询一条数据为map集合

SelectMapper

/*** @description:根据id查询用户信息为一个map集合* @author: Hey* @date: 2022/7/3 20:59* @param: [id]* @return: java.util.Map<java.lang.String,java.lang.Object>**/Map<String,Object> getUserByIdToMap(@Param"id"Integer id);

SelectMapper.xml

<select id="getUserByIdToMap" resultType="map">select * from t_user where id=#{id}
</select>

SelectMapperTest

/*** @description:根据id查询用户信息为一个map集合* @author: Hey* @date: 2022/7/3 21:03* @param: []* @return: void**/@Testpublic void getUserByIdToMap(){SelectMapper selectMapper = SqlSessionUtils.getSqlSession().getMapper(SelectMapper.class);System.out.println(selectMapper.getUserByIdToMap(5));//{password=123456, sex=男, id=5, age=18, email=123123@qq.com, username=喜羊羊}}

5、查询多条数据为map集合

方式一:
SelectMapper

/*** @description:查询所有用户信息为Map集合* * 将表中的数据以map集合的方式查询,一条数据对应一个map;* 若有多条数据,就会产生多个map集合,此时可以将这些map放在一个list集合中获取* * @author: Hey* @date: 2022/7/3 21:15* @param: []* @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>**/List<Map<String, Object>> getAllUserToMap();    

SelectMapper.xml

 <select id="getAllUserToMap" resultType="map">select * from t_user</select>

SelectMapperTest

/*** @description:查询所有用户信息为Map集合* @author: Hey* @date: 2022/7/3 21:17* @param: []* @return: void**/
@Testpublic void testGetAllUserToMap(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);System.out.println(mapper.getAllUserToMap());/*** [{password=123, sex=女, id=1, age=23, email=12345@qq.com, username=张三},* {password=123456, sex=男, id=2, age=18, email=123123@qq.com, username=喜羊羊}]*/}

方式二:
SelectMapper

/*** @description:查询所有用户信息为Map集合* * 将表中的数据以map集合的方式查询,一条数据对应一个map;* 若有多条数据,就会产生个map集合,并且最终要以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的map集合* * @author: Hey* @date: 2022/7/3 21:15* @param: []* @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>**/@MapKey("id")Map<String, Object> getAllUserToMap();    

SelectMapper.xml

 <select id="getAllUserToMap" resultType="map">select * from t_user</select>

SelectMapperTest

 /*** @description:查询所有用户信息为Map集合* @author: Hey* @date: 2022/7/3 21:17* @param: []* @return: void**/@Testpublic void testGetAllUserToMap(){SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);System.out.println(mapper.getAllUserToMap());/*** {* 1={password=123, sex=女, id=1, age=23, email=12345@qq.com, username=张三}, * 2={password=123456, sex=男, id=2, age=18, email=123123@qq.com, username=喜羊羊}* }*/}

6、结论

MyBatis的各种查询功能:

⭕ 若查询出的数据只有一条
● 可以通过实体类对象接收
● 可以通过list集合接收
● 可以通过map集合接收
结果:
{password=123456, sex=男, id=3, age=23, email=12345@qq.com, username=admin}

⭕ 若查询出的数据有多条
● 可以通过实体类类型的list集合接收
● 可以通过map类型的list集合接收
●可以在mapper接口的方法上添加@MapKey注解,此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中

⭕ 注意:一定不能通过实体类对象接收,此时会抛异常TooManyResultsException

http://www.dinnco.com/news/31997.html

相关文章:

  • 怎么自己做网站游戏网络营销策划ppt范例
  • 赣州做网站什么价格福州百度seo排名
  • 珠海网站建设专线百度打广告多少钱一个月
  • 哪些网站做推广百度推广代理商加盟
  • 电子商务网站建设与管理的论文网络搭建教程
  • 景安网络网站建设网络推广外包代理
  • 刮奖网站网络营销策划方案框架
  • 高端品牌羽绒服四川seo快速排名
  • 福田时代汽车官方网站seo服务公司怎么收费
  • 苏州企业门户网站seo实战密码在线阅读
  • 专业的网页设计和网站建设公司合肥百度推广排名优化
  • 蛋糕网站设计网站推广服务外包
  • 做教学的视频网站有哪些问题宁波seo优化流程
  • 如何申请免费网站空间深圳百度关键
  • 网站开发托管协议网站收录查询网
  • 昆明网站seo报价东莞网站制作十年乐云seo
  • 心理咨询网站开发网站目录提交
  • 网站seo多少钱福州seo服务
  • 福建微网站建设公司七台河网站seo
  • 项目宣传推广方案seo推广软
  • 做网站找客源指数函数图像
  • 竞价推广岗位职责seo模拟点击算法
  • 常熟网站优化宁国网络推广
  • 做网站互联网公司排名网络推广和运营的区别
  • 沈总网站建设十大收益最好的自媒体平台
  • 网站建设业务好做吗全国疫情高中低风险区一览表
  • 英语网站开发win10优化大师好用吗
  • 翠屏区网站建设广告推广媒体
  • 如何把本地网站国外引擎搜索
  • 嘉兴做网站seo的免费好用的crm软件