初识MaBatis

初识MaBatis

1.编写xml文件,xml文件位置不限,名字不限制

(1)transactionManager

在 MyBatis 中有两种事务管理器类型(也就是 type=”[JDBC|MANAGED]”):

JDBC – 这个配置直接简单使用了 JDBC 的提交和回滚设置。 它依赖于从数据源得 到的连接来管理事务范围。

MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让 容器来管理事务的整个生命周期(比如 Spring 或 JEE 应用服务器的上下文) 默认 情况下它会关闭连接。 然而一些容器并不希望这样, 因此如果你需要从连接中停止 它,将 closeConnection 属性设置为 false

(2)<property name="password" value="${db.password}"/>这里并不是EL表达式,只是类似于EL表达式的代码

(3)<mapper resource="com/bjsxt/pojo/UserMapper.xml"></mapper>,这里读取User Mapper文件也不限制文件位置,但是只可以用/来表示其位置

(4)<settings><setting name="logImpl" value="LOG4J"/></settings>这里是使用MyBatis中的日志,可以获取日志信息。

(5)<properties resource="db.properties" />这里是为了读取配置文件,进行软配置,方便修改。

<?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="db.properties" />
    <!--指定MyBatis运行时环境的配置-->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    <!--配置环境 environments, 配置并管理多个环境-->
    <environments default="dev">
        <!--配置一个环境-->
        <environment id="dev">
            <!--事务管理器, MyBatis采用和JDBC一致的方式进行事务的管理-->
            <transactionManager type="JDBC" />
            <!--数据源, 使用连接池技术-->
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--扫描映射-->
    <mappers>
       <mapper resource="com/bjsxt/pojo/UserMapper.xml"></mapper>
    </mappers>
</configuration>

2.在这里从配置文件里面读取

(1)读取的配置文件都是从本模块或者本项目src下面开始读取

(2)sqlSession.selectList("a.b.c.selAll")这里读取并执行sql语句的时候,前面是<mapper namespace="a.b.c">这里的         namespace,也可以把这个属性值省略掉。

public void testSelAll() throws Exception {
        // Resources - 资源加载工具, 默认去classpath加载资源
        InputStream is = Resources.getResourceAsStream("mybatis.xml");
        // SqlSessionFactoryBuilder - 工厂构建者
        // SqlSessionFactory - 会话工厂
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
        // SqlSession - 会话, 用于所有mybatis中操作方法的调用
        SqlSession sqlSession = factory.openSession();
        // 调用方法进行查询
        List<User> list = sqlSession.selectList("a.b.c.selAll");
        System.out.println(list);
        for (User user : list) {
            System.out.println(user);
        }
        // 关闭资源
        sqlSession.close();
    }

3.这里是类的映射配置文件,名字,位置没有限制

(1)reg_time regTime,这里这样起名字是为了可以和实体类中的属性同名,方便获取,暂时只可以这样获取

<?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="a.b.c">
    <select id="selAll" resultType="com.bjsxt.pojo.User">
        select id, username, password, realname, age, birthday, reg_time regTime from tb_user
    </select>
</mapper>

4.这里是日志文件,文件名字是log4j.properties不可改,位置必须在src路径下,也不可改。

(1)log4j.logger.a.b.c=TRACE,这里的a.b.c是mapper配置文件的namespace属性,只要是TRANCE之上的都可以打印出来

# 设置log4j的根(整体)日志级别, 同时指定日志输出的位置: CONSOLE表示控制台, LOGFILE表示日志文件
log4j.rootCategory=ERROR, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE

# 设置局部位置的日志级别
log4j.logger.a.b.c=TRACE

# 设置控制台日志输出的格式
# 常用符号
# %m: message, 日志消息
# %n: 回车换行
# %d: 日期时间, 可以自定义日期时间格式, %d{yyyy-MM-dd HH:mm:ss}
# %p: 日志级别
# %l: 日志发生的具体位置
# %c: 定位, 包名.类名
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- [%p] %m%n

# 设置日志文件中日志输出的格式
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:/test.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值