mybatis 1

  想要使用一个MyBaties首先我们需要把架包下载好,
架包如下图所示

这里写图片描述
  我们把架包放入项目中的lib文件夹后创建一个resources的文件夹。创建方式如下:
  选中项目名→右键→鼠标悬浮在new这个选项→看到Source Folder后单击。然后会弹出以下框。
注意:这个文件夹的命名必须为resources
这里写图片描述
  然后我们单击finish就创建好了这个文件夹。然后我们在resources文件夹下创建一个database.properties文件,一个log4j.properties的文件,一个mybatis-config.xml文件。
  database.properties文件配置如下

    #MySql的JDBC驱动
    driver=com.mysql.jdbc.Driver
    #url=jdbc:mysql://本机ip地址:mysql的端口号/数据库名/转码
    url=jdbc:mysql://127.0.0.1:3306/prisoner? useUnicode=true&characterEncoding=utf-8
    #Mysql的用户名
    user=root
    #密码
    password=123
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

  log4j.properties的配置文件只需把以下代码放复制进去就可以了

log4j.rootLogger=DEBUG,CONSOLE,file
#log4j.rootLogger=ERROR,ROLLING_FILE
log4j.logger.cn.smbms.dao=debug
log4j.logger.com.ibatis=debug 
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug 
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug 
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug 
log4j.logger.java.sql.Connection=debug 
log4j.logger.java.sql.Statement=debug 
log4j.logger.java.sql.PreparedStatement=debug 
log4j.logger.java.sql.ResultSet=debug 
log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=error
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=error
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n
log4j.logger.com.opensymphony.xwork2=error  
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

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

<!-- 通过这个配置文件完成mybatis与数据库的连接 -->
<configuration>
    <!-- resource="database.properties"引入外部样式  优先外部样式 -->
    <properties resource="database.properties"/>
    <!-- 配置mybatis的log实现为LOG4J -->
    <settings>
        <setting name="logImpl" value="LOG4J" />
    </settings>
    <environments default="development">
        <environment id="development">
            <!--配置事务管理,采用JDBC的事务管理  -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${user}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 将mapper文件加入到配置文件中 -->
    <mappers>
        <mapper resource="com/t/dao/typeMapper.xml"/>
    </mappers>
</configuration>
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

  弄完配置文件我们分层一个Entity实体层、dao层、test测试层和util工具层
如下图所示:
这里写图片描述
  实体层typeEntity代码

package com.t.entity;
public class typeEntity {
    private int tid;
    private String typename;
    private int ftid;
    public int getTid() {
        return tid;
    }
    public void setTid(int tid) {
        this.tid = tid;
    }
    public String getTypename() {
        return typename;
    }
    public void setTypename(String typename) {
        this.typename = typename;
    }
    public int getFtid() {
        return ftid;
    }
    public void setFtid(int ftid) {
        this.ftid = ftid;
    }
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

  util工具层MyBatisUtil.java代码

package com.t.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
    //声明一个私有SqlSessionFactory
    private static SqlSessionFactory sf;
    //程序一开始运行时就获得sf对象
    static{
        try {
            InputStream in =  Resources.getResourceAsStream("mybatis-config.xml");
            sf = new SqlSessionFactoryBuilder().build(in);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //获得执行对象
    public static SqlSession getSqlSession(){
        return sf.openSession();
    }
    //关闭执行对象
    public static void closeSqlSession(SqlSession s){
        if(s!=null){
            s.close();
        }
    }
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

  dao层typeMapper.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">
<!--
    namespace="接口路径"
    resultType="返回值"
    parameterType="传进来的参数类型"
    我这里返回的是一个实体
    里面用了sql的动态拼接
    如果name!=null并且name!=""就拼接字符串
    typename like concat('%',#{name},'%')是模糊查询
-->
<mapper namespace="com.t.dao.typeMapper">
    <select id="selectType" resultType="com.t.entity.typeEntity" parameterType="String">
        select * from type
        <if test="name!=null and name!=''">
            where typename like concat('%',#{name},'%')
        </if>
    </select>
</mapper>
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

  dao层typeMapper.java的代码:

package com.t.dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.t.entity.typeEntity;
public interface typeMapper {
    /**
     * @Param("name")引号里面的命名必须和typeMapper中#{name}占位符的{}里面的命名一样
     */
    public List<typeEntity> selectType(@Param("name") String name);
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

  test测试层test.java的代码:

package com.t.test;
import java.util.List;
import com.t.dao.typeMapper;
import com.t.entity.typeEntity;
import com.t.util.MyBatisUtil;
public class Test {
    public static void main(String[] args) {
        /**
         * 因为我传的是一个""没有值,并且我的是一个模糊查询所以能查询全部数据
         * typeMapper.class是dao层的接口
         * selectType("")是dao层typeMapper.java里面的方法
         */
        List<typeEntity> tlist = MyBatisUtil.getSqlSession().getMapper(typeMapper.class).selectType("");
        for (typeEntity t : tlist) {
            System.out.println(t.getTypename());
        }       
    }
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

  我在mysql里面的某个数据库新建一个表,表内容如下图:
这里写图片描述
  我查询出的数据如下图所示:
这里写图片描述
  这就完成了一个简单的模糊查询功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值