MyBatis快速入门以及tkMybatis的使用

XML配置使用

在resource下进行配置:
如图:
在这里插入图片描述
SqlMapConfig的配置:

<?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="edu.xatu.Channel" alias="Channel"/>-->
        <package name="edu.xatu"/>
    </typeAliases>
    <!-- 配置 mybatis 的环境 -->
    <environments default="mysql">
        <!-- 配置 mysql 的环境 -->
        <environment id="mysql">
            <!-- 配置事务的类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置连接数据库的信息:用的是数据源(连接池) -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/cms"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 告知 mybatis 映射配置的位置 -->
    <mappers>
    <!-- 下面这些被注释的是手动配置映射位置-->
<!--        <mapper resource="edu/xatu/IChannel.xml"/>-->
<!--        <mapper resource="edu/xatu/dao/ChannelDao.xml"/>-->
<!--        <mapper resource="edu/xatu/dao/IChannelDao.xml"/>-->
<!--        <mapper class="edu.xatu.dao.IChannelDao"/>-->
	<!-- 下面的是自动配置映射,将放映射位置的包写在这,它将自动扫描-->
        <package name="edu.xatu"/>
    </mappers>
</configuration>

log4j.properties:(这个是默认的,可以直接照搬)

### set log levels ###
log4j.rootLogger = debug,E,INFO,S

### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出INFO到日志文件 ###
log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File = logs/info.log
log4j.appender.INFO.Append = true
log4j.appender.INFO.Threshold = INFO
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 输出到控制台 ###
log4j.appender.S=org.apache.log4j.ConsoleAppender
log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

然后我们就可以进行测验了:

@Test
    public void test1() {
        SqlSession session = null;
        try {
            //1.读取配置文件
            InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
            //2.创建 SqlSessionFactory 的构建者对象
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //3.创建SqlSessionFactory工厂
            SqlSessionFactory factory = builder.build(in);
            //4.使用 SqlSessionFactory 生产 SqlSession 对象
            session = factory.openSession();
            //5.执行添加
            Channel c = new Channel();
            c.setCid(32111);
            c.setCname("Mybatis");
            c.setDescription("Mybatis");
            int count = session.insert("edu.xatu.Channel.addChannel", c);//edu.xatu.Channel.addChannel查询配置的id
            if (count > 0) {
                System.out.println("添加成功!");
            } else {
                System.out.println("没添加成功!");
            }
            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            session.close();
        }
    }

这里我们就执行成功了。

注解使用

我们在面对简单的Sql语句的时候我们可以直接用注解来进行配置:

package edu.xatu.dao;

import edu.xatu.Channel;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface IChannelDao {
    @Insert("insert into t_channel(cid,cname,description) values(#{cid},#{cname},#{description});")
    public void addChannel(Channel channel);
    @Select("select * from t_channel;")
    public List<Channel> findAll();
    @Delete("select * from t_channel where cid=#{id};")
    public void delChannel(int id);
    @Select("select * from t_channel where cid=#{id};")
    public Channel findByCid(int id);
}

以上就是MyBaties的基本使用方法。
我在开发中用注解进行配置的多,但是当查询语句过于复杂我们也要使用xml进行配置。

tkMybatis的使用

承接上文的SSM整合继续:
tkMybatis将我们常用的Sql语句进行封装,大大减少了我们的工作量。
Maven引用:

        <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.1.5</version>
        </dependency>

我们将Dao层的代码进行改变:

package edu.xatu.dao;


import edu.xatu.entity.Channel;
import org.apache.ibatis.annotations.Insert;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

@Repository
public interface UserDao extends Mapper<Channel> {
//    @Insert("insert into t_channel (cid,cname,description) values(#{cid},#{cname},#{description})")
//    public void addChannel(Channel c);
}

只需要继承Mapper<>就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值