MyBatis框架配置与使用1

来源:互联网 发布:js怎么隐藏标签 编辑:程序博客网 时间:2024/05/21 19:50

  想要使用一个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

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

log4j.rootLogger=DEBUG,CONSOLE,file#log4j.rootLogger=ERROR,ROLLING_FILElog4j.logger.cn.smbms.dao=debuglog4j.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=debuglog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.Threshold=errorlog4j.appender.CONSOLE.Target=System.outlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%nlog4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.DatePattern=yyyy-MM-ddlog4j.appender.file.File=log.loglog4j.appender.file.Append=truelog4j.appender.file.Threshold=errorlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%nlog4j.logger.com.opensymphony.xwork2=error  

  mybatis-config.xml文件配置如下所示:

    <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//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>

  弄完配置文件我们分层一个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;    }}

  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();        }    }}

  dao层typeMapper.xml的代码:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapperPUBLIC "-//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>

  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);}

  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());        }           }}

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

原创粉丝点击