首页 > 编程知识 正文

为什么要使用mybatis,mybatis中文文档

时间:2023-05-03 23:27:20 阅读:113955 作者:1835

在编写xml配置文件的sql语句时,必须首先查询数据库工具,然后将查询的结果写在代码中。 很难混淆。 此外,查询后结果中的字段名称与结果映射或标记中的列属性相对应

一、双侧查询:关联对1

关联标签用于一对一关系

关联的作用是两个表中的相关查询将另一个表中的字段关联起来并一起映射到实体类

例:作者与博客的关系:一对一(假设每个作者只能有一个博客) )。

author表和blog表. png

两个表的一对一查询结果. png

要查询两个表,请首先使用数据库管理工具进行查询,然后将查询后的表映射到java代码

1 .实体类

Author.java

公共类审计器{

私有integer id;

私有字符串author name;

公共集成器getid

返回id;

}

公共语音设置(integer id ) {

this.id=id;

}

公共字符串get author name (

返回author name;

}

publicvoidsetauthorname (字符串自动名称)。

this.authorName=authorName;

}

@Override

公共字符串字符串

返回' author {

' id=' id

',authorName='' authorName '' '

() );

}

}

Blog.java

公共类博客{

私有integer id;

私有字符串博客名称;

隐私自动驾驶仪;

公共集成器getid

返回id;

}

公共语音设置(integer id ) {

this.id=id;

}

公共字符串getb logname (

返回博客名称;

}

publicvoidsetblogname (字符串日志名称) {

this.blogName=blogName;

}

公共author get author

返回自动机;

}

publicvoidsetauthor (author author ) {

this.author=author;

}

@Override

公共字符串字符串

返回博客{

' id=' id

',blogName='' blogName '' '

',author=' author

() );

}

}

2 .配置文件

jdbc.properties

JDBC.driver=com.MySQL.JDBC.driver

JDBC.URL=JDBC : MySQL ://localhost :3306/blog? serverTimezone=UTC

jdbc.username=root

jdbc.password=msj

mybatis配置文件mybatis01.xml

/p

public '-//my batis.org//dtd config 3.0//en '

' http://my batis.org/dtd/my batis-3-config.dtd '

mybatis映射文件mapper01.xml

注意:和标签中的column属性指向查询后的表字段,因此在执行双侧查询时,请先查询sql语句,然后将字段名称和属性名称一对一映射。

/p

public '-//my batis.org//dtd mapper 3.0//en '

' ht

tp://mybatis.org/dtd/mybatis-3-mapper.dtd">

select b.id,b.blog_name,a.id as a_id, a.author_name as a_name from blog b right join author a on b.a_id = a.id;

3.mapper接口和测试类

BlogMapper.java

public interface BlogMapper {

List findAll();

}

TestDemo.java

public class TestDemo {

@Test

public void test() throws IOException {

InputStream is = Resources.getResourceAsStream("mybatis01.xml");

SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);

SqlSession session = build.openSession();

BlogMapper mapper = session.getMapper(BlogMapper.class);

List list = mapper.findAll();

for(Blog b:list){

System.out.println(b);

}

}

}

运行结果

Blog{id=1, blogName='aablog', author=Author{id=4, authorName='aa'}}

Blog{id=2, blogName='bbblog', author=Author{id=5, authorName='bb'}}

Blog{id=3, blogName='aablog', author=Author{id=6, authorName='cc'}}

二、两边查询:association多对一

association也可以用在多对一的关系上

例子:tmdwd和博客的关系:多对一

tmdwd和博客表.png

1.实体类

Article.java

//这里省略set,get,toString方法,自己添加

private Integer id;

private String articleName;

private Blog blog;

Blog.java

private Integer id;

private String blogName;

2.配置类(同上)

这里要在mybatis01.xml进行添加配置

Mapper02.xml

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select a.id,a.article_name,b.id as b_id,b.blog_name from article a join blog b

on a.b_id = b.id

3. 测试

ArticleMapper.java

public interface ArticleMapper {

List findAll();

}

TestDemo.java

public class TestDemo {

@Test

public void test() throws IOException {

InputStream is = Resources.getResourceAsStream("mybatis01.xml");

SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);

SqlSession session = build.openSession();

ArticleMapper mapper = session.getMapper(ArticleMapper.class);

List all = mapper.findAll();

for(Article a:all){

System.out.println(a);

}

}

}

结果查询:

Article{id=1, articleName='111', blog=Blog{id=1, blogName='aablog'}}

Article{id=2, articleName='222', blog=Blog{id=1, blogName='aablog'}}

Article{id=3, articleName='333', blog=Blog{id=1, blogName='aablog'}}

Article{id=4, articleName='444', blog=Blog{id=2, blogName='bbblog'}}

Article{id=5, articleName='555', blog=Blog{id=2, blogName='bbblog'}}

Article{id=6, articleName='666', blog=Blog{id=3, blogName='ccblog'}}

三、两边查询:collection一对多

collection用在一对多的关系上

例子:博客和tmdwd的关系:一对多

1.实体类

Blog.java

注意:这里博客与tmdwd是一对多的关系,所以tmdwd需要用List

private Integer id;

private String blogName;

private List article;

Article.java

private Integer id;

private String articleName;

2.配置类(同上)

这里要在mybatis01.xml进行添加配置

Mapper03.xml

注意:中的属性是ofType

/p>

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select a.id as a_id,a.article_name,b.id as b_id,b.blog_name from article a join blog b

on a.b_id = b.id

3. 测试

TestDemo.java

public class TestDemo {

@Test

public void test() throws IOException {

InputStream is = Resources.getResourceAsStream("mybatis01.xml");

SqlSessionFactory build = new SqlSessionFactoryBuilder().build(is);

SqlSession session = build.openSession();

BlogMapper mapper = session.getMapper(BlogMapper.class);

List blogList = mapper.findAll();

for(Blog b:blogList){

System.out.println(b);

}

}

}

测试结果:

Blog{id=1, blogName='aablog', article=[Article{id=1, articleName='111'}, Article{id=2, articleName='222'}, Article{id=3, articleName='333'}]}

Blog{id=2, blogName='bbblog', article=[Article{id=4, articleName='444'}, Article{id=5, articleName='555'}]}

Blog{id=3, blogName='ccblog', article=[Article{id=6, articleName='666'}]}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。