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

嘉兴网站快速排名优化哪个网站可以做经济模拟题

嘉兴网站快速排名优化,哪个网站可以做经济模拟题,河南手机网站建设公司排名,个人网站策划书模板文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注… 文章目录 1. MyBatis的常用注解2. 基于注解的MyBatis增删改查增删改查完整代码加载映射关系测试代码 3. MyBatis的注解实现复杂映射开发一对一操作的实现一对一操作实现的第二种方式一对多操作的实现多对多操作实现 1. MyBatis的常用注解 2. 基于注解的MyBatis增删改查 使用注解开发就可以删掉原本写MyBatis语句的xml文件了注解只要在UserMapper.java接口上进行实现即可 增 Insert(insert into user values(#{id}, #{username}, #{password}, #{birthday})) void save(User user);删 Delete(delete from user where id#{id}) void delete(int id);改 Update(update user set username#{username}, password#{password}, birthday#{birthday} where id#{id}) void update(User user);查 Select(select * from user where id#{id}) User findById(int id);Select(select * from user) ListUser findAll();完整代码 package com.example.demo.mapper;import com.example.demo.domain.User; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update;import java.util.List;public interface UserMapper {Insert(insert into user values(#{id}, #{username}, #{password}, #{birthday}))void save(User user);Delete(delete from user where id#{id})void delete(int id);Update(update user set username#{username}, password#{password}, birthday#{birthday} where id#{id})void update(User user);Select(select * from user where id#{id})User findById(int id);Select(select * from user)ListUser findAll(); }加载映射关系 原本在sqlMapConfig.xml文件中的加载映射文件修改为加载映射关系 !-- 加载映射关系 -- mapperspackage namecom.example.demo.mapper/ /mappers测试代码 原本数据库中的内容 package com.example.demo;import com.example.demo.domain.User; import com.example.demo.mapper.UserMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.List;public class DemoApplication {public static void main(String[] args) throws IOException { // 1. 创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder(); // 2. 加载SqlMapConfig.xml配置文件InputStream inputStream Resources.getResourceAsStream(sqlMapConfig.xml); // 3. 创建SqlSessionFactory对象SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(inputStream); // 4. 获取SqlSessionSqlSession sqlSession sqlSessionFactory.openSession();UserMapper mapper sqlSession.getMapper(UserMapper.class); // 增加User信息User saveUser new User();saveUser.setUsername(newUser);saveUser.setPassword(aaaaaa);saveUser.setBirthday(new Date());mapper.save(saveUser); // 删除User信息int deleteUserId 3;mapper.delete(deleteUserId); // 修改User信息User updateUser new User();updateUser.setId(2);updateUser.setUsername(ccc);updateUser.setPassword(1234567update);mapper.update(updateUser); // 根据Id查询UserUser user mapper.findById(1);System.out.println(user); // 查询所有userListUser userList mapper.findAll();System.out.println(userList);sqlSession.commit();// 6. 释放资源sqlSession.close();} }打印的信息 更新后的内容 3. MyBatis的注解实现复杂映射开发 此处对应于【Spring集成MyBatis】MyBatis的多表查询的内容来写一下对应的注解实现。 一对一操作的实现 原本基于配置是这么写的 ?xml version1.0 encodingUTF-8 ? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.dao.OrderMapperresultMap idorderMap typecom.example.demo.domain.Order !-- 手动指定字段与实体属性的映射关系-- !-- column:数据表的字段名称-- !-- property:实体的属性名称--id columnoid propertyid/idresult columnordertime propertyorderTime/resultresult columntotal propertytotal/resultresult columnuid propertyuser.id/resultresult columnusername propertyuser.username/resultresult columnpassword propertyuser.password/resultresult columnbirthday propertyuser.birthday/result/resultMapselect idfindAll resultMaporderMapSELECT *, o.id orderid, u.id userid FROM order o, user u WHERE o.uidu.id/select/mapper使用注解后如下修改 package com.example.demo.mapper;import com.example.demo.domain.Order; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select;import java.util.List;public interface OrderMapper {Select(select *, o.id oid from order o, user u where o.uidu.id)Results({Result(column oid, property id),Result(column ordertime, property orderTime),Result(column total, property total),Result(column uid, property user.id),Result(column username, property user.username),Result(column password, property user.password)})ListOrder findAll();}一对一操作实现的第二种方式 其中在要封装的User对象中我们可以在Result注解中写明属性名称、数据库查询到的值、要封装的实体类型等等等有点类似于之前的注解中的那些属性不同的事这里通过一个One来指定通过哪个接口的方法来获得对应的数据这时候会将column的值注入到这个方法中来获得具体的结果 也就是首先使用 select * from order来查询出order下的所有信息包括id、ordertime、total、uid接着我们需要根据里面的uid可以查出对应的User信息并封装到Order实体类下的user属性中 select * from user where id(上面查询结果的所有uid)这里就需要在Result注解中进一步指定property、column、javaType、one(由于是一对一所以使用one一对多使用many) package com.example.demo.mapper;import com.example.demo.domain.Order; import com.example.demo.domain.User; import org.apache.ibatis.annotations.One; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select;import java.util.List;public interface OrderMapper {Select(select * from order)Results({Result(column id, property id),Result(column ordertime, property orderTime),Result(column total, property total),Result(property user, // 要封装的属性名称column uid, // 根据哪个字段去查询user表的数值javaType User.class, // 要封装的实体类型// select属性 代表查询哪个接口的方法获得数据one One(select com.example.demo.mapper.UserMapper.findById))})ListOrder findAll();}以上两种一对一操作的测试代码 package com.example.demo;import com.example.demo.domain.Order; import com.example.demo.domain.User; import com.example.demo.mapper.OrderMapper; import com.example.demo.mapper.UserMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.InputStream; import java.util.Date; import java.util.List;public class DemoApplication {public static void main(String[] args) throws IOException { // 1. 创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder(); // 2. 加载SqlMapConfig.xml配置文件InputStream inputStream Resources.getResourceAsStream(sqlMapConfig.xml); // 3. 创建SqlSessionFactory对象SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(inputStream); // 4. 获取SqlSessionSqlSession sqlSession sqlSessionFactory.openSession();OrderMapper orderMapper sqlSession.getMapper(OrderMapper.class);ListOrder orderList orderMapper.findAll();for (Order order : orderList) {System.out.println(order);}// 6. 释放资源sqlSession.close();} } 结果 一对多操作的实现 查询User对应的订单和【Spring集成MyBatis】MyBatis的多表查询中一样首先需要再User里面加上一个orderList属性用于封装所有的订单并写好对应的set、get方法以及对应的toString方法。 类似于一对一操作的第二种实现方式我们需要在Result里面指定property、column、javaType由于返回的是List就不用one而用many 首先查询出所有的用户并在用户下面封装其订单列表。 通过 select * from user查出了用户的id,username,password,birthday的信息我们需要根据里面的id到order表里查询对应的订单 select * from order where uid(上面user查询出来的所有id)即再通过一个Result注解指定根据uid查询订单的方法。目前Order类里还没有根据uid查询订单的方法所以我们需要再去实现一下根据uid查询订单的方法 在OrderMapper里写 Select(select * from order where uid#{id}) ListOrder findByUid(int id);在UserMapper里写根据userid查询指定订单 Select(select * from user) Results({Result(column id, property id),Result(column username, property username),Result(column password, property password),Result(column birthday, property birthday),Result(property orderList,column id,javaType List.class,many Many(select com.example.demo.OrderMapper.findByUid)) }) ListUser findUserAndOrderAll();测试 package com.example.demo;import com.example.demo.domain.User; import com.example.demo.mapper.UserMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.InputStream; import java.util.List;public class DemoApplication {public static void main(String[] args) throws IOException { // 1. 创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder(); // 2. 加载SqlMapConfig.xml配置文件InputStream inputStream Resources.getResourceAsStream(sqlMapConfig.xml); // 3. 创建SqlSessionFactory对象SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(inputStream); // 4. 获取SqlSessionSqlSession sqlSession sqlSessionFactory.openSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);ListUser userList mapper.findUserAndOrderAll();for (User user : userList) {System.out.println(user);}// 6. 释放资源sqlSession.close();} }查询出来的结果如下 多对多操作实现 查询User对应的角色和【Spring集成MyBatis】MyBatis的多表查询中一样首先需要再User里面加上一个roleList属性用于封装所有的角色并写好对应的set、get方法以及对应的toString方法。 实现过程如下 先查询所有的User信息 select * from USER根据userid查询所有的对应的role及其信息 select * from user_role ur, role r where ur.roleIdr.id and userid(上面查出来的所有id)那么首先我们需要建立roleMapper并在RoleMapper中写上对应的查询语句 package com.example.demo.mapper;import com.example.demo.domain.Role; import org.apache.ibatis.annotations.Select;import java.util.List;public interface RoleMapper {Select(select * from user_role ur, role r where ur.roleIdr.id and userid#{id})ListRole findByUid(int id); }接着在UserMapper中类似一对多一样补充如下方法 Select(select * from User) Results({Result(column id, property id),Result(column username, property username),Result(column password, property password),Result(column birthday, property birthday),Result(property roleList,column id,javaType List.class,many Many(select com.example.demo.mapper.RoleMapper.findByUid)) }) ListUser findUserAndRoleAll();最后测试 package com.example.demo;import com.example.demo.domain.User; import com.example.demo.mapper.UserMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException; import java.io.InputStream; import java.util.List;public class DemoApplication {public static void main(String[] args) throws IOException { // 1. 创建SqlSessionFactoryBuilder对象SqlSessionFactoryBuilder sqlSessionFactoryBuilder new SqlSessionFactoryBuilder(); // 2. 加载SqlMapConfig.xml配置文件InputStream inputStream Resources.getResourceAsStream(sqlMapConfig.xml); // 3. 创建SqlSessionFactory对象SqlSessionFactory sqlSessionFactory sqlSessionFactoryBuilder.build(inputStream); // 4. 获取SqlSessionSqlSession sqlSession sqlSessionFactory.openSession();UserMapper mapper sqlSession.getMapper(UserMapper.class);ListUser userList mapper.findUserAndRoleAll();for (User user : userList) {System.out.println(user);}// 6. 释放资源sqlSession.close();} }结果如下
http://www.zqtcl.cn/news/995568/

相关文章:

  • 网络运行管理系统seo关键词优化方法
  • 西安学校网站建设价格徐州网页关键词优化
  • 上海哪个网站能应聘做家教的营销网站中最重要的部分是
  • 一个设计网站多少钱WordPress的简约博客主题
  • 普通的宣传网站用什么做济南市工程建设技术监督局网站
  • 合肥网站建设公司还有不dw如何制作表格网页
  • 讯美智能网站建设自己域名做网站
  • 自己做网站优化韩国外贸平台
  • 齐河建设局网站长沙市住房和建设局官方网站
  • 萧山区住房和城乡建设局网站wordpress网站合并
  • 做背景网站网站建设与维护制作网页
  • 网站建设公司知名营销型企业网站项目策划表
  • 写作网站哪个最好企业培训机构有哪些
  • 江苏省水利工程建设局网站域名不备案可以正常使用吗
  • 对网站开发语言的统计网站内容建设包括什么
  • 西安高端网站建设怎样开公司
  • 华为做网站免费签名设计在线生成
  • 网站产品整合推广爱网聊的男人是什么心理
  • 武威市建设厅网站汕头seo外包公司
  • 酒泉网站怎么做seo东莞高明网站设计
  • 沧州网站建设联系电话杭州设计公司logo
  • 网站子站点是什么意思亚马逊国际站官网
  • 影视cms哪个好苏州关键词优化搜索排名
  • 杭州微信网站开发网站优化公司免费咨询
  • 宣武富阳网站建设南昌公众号开发公司
  • 免费的网站推荐下载wordpress %s
  • 网站的原理百度旧版本下载
  • 衡水网站建设地方新网域名证书下载
  • 自己做的创意的网站什么是淘宝seo
  • 网站开发包含哪些网站设计实例