• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mybatis / spring / #1227

14 Sep 2023 05:15PM CUT coverage: 89.622%. Remained the same
#1227

Pull #854

github

web-flow
Update dependency net.bytebuddy:byte-buddy-agent to v1.14.8
Pull Request #854: Update dependency net.bytebuddy:byte-buddy-agent to v1.14.8

829 of 925 relevant lines covered (89.62%)

0.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

83.33
/src/main/java/org/mybatis/spring/support/SqlSessionDaoSupport.java
1
/*
2
 * Copyright 2010-2022 the original author or authors.
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *    https://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
package org.mybatis.spring.support;
17

18
import static org.springframework.util.Assert.notNull;
19

20
import org.apache.ibatis.session.SqlSession;
21
import org.apache.ibatis.session.SqlSessionFactory;
22
import org.mybatis.spring.SqlSessionTemplate;
23
import org.springframework.dao.support.DaoSupport;
24

25
/**
26
 * Convenient super class for MyBatis SqlSession data access objects. It gives you access to the template which can then
27
 * be used to execute SQL methods.
28
 * <p>
29
 * This class needs a SqlSessionTemplate or a SqlSessionFactory. If both are set the SqlSessionFactory will be ignored.
30
 * <p>
31
 *
32
 * @author Putthiphong Boonphong
33
 * @author Eduardo Macarron
34
 *
35
 * @see #setSqlSessionFactory
36
 * @see #setSqlSessionTemplate
37
 * @see SqlSessionTemplate
38
 */
39
public abstract class SqlSessionDaoSupport extends DaoSupport {
1✔
40

41
  private SqlSessionTemplate sqlSessionTemplate;
42

43
  /**
44
   * Set MyBatis SqlSessionFactory to be used by this DAO. Will automatically create SqlSessionTemplate for the given
45
   * SqlSessionFactory.
46
   *
47
   * @param sqlSessionFactory
48
   *          a factory of SqlSession
49
   */
50
  public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
51
    if (this.sqlSessionTemplate == null || sqlSessionFactory != this.sqlSessionTemplate.getSqlSessionFactory()) {
1✔
52
      this.sqlSessionTemplate = createSqlSessionTemplate(sqlSessionFactory);
1✔
53
    }
54
  }
1✔
55

56
  /**
57
   * Create a SqlSessionTemplate for the given SqlSessionFactory. Only invoked if populating the DAO with a
58
   * SqlSessionFactory reference!
59
   * <p>
60
   * Can be overridden in subclasses to provide a SqlSessionTemplate instance with different configuration, or a custom
61
   * SqlSessionTemplate subclass.
62
   *
63
   * @param sqlSessionFactory
64
   *          the MyBatis SqlSessionFactory to create a SqlSessionTemplate for
65
   *
66
   * @return the new SqlSessionTemplate instance
67
   *
68
   * @see #setSqlSessionFactory
69
   */
70
  @SuppressWarnings("WeakerAccess")
71
  protected SqlSessionTemplate createSqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
72
    return new SqlSessionTemplate(sqlSessionFactory);
1✔
73
  }
74

75
  /**
76
   * Return the MyBatis SqlSessionFactory used by this DAO.
77
   *
78
   * @return a factory of SqlSession
79
   */
80
  public final SqlSessionFactory getSqlSessionFactory() {
81
    return (this.sqlSessionTemplate != null ? this.sqlSessionTemplate.getSqlSessionFactory() : null);
×
82
  }
83

84
  /**
85
   * Set the SqlSessionTemplate for this DAO explicitly, as an alternative to specifying a SqlSessionFactory.
86
   *
87
   * @param sqlSessionTemplate
88
   *          a template of SqlSession
89
   *
90
   * @see #setSqlSessionFactory
91
   */
92
  public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) {
93
    this.sqlSessionTemplate = sqlSessionTemplate;
1✔
94
  }
1✔
95

96
  /**
97
   * Users should use this method to get a SqlSession to call its statement methods This is SqlSession is managed by
98
   * spring. Users should not commit/rollback/close it because it will be automatically done.
99
   *
100
   * @return Spring managed thread safe SqlSession
101
   */
102
  public SqlSession getSqlSession() {
103
    return this.sqlSessionTemplate;
1✔
104
  }
105

106
  /**
107
   * Return the SqlSessionTemplate for this DAO, pre-initialized with the SessionFactory or set explicitly.
108
   * <p>
109
   * <b>Note: The returned SqlSessionTemplate is a shared instance.</b> You may introspect its configuration, but not
110
   * modify the configuration (other than from within an {@link #initDao} implementation). Consider creating a custom
111
   * SqlSessionTemplate instance via {@code new SqlSessionTemplate(getSqlSessionFactory())}, in which case you're
112
   * allowed to customize the settings on the resulting instance.
113
   *
114
   * @return a template of SqlSession
115
   */
116
  public SqlSessionTemplate getSqlSessionTemplate() {
117
    return this.sqlSessionTemplate;
×
118
  }
119

120
  /**
121
   * {@inheritDoc}
122
   */
123
  @Override
124
  protected void checkDaoConfig() {
125
    notNull(this.sqlSessionTemplate, "Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required");
1✔
126
  }
1✔
127

128
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc