mybatis学习(48):列表信息查询

数据库

目录结构

映入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

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在.net 2.0/3.0程序中使用扩展方法

.NET Framework 从2.0升级至3.0/3.5中&#xff0c;增加了不少编译器级别的语法糖&#xff0c;如var关键字、自动属性、Lambda表达式、扩展方法等等。 如果使用vs2008发布.net2.0程序时&#xff0c;除了扩展方法外&#xff0c;其它的语法糖基本上都可以直接使用。但如果发布带扩…

李春雷 | 夜宿棚花村

汶川地震过后几天&#xff0c;我随中国作家小分队入蜀。集中活动后&#xff0c;我申请去重灾区的一个点上采访。于是&#xff0c;就结识了棚花村。 从成都出发&#xff0c;经广汉、德阳&#xff0c;再过绵竹、遵道。汽车沿着龟裂的公路&#xff0c;小心翼翼地颠簸爬行&#xff…

Pycharm中运行Python代码的几种方式

Pycharm中运行Python代码的几种方式 在pycharm中的Python代码运行会出现各种奇葩的问题&#xff0c;比如&#xff0c;密码输入时不显示或没有提示&#xff0c;给我们带来一些麻烦&#xff0c;下面介绍几种代码运行的几种方式&#xff1a; 一、直接运行&#xff08;Run按钮或者快…

mybatis学习(49):嵌套查询--一对多

数据库表 数据库叫blog_gp1701 author表 数据 blog表 数据 comment表 数据 post表 数据 目录结构 jar包导入 先给对应的jar包导入 建立一个junit单元测试 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender,dailyRo…

怎样办理软件著作权登记

软件登记所需文件 必须提供 1、源程序前后各30页 A4纸 &#xff08;每页程序不少于50行&#xff09; 如果不够60页&#xff0c;提供全部 2. 软件说明书A4纸 3. 申请书 (申请人盖章或签字) 如果是自然人申请&#xff0c;由本人签字 4 委托书 (申请人盖章或签字)一份委托…

诗词歌赋,样样精通!诗词古语小程序带你领略魅力古风丨实战

1. 小程序功能 古诗词大全成语大全成语接龙诗词飞花令诗词分享、收藏诗词接龙唐诗宋词起名字百家姓猜谜语2. 小程序预览&#xff1a; 3. 部分截图 首页 列表页 详情页 分享页 唐诗宋词 成语接龙 4. 项目结构 . ├── README.md ├── project.config.json …

mybatis学习(50):嵌套查询

数据库表 数据库叫blog_gp1701 author表 数据 blog表 数据 comment表 数据 post表 数据 目录结构 jar包导入 先给对应的jar包导入 建立一个junit单元测试 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender,dailyRo…

《WF编程》系列之3 - 漫游工作流:Visual Studio 2005 扩展

《WF编程》系列之3 - 漫游工作流:Visual Studio 2005 扩展 1.2.2 Visual Studio 2005 扩展 Microsoft提供了一个Visual Studio 2005 的工作流扩展(Microsoft Visual Studio 2005 Extensions for Windows Workflow)其中包含用于构建工作流的可视化设计器. 活动排列在工具箱里,可…

只需20小时,让0基础的你掌握小程序云开发!这个暑假,约否?

今天的故事要从小开和小发这对好基友的假期说起...... 没错&#xff01;他来了&#xff0c;他来了&#xff0c;云开发带着小程序开发夏令营最新情报向我们走来了&#xff01; 为了让更多的童鞋享受高效率、“在云上”掌握小程序开发这一热门技术&#xff0c;也为了解决大家自学…

Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

去空格及特殊符号 s.strip().lstrip().rstrip(,) 复制字符串 #strcpy(sStr1,sStr2) sStr1 strcpy sStr2 sStr1 sStr1 strcpy2 print sStr2 连接字符串 #strcat(sStr1,sStr2) sStr1 strcat sStr2 append sStr1 sStr2 print sStr1 查找字符 #strchr(sStr1,sStr2) # < 0 …

mybatis学习(51):扩展集

大部分现实应用中我们并不需要把数据库中的整行数据都拉出来, 所以要做扩展结果集 笔记: 在实际项目过程中, 先用逆向工程自动生成, 然后再做扩展结果集来满足大部分的现实需要 本节内容应该注意扩展结果集的命名方式 创建一个扩展类ShopCustom, (这样命名可以和Shop在项目树…

应届生,你如何应付技术关?

因为最近公司的战略问题&#xff0c;需要招一些没经验的应届毕业生进行培养。不过在面试当中&#xff0c;某些应届生表现出来的&#xff0c;却不能不让我们汗颜。所以&#xff0c;在此以一个招聘者的角度&#xff0c;说说一些看法。既然是招没经验的应届生&#xff0c;那么很明…

CLIST

CList数组再写 #include<iostream> using namespace std; struct node{ int data; node* next; }; void insertnode(node* list,int num); void deletenode(node* list,int num); int main() { int a[5]{3,5,8,1,2}; node* headnew node;//开辟一个空间地址给头指针 node…

mybatis学习(52):扩展结果的展现

首先使用逆向工程创建相关类 数据库表 author blog 新建一个项目&#xff0c;将逆向工程的生成的拷贝进来 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender,dailyRollingFile,ROLLING_FILE,MAIL,DATABASE### \u8BBE\…

统计HDFS文件数量,大小,以及在某范围大小的文件数量

统计HDFS文件数量大小&#xff0c;小于20M文件数量 hadoop fs -du -h / # 统计文件大小hadoop fs -count / # 统计文件数量&#xff0c;返回的数据是目录个数&#xff0c;文件个数&#xff0c;文件总计大小&#xff0c;输入路径hadoop fs -ls -R /path/data | grep ^- > ~/d…

今天学习任务

1、复习梁老师今天讲的内容。 2、学习设计模式。 转载于:https://www.cnblogs.com/bailq/archive/2008/09/06/1285483.html

中国经济怎么办之我见

中国经济问题的根源 一、一味追求高GDP&#xff0c;表现就是大力发展房地产和搞基建&#xff0c;典型言论是号称房地产能拉动几十个关联行业。 二、过于追求快速城镇化。 负面结果 一 、社会资源(包括资金、劳动力、政策等)都投入到房地产&#xff0c;其他行业的发展受到极大的…

mybatis学习(53):构造方法映射

数据库表 数据库叫blog_gp1701 author表 数据 blog表 数据 comment表 数据 post表 数据 目录结构 jar包导入 先给对应的jar包导入 建立一个junit单元测试 配置文件 log4j.properties ### \u914D\u7F6E\u6839 ### log4j.rootLogger debug,console ,fileAppender,dailyRo…

python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小

python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求&#xff1a;指定目录下&#xff0c;文件夹数目/文件数目/所有文件大小&#xff0c;类似Windows如下功能&#xff1a; 模块介绍&…

架构师的要害

架构师的要害就是&#xff1a;架构师的领导力。 这是一个与技术完全不同的方向&#xff0c;是一个人文的方向。我认识的一位资深HR经理和我的老经理都曾经告诉过我&#xff1a;从技术的思维转换到与人打交 道的思维是非常难的&#xff1b;一旦一名技术员&#xff08;程序员/测试…