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

ui网站开发wordpress 教育主题

ui网站开发,wordpress 教育主题,手机零售网站 关键词,空间设计图片文章目录 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.pierceye.com/news/180392/

相关文章:

  • 佛山 网站关键词优化trel域名
  • 哪家网站建设好大连房产网
  • 企业做推广哪些网站比较好兰州有做百度网站的吗
  • 网站建设和管理规则自己建网站的流程
  • 网站的前期推广广州网站建设加盟
  • 网站灰色 代码深圳的深圳的网站建设公司
  • 做电影采集网站需要多大vps安徽建设新工程信息网站
  • 中小企业网站制作化工厂网站建设
  • 电子政务网站建设出版社百度网页提交入口
  • 专业柳州网站建设哪家便宜淄博桓台网站建设定制
  • 网站建设投标标书企业网站建设销售前景
  • wordpress建站教程凌风wordpress 仪表盘 慢
  • 怎样给网站或者商品做推广关于建网站新闻
  • 上海 微信网站 建站一对一直播app
  • ppt模板免费下载网站哪个好克拉玛依市住房和建设局网站
  • 制作网站得多少钱交互设计留学
  • 理财网站免费建设经典重庆新闻论坛
  • 南京专业网站制作哪家好企业所得税交多少
  • 广西网站建设哪家好常熟做网站的
  • 礼品网站制作辽宁省建设部网站
  • 网站群的建设目标澧县网页设计
  • 邯郸网站建设在哪里网站建设yingkagou
  • 姜堰区网站建设企业公司网站制作
  • 目前做的比较好的法律网站有哪些兰州seo技术优化排名公司
  • wordpress网站接入qqwordpress调用二级分类目录
  • 自建站有哪些站点soho 网站建设
  • cms网站建设如果在网上接网站建设项目
  • 建设网站的重点与难点在于社区网站模版
  • 自己在线制作logo免费网站公司网页设计教程
  • 广西城乡建设网站一家企业如何做网站推广