为工程添加mybaties

本文介绍如何在MyBatis中配置C3P0数据源,并详细解释了C3P0的关键属性,包括如何配置MyBatis所需的依赖项、创建配置文件及实体Bean等步骤。


(1)为工程配置一个数据源

 

使用C3P0数据源:

<bean id="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

一些属性:

acquireIncrement:当连接池中的连接用完时,C3P0一次性创建新连接的数目; 

acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试获取的次数,默认为30 

acquireRetryDelay:两次连接中间隔时间,单位毫秒,默认为1000 

autoCommitOnClose:连接关闭时默认将所有未提交的操作回滚。默认为false 

automaticTestTable C3P0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数,那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将中为C3P0测试所用,默认为null 

breakAfterAcquireFailure:获取连接失败将会引起所有等待获取连接的线程抛出异常。但是数据源仍有效保留,并在下次调   getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认为 false 

checkoutTimeout:当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒,默认为0 

connectionTesterClassName通过实现ConnectionTesterQueryConnectionTester的类来测试连接,类名需设置为全限定名。默认为com.mchange.v2.C3P0.impl.DefaultConnectionTester 

idleConnectionTestPeriod:隔多少秒检查所有连接池中的空闲连接,默认为0表示不检查;

initialPoolSize:初始化时创建的连接数,应在minPoolSizemaxPoolSize之间取值。默认为3 

maxIdleTime:最大空闲时间,超过空闲时间的连接将被丢弃。为0或负数则永不丢弃。默认为0 

maxPoolSize:连接池中保留的最大连接数。默认为15 

maxStatementsJDBC的标准参数,用以控制数据源内加载的PreparedStatement数量。但由于预缓存的Statement于单个Connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素,如果maxStatementsmaxStatementsPerConnection均为0,则缓存被关闭。默认为0 

maxStatementsPerConnection:连接池内单个连接所拥有的最大缓存Statement数。默认为0 

numHelperThreadsC3P0是异步操作的,缓慢的JDBC操作通过帮助进程完成。扩展这些操作可以有效的提升性能,通过多线程实现多个操作同时被执行。默认为3 

preferredTestQuery:定义所有连接测试都执行的测试语句。在使用连接测试的情况下这个参数能显著提高测试速度。测试的表必须在初始数据源的时候就存在。默认为null 

propertyCycle用户修改系统配置参数执行前最多等待的秒数。默认为300 

testConnectionOnCheckout:因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用idleConnectionTestPeriodautomaticTestTable 

等方法来提升连接测试的性能。默认为false 

testConnectionOnCheckin:如果设为true那么在取得连接的同时将校验连接的有效性。默认为false 

 

 

(2)配置sessionFactory

<!-- 使用SqlSessionFactoryBean工厂产生SqlSession对象,方便后期注入Dao -->

        <bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

(3)添加mybaties配置

①引用jar包:
<dependency>

                           <groupId>org.mybatis</groupId>

                           <artifactId>mybatis</artifactId>

                           <version> 3.0.6 </version>

                           <type>jar</type>

                           <scope>compile</scope>

                  </dependency>

                  <dependency>

                           <groupId>org.mybatis</groupId>

                           <artifactId>mybatis-spring</artifactId>

                           <version> 1.0.2 </version>

                           <type>jar</type>

                           <scope>compile</scope>

                  </dependency>

<dependency>

                           <groupId>mysql</groupId>

                           <artifactId>mysql-connector-java</artifactId>

                           <version>5.1.18</version>

                           <type>jar</type>

                           <scope>compile</scope>

                  </dependency>

②创建mybaties的配置文件:通过其获取一个configeration对象。

mybatis.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>

    <typeAliases>

                  <typeAlias type="com.cyou.nad.jc.common.domain.SysAdmin"alias="SysAdmin"/>

    </typeAliases>

</configuration>

③创建实体bean

alt+shift+s可以快速调出source菜单栏。

④创建mapper文件

sys-admin-mapper.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">

<mappernamespace="com.cyou.nad.jc.common.dao.SysAdminMapper">

        <resultMap id="SysAdminMap" type="SysAdmin">

                  <id column="id" property="id" />

                  <result column="name" property="name" />

        </resultMap>

        <select id="findAdminByConditions" resultMap="SysAdminMap">

                  <![CDATA[

                  select id, name from t_sys_admin

                  ]]>

        </select>

                  

</mapper>

(3)写dao层

public class MysqlBaseDao extendsSqlSessionDaoSupport {

        

        protected Log log = LogFactory.getLog(getClass());

        @SuppressWarnings("unchecked")

        protected  List< SysAdmin> getList() {

                  return this.getSqlSession().selectList("findAdminByConditions");

        }

}

(2)其他:

①配置数据源时,往往使用配置文件中的数据。

如何配置读配置文件:
<bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 

        <propertyname="locations"> 

            <list> 

                <value>classpath:jdbc.properties</value> 

            </list> 

        </property> 

    </bean>

②在配置时出现的错误:

原因:
sqlsessionfectory的class配置错误:应该是org.mybatis.spring.SqlSessionFactoryBean

②开启时出现404错误

1、spring-servlet.xml未被找到,原因是配置文件中加载顺序问题。

需要先加载

2、修改扫描方式:

将<mvc:annotation-driven/>

修改为:<mvc:default-servlet-handler/>

相关资料:

使用DBCP数据源和C3P0数据源:http://yonguo.iteye.com/blog/115221

Atomikos配置数据源的三种方式:http://blog.youkuaiyun.com/mycup163/article/details/7558616

<think>好的,我现在需要帮助用户解决如何创建添加MyBatis配置文件的问题。首先,我需要回忆用户提供的引用内容,看看是否有相关的步骤或信息。用户引用了四个来源,其中引用[1]、[2]、[3]、[4]都提到了MyBatis的配置文件,特别是mybatis-config.xml和映射文件的相关内容。 首先,引用[1]提到了创建MyBatis核心配置文件、Mapper接口和映射文件,并提到加入log4j日志功能。引用[2]详细描述了在IDEA中创建MyBatis项目的步骤,包括创建mybatis-config.xml和logback.xml,以及配置映射文件。引用[3]解释了全局配置文件的作用,包括数据库连接、事务管理、别名等。引用[4]展示了如何编写工具类加载配置文件。 用户的需求是创建添加MyBatis配置文件,所以需要分步骤讲解如何创建核心配置文件mybatis-config.xml,以及映射文件如UserMapper.xml。根据引用内容,步骤可能包括: 1. 创建Maven项目并添加依赖:用户可能需要在pom.xml中加入MyBatis和数据库驱动的坐标,如引用[1]和[2]提到的。 2. 创建核心配置文件:位置在resources目录下,配置数据库连接、事务管理器、别名、映射文件路径等,如引用[3]所述。 3. 创建映射文件:与Mapper接口对应,定义SQL语句,并配置到核心文件中,如引用[1]和[2]中的UserMapper.xml。 4. 日志配置:如引用[1]提到的log4j,或引用[2]中的logback.xml。 5. 测试配置是否正确:使用工具类加载配置文件,获取SqlSession,如引用[4]的MybatisUtils类。 需要注意的细节包括配置文件的正确路径、XML结构是否符合要求,以及如何将映射文件注册到核心配置中。例如,引用[3]提到全局配置文件包含数据库连接和映射文件信息,而引用[2]中的步骤8到步骤11涉及创建User类和Mapper接口及映射文件,并配置mappers标签。 用户可能需要具体的示例代码,如mybatis-config.xml的内容,以及如何配置各个部分。同时,可能的问题包括依赖未正确添加、配置文件路径错误、XML格式错误等,需要提醒用户检查这些常见问题。 最后,根据用户要求生成相关问题,可能需要围绕配置文件的优化、高级功能、多环境配置等展开。确保引用标记正确,如引用[^3]关于配置文件的作用,引用[^4]关于工具类加载配置。</think>### MyBatis配置文件创建添加教程(含示例) 以下为创建和配置MyBatis核心配置文件的详细步骤,整合了引用内容中的关键配置要点: #### 一、创建Maven项目 1. 在pom.xml添加依赖: ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> ``` #### 二、创建核心配置文件(mybatis-config.xml) 在`src/main/resources`目录下新建: ```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> <!-- 数据库配置 --> <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/mydb"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- 映射文件注册 --> <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers> <!-- 开启日志功能(需logback依赖) --> <settings> <setting name="logImpl" value="SLF4J"/> </settings> </configuration> ``` *引用说明:全局配置文件需包含数据库连接、事务管理、映射文件注册等核心配置* #### 三、创建映射文件(示例) 在`src/main/resources/mapper`目录下创建UserMapper.xml: ```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.example.mapper.UserMapper"> <select id="selectUser" resultType="User"> SELECT * FROM users WHERE id = #{id} </select> </mapper> ``` #### 四、配置工具类(可选) 使用引用[4]中的工具类加载配置: ```java public class MybatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { throw new RuntimeException("加载配置文件失败", e); } } public static SqlSession getSqlSession() { return sqlSessionFactory.openSession(); } } ``` #### 五、验证配置 ```java public class TestDemo { public static void main(String[] args) { try (SqlSession session = MybatisUtils.getSqlSession()) { UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUser(1); System.out.println(user); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值