数据库

目录结构

映入jar包和junit单元测试

com.geyao.mybatis.mapper

AuthorMapper类

package com.geyao.mybatis.mapper;import com.geyao.mybatis.pojo.Author;
public interface AuthorMapper {Author selectAuthorById(Integer id);
}

BlogMapper类

package com.geyao.mybatis.mapper;import java.util.List;import com.geyao.mybatis.pojo.Blog;public interface BlogMapper {Blog selectBlogById(Integer id);List<Blog> selectBlogList();
}

AuthorMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)-->
<mapper namespace="com.geyao.mybatis.mapper.AuthorMapper"><resultMap type="Author" id="authorResultMap"><id column="id" property="id" jdbcType="INTEGER"></id></resultMap><select id="selectAuthorById" parameterType="int" resultMap="authorResultMap">select * from author where id=#{id}</select>
</mapper>

BlogMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.geyao.mybatis.mapper.BlogMapper"><resultMap type="Blog" id="blogResultMap"><id column="id" property="id" jdbcType="INTEGER"></id>                                     <association property="author" column="author" javaType="Author"select="com.geyao.mybatis.mapper.AuthorMapper.selectAuthorById"></association></resultMap><select id="selectBlogById" parameterType="int" resultMap="blogResultMap">select * from Blog where id=#{id}</select><select id="selectBlogList"  resultMap="blogResultMap">select * from Blog </select>
</mapper>

com.geyao.mybatis.pojo

Author类

package com.geyao.mybatis.pojo;public class Author {private Integer id;private String username;private String password;private String email;private String bio;private String favouriteSection;private String nickname;private String realname;public Author() {super();}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getBio() {return bio;}public void setBio(String bio) {this.bio = bio;}public String getFavouriteSection() {return favouriteSection;}public void setFavouriteSection(String favouriteSection) {this.favouriteSection = favouriteSection;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname = nickname;}public String getRealname() {return realname;}public void setRealname(String realname) {this.realname = realname;}public Author(Integer id, String username, String password, String email, String bio, String favouriteSection,String nickname, String realname) {super();this.id = id;this.username = username;this.password = password;this.email = email;this.bio = bio;this.favouriteSection = favouriteSection;this.nickname = nickname;this.realname = realname;}@Overridepublic String toString() {return "Author [id=" + id + ", username=" + username + ", password=" + password + ", email=" + email + ", bio="+ bio + ", favouriteSection=" + favouriteSection + ", nickname=" + nickname + ", realname=" + realname+ "]";}}

Blog类

package com.geyao.mybatis.pojo;import java.io.Serializable;public class Blog implements Serializable {private static final long serialVersionUID = 1L;private Integer id;private String title;private Author author;private String state;private boolean featured;private String style;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Author getAuthor() {return author;}public void setAuthor(Author author) {this.author = author;}public String getState() {return state;}public void setState(String state) {this.state = state;}public boolean isFeatured() {return featured;}public void setFeatured(boolean featured) {this.featured = featured;}public String getStyle() {return style;}public void setStyle(String style) {this.style = style;}public static long getSerialversionuid() {return serialVersionUID;}@Overridepublic String toString() {return "Blog [id=" + id + ", title=" + title + ", author=" + author + ", state=" + state + ", featured="+ featured + ", style=" + style + "]";}}

com.geyao.mybatis.util

MybatisUtil类

package com.geyao.mybatis.util;import java.io.InputStream;
import java.io.Reader;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class MyBatisUtil {private static SqlSessionFactory sqlSessionFactory =null;static {try {InputStream in = Resources.getResourceAsStream("mybatis-config.xml");sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}private MyBatisUtil() {}public static SqlSession getSqlSession() {return sqlSessionFactory.openSession();}
}

com.geyao.mybatis.mapper测试类

BlogMapperTest

package com.geyao.mybatis.mapper;import java.util.List;import org.apache.ibatis.session.SqlSession;
import org.junit.Test;import com.geyao.mybatis.pojo.Author;
import com.geyao.mybatis.pojo.Blog;
import com.geyao.mybatis.util.MyBatisUtil;public class BlogMapperTest {@Testpublic void testSelectBlog() {SqlSession session =MyBatisUtil.getSqlSession();BlogMapper blogMapper =session.getMapper(BlogMapper.class);Blog blog = blogMapper.selectBlogById(1);session.close();System.out.println(blog);}@Testpublic void testSelectBlogList() {SqlSession session =MyBatisUtil.getSqlSession();BlogMapper blogMapper =session.getMapper(BlogMapper.class);List<Blog> biogList = blogMapper.selectBlogList();session.close();System.out.println(biogList);}}

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings><setting name="useGeneratedKeys" value="true"/>
</settings>
<typeAliases><typeAlias type="com.geyao.mybatis.pojo.Blog" alias="Blog"/><typeAlias type="com.geyao.mybatis.pojo.Author" alias="Author"/>
</typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC" /><!-- 配置数据库连接信息 --><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/blog_gp1701?serverTimezone=GMT%2B8" /><property name="username" value="root" /><property name="password" value="123" /></dataSource></environment></environments><mappers><!-- 注册userMapper.xml文件, userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml--><mapper resource="com/geyao/mybatis/mapper/BlogMapper.xml"/><mapper resource="com/geyao/mybatis/mapper/AuthorMapper.xml"/></mappers>
</configuration>

log4j.properties

### \u914D\u7F6E\u6839 ###
log4j.rootLogger = debug,console ,fileAppender,dailyRollingFile,ROLLING_FILE,MAIL,DATABASE### \u8BBE\u7F6E\u8F93\u51FAsql\u7684\u7EA7\u522B\uFF0C\u5176\u4E2Dlogger\u540E\u9762\u7684\u5185\u5BB9\u5168\u90E8\u4E3Ajar\u5305\u4E2D\u6240\u5305\u542B\u7684\u5305\u540D ###
log4j.logger.org.apache=dubug
log4j.logger.java.sql.Connection=dubug
log4j.logger.java.sql.Statement=dubug
log4j.logger.java.sql.PreparedStatement=dubug
log4j.logger.java.sql.ResultSet=dubug### \u914D\u7F6E\u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n

运行结果

mybatis学习(48):列表信息查询相关推荐

  1. mybatis学习之路----模糊查询实现

    点滴记载,点滴进步,愿自己更上一层楼. 废话不多说,进入主题. 项目还是在上篇  mybatis学习之路----非代理方式的增删改查用法 基础之上进行开发 一个简单的模糊查询sql. SELECT * ...

  2. WebApp之JQuery Mobile实现火车列表信息查询

    一.项目源代码如下: <!-- --><!DOCTYPE html> <html> <head><meta charset="utf-8 ...

  3. Mybatis学习笔记6 模糊查询like

    1.模糊 like 模糊查询的实现有两种方式, 一是java代码中给查询数据加上"%"; 二是在mapper文件sql语句的条件位置加上"%". 需求:查询姓名 ...

  4. python编写查询系统_小菜鸟的python学习之路----信息查询系统

    功能说明: (1)用户认证功能,只有输入对的用户名和密码后才能查询 (2)可以查员工的ID,Name,部门,电话 (3)查询的接口关键字是姓名,用户通过姓名来查其他关联相关信息. (4)查完了输出用户 ...

  5. 超详细Mybatis学习笔记(可供下载)

    文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...

  6. mybatis学习笔记(12)-多对多查询

    mybatis学习笔记12-多对多查询 示例 多对多查询总结 resultMap总结 本文实现多对多查询,查询用户及用户购买商品信息. 示例 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通 ...

  7. java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计飞机航班信息查询系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目 ...

  8. 查询缓存---Mybatis学习笔记(十)

    mybatis缓存介绍 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. 如下图,是mybatis一级缓存和二级缓存的区别图解: Mybatis一级缓存的作用域是同一个SqlSessio ...

  9. 关联查询---Mybatis学习笔记(九)

    商品订单数据模型 注意:分析数据库表和数据库表之间的关系可以先通过数据库中的主外键关系来分析,然后通过业务中的实际的关系来分析. 1.一对一查询 需求: 查询订单信息,关联查询创建订单的用户信息 分析 ...

最新文章

  1. IBM AIX JFS 数据恢复记录(暂)
  2. html a标签去掉下划线_让HTML元素动起来
  3. @codeforces - 1096G@ Lucky Tickets
  4. 学习React的一知半解
  5. ZF2系列 – Zend Framework 2 MVC實作 (Part 3)
  6. 深度学习之递归神经网络(Recurrent Neural Network,RNN)
  7. java 方法保存变量_java – 在初始化对象或将其保存为变量并调用该方法时,调用方法的速度更快...
  8. 通用线程:POSIX 线程详解,第 2部分——称作互斥对象的小玩意
  9. centos7安装docker 以及简单使用
  10. OpenShift 4 Hands-on Lab (8) 基于Gogs+Nexus+Sonarqube的Jenkins CI/CD Pipeline
  11. jQuery倒计时进度条
  12. kettle 简介及入门
  13. java opencv 模板匹配算法_OpenCV模板匹配算法详解
  14. office 365 获取会议室日历
  15. 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
  16. 用一台电脑连接另一台电脑的虚拟机
  17. arduino 1 读取电机编码器值
  18. DBEX-1-6-2015数据库开发技术
  19. google检索式大全
  20. 我的世界pc版服务器屏幕显示太大,《我的世界》:mc的自由度太高,服务器老是被破坏,服主一招搞定...

热门文章

  1. iOS开发UI篇—实现一个私人通讯录小应用(二)
  2. linux 复制分区文件,dd复制分区后目标分区的大小变成原分区了
  3. 哪个linux桌面有电池显示,(求助!!!)进ubuntu后桌面只显示左上角!(已解决)...
  4. Exynos4412 Uboot 移植(三)—— Uboot添加自定义命令
  5. Linux 系统应用编程——网络编程(利用TCP/IP 模型分析数据传输过程)
  6. [json] JSON for Modern C++
  7. linux kill 关闭进程命令
  8. /deep/使用方式方式;/deep/无效; ::v-deep和>>>使用;
  9. Taro+react开发(81):props属性
  10. 前端学习(3255):react中动态初始化结果