MyBatis框架配置文件

1.倒入mysql驱动 , c3p0连接池 ,mybatis依赖

//mysql驱动依赖
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.40</version>
</dependency>
//c3p0依赖
<dependency>
  <groupId>com.mchange</groupId> 
  <artifactId>c3p0</artifactId> 
  <version>0.9.5.2</version> 
</dependency>
//mybatis依赖
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.2</version>
</dependency>
//log4j依赖
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
</dependency>

MyBatis的xml映射文件:mybatis-config.xml

c3p0连接连接数据库

<?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>
     <!-- 引入外部资源文件,将数据库配置设为外部链接 -->
    <properties resource="database.properties"></properties>
    <!--手动开启二级缓存 mybatis默认开启一级缓存 默认为true   false代表关闭-->
    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
    <!--起别名-->
    <typeAliases>
        <package name="cn.yhy.entity"/>
    </typeAliases>
    <!--环境变量-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <!--数据源   实现c3p0DataSourceFactory全类名-->
            <dataSource type="cn.yhy.utils.c3p0DataSourceFactory">
                <!--values写入database.properties中的具体名字 而不是写入具体值-->
                <property name="driverClass" value="${driverClass}"/>
                <property name="jdbcUrl" value="${jdbcUrl}"/>
                <property name="user" value="${user}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--注册sql的映射文件-->
        <mapper resource="static/CatMapper.xml"/>
        <!--注解的方式   映射对应的接口-->
        <mapper class="cn.yhy.mapper.CatMapperAnnotation"></mapper>
        <!--接口实现注解  映射mapper包下的所有接口-->
        <package name="cn.yhy.mapper"/>
    </mappers>
</configuration>

直连接数据库

<environments default="development">
         <environment id="development">
             <transactionManager type="JDBC" />
             <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.jdbc.Driver" />
                 <property name="url" value="jdbc:mysql://localhost:3306/kh_83" />
                 <property name="username" value="root" />
                 <property name="password" value="123456" />
             </dataSource>
         </environment>
     </environments>

database.properties外部文件的配置

# database.properties文件的配置
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/kh_83
user=root
password=123456

Utils工具类

c3p0链接池

public class c3p0DataSourceFactory extends UnpooledDataSourceFactory {
    public c3p0DataSourceFactory(){
        this.dataSource=new ComboPooledDataSource();
    }
}

读取mybatis-config.xml的通用方法

public class SSF {
    /**
     * 通用的读取xml文件
     * @return
     */
    public static SqlSessionFactory getSqlSessionFactory(){
            //接口
            SqlSessionFactory sqlSessionFactory=null;
            String resource = "mybatis-config.xml";
            InputStream inputStream = null;
            try {
            	//读取核心配置文件
                inputStream = Resources.getResourceAsStream(resource);
            } catch (IOException e) {
                e.printStackTrace();
            }
            //创建sqlSessionFactory工厂
            sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);
            return sqlSessionFactory;
    }
}

在相应的service中或者测试类中打开并加载相关文件

//使用工厂生产SqlSession对象
SqlSession session = SSF.getSqlSessionFactory().openSession();
//使用SqlSession 创建对应接口的代理对象
StudentMapper mapper = session.getMapper(StudentMapper.class);

编写sql 的映射文件

<?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">
<!--namespace和接口关联起来-->
<mapper namespace="cn.yhy.mapper.PersonMapper">
<!--id调用方法  type调用实体类-->
    <insert id="savePerson" parameterType="cn.yhy.entity.Person">
        insert into tbl_person(name,age,birth,registerTime,salary)
        values(#{name},#{age},#{birth},#{registerTime},#{salary})
    </insert>
    <update id="updatePerson" parameterType="cn.yhy.entity.Person">
        update tbl_person set name=#{name} where id=#{id}
    </update>
    <delete id="removePerson" parameterType="int">
        delete from tbl_person where id=#{id}
    </delete>
    <select id="getOne" resultType="cn.yhy.entity.Person" parameterType="int">
        select * from tbl_person where id=#{id}
    </select>
    <select id="getAll" resultType="cn.yhy.entity.Person">
        select * from tbl_person
    </select>
</mapper>

日志文件:log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE log4j:configuration SYSTEM
        "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration debug="true">

    <appender name="log.console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %5p (%C{1}:%M) - %m%n" />
        </layout>
    </appender>
    <!-- -->
    <logger name="org.apache.ibatis">
        <level value="info" />
        <appender-ref ref="log.console" />
    </logger>

    <logger name="cn.yhy">
        <level value="debug" />
        <appender-ref ref="log.console" />
    </logger>

</log4j:configuration>

测试类

public class Test {
    static SqlSessionFactory sqlSessionFactory=null;
    static {
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }
        sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
    }

    public static void main(String[] args) {

        SqlSession session=sqlSessionFactory.openSession();
        try  {
            PersonMapper mapper = session.getMapper(PersonMapper.class);
            //增加
//            Person person=new Person(null,"admin11",21,new Date(),new Date(),8900.0);
//            mapper.savePerson(person);

            //修改
//            Person person=new Person();
//            person.setId(3);
//            person.setName("123456");
//            mapper.updatePerson(person);

            //删除
//            mapper.removePerson(2);

            //查询所有
//            List<Person> all = mapper.getAll();
//            System.out.println(all);

            //查询一条数据
            Person one = mapper.getOne(3);
            System.out.println(one);
            //使用代理对象执行方法
            session.commit();
        }finally {
        	//释放资源
            session.close();
        }
    }
}

具体思路

1.倒入mysql ,c3p0, mybatis 依赖

2.编写实体类 编写功能接口(CRUD)

3.编写mybatis-config.xml核心配置文件及日志文件

1.主要是连接数据库 可选用直连接或者连接池连接

2.如果用c3p0连接需要创建一个utils包 创建一个c3p0DataSourceFactory类继承UnpooledDataSourceFactory,并把 dataSource 实现

3.在核心配置文件引入database.properties文件的配置 并且实现c3p0DataSourceFactory类的全类名

4.编写sql配置文件 ,编写后的xxxMapper.xml文件映射到

1.在配置文件中编写sql语句,和相应的功能接口关联起来,最后将sql配置文件给到核心配置文件中

5.测试

调用核心配置文件   并且读取文件 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值