MyBatis-HelloWord

首先需要创建一个快捷Maven项目,并添加MyBatis依赖

 1 <dependency>
 2     <groupId>org.mybatis</groupId>
 3     <artifactId>mybatis</artifactId>
 4     <version>3.5.1</version>
 5 </dependency>
 6 <dependency>
 7     <groupId>mysql</groupId>
 8     <artifactId>mysql-connector-java</artifactId>
 9     <version>5.1.6</version>
10 </dependency>

在 resources 文件夹中创建配置文件(SqlMapConfig.xml  这里为 Config.xml)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 3     "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5     <!-- 配置数据源相关属性和事务 -->
 6     <environments default="development">
 7         <!-- 可以配置多个数据源环境,默认使用default中的值 -->
 8         <environment id="development">
 9             <!-- 使用jdbc的事务管理 -->
10             <transactionManager type="JDBC" />
11             <!-- 配置数据源,并使用自带数据库连接池 -->
12             <dataSource type="POOLED">
13                 <property name="driver" value="com.mysql.jdbc.Driver" />
14                 <property name="url"
15                     value="jdbc:mysql://localhost:3306/mysqldb?characterEncoding=utf-8" />
16                 <property name="username" value="root" />
17                 <property name="password" value="root" />
18             </dataSource>
19         </environment>
20     </environments>
21     <!-- 配置映射文件,可配置多个 -->
22     <mappers>
23         <mapper resource="com/neusoft/po/Emp.xml" />
24     </mappers>
25 </configuration>

关于xml文件创建 

 

 

 

 下载链接:

1 http://mybatis.org/dtd/mybatis-3-config.dtd
2 http://mybatis.org/dtd/mybatis-3-mapper.dtd

 

使用log4j输出日志
1 <!-- 使用log4j输出更多的日志信息 -->
2 <dependency>
3     <groupId>log4j</groupId>
4     <artifactId>log4j</artifactId>
5     <version>1.2.17</version>
6 </dependency>
  1. 在resources文件夹中添加log4j配置文件(log4j.properties)
    ### direct log messages to stdout ###
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
    ### direct messages to file mylog.log ###
    ### log4j.appender.file=org.apache.log4j.FileAppender
    ### log4j.appender.file.File=d:mylog.log
    ### log4j.appender.file.layout=org.apache.log4j.PatternLayout
    ### log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n
    ### set log levels - for more verbose logging change 'debug?info?warn?error' ###
    ### log4j.rootLogger=debug,stdout,file
    log4j.rootLogger=debug,stdout

     

    创建po类

    创建 Emp.java类 

     

     

    在 po 类所在包下(在 resources 文件夹中),创建相同名称的映射文件:Emp.xml

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    3     "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    4 <mapper namespace="emp">
    5     <select id="getEmpById" parameterType="int" resultType="com.neusoft.po.Emp">
    6         select * from emp where empno = #{empno}
    7     </select>
    8 </mapper>

     

    注意: mapper标签:映射文件的根标签。 mapper标签namespace属性:命名空间,对sql进行分类管理,可防止id重复

    select标签:表示查询。 select标签id属性:此属性要唯一。这个id可称为statement的id。 select标签parameterType属性:sql参数的类型。 select标签resultType属性:sql语句执行后返回的类型。

    sql语句:

    {}: 表示sql参数,一个占位符。

    当parameterType属性为对象类型时:#{} 中的参数名为对象的属性名。 当parameterType属性为单个值时,参数名可以任意。

     

    从映射文件中可以看到:MyBatis会根据字段名与实体对象中的属性名进行映射,从而实现自动将查询数据注入到实体对象的每一个属性中。这就是输出映射。

     

     

     

    测试

    package com.neusoft.MyBatis00;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.List;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    import com.neusoft.MyBatis00.dao.DeptDao;
    import com.neusoft.MyBatis00.dao.EmpDao;
    import com.neusoft.MyBatis00.po.Dept;
    import com.neusoft.MyBatis00.po.Emp;
    
    public class Test {
        public static void main(String[] args) {
            try {
                InputStream is = Resources.getResourceAsStream("Config.xml");
                SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
                SqlSession ss = ssf.openSession();
    
                DeptDao dd = ss.getMapper(DeptDao.class);
                Dept d = dd.getDeptBydeptno(10);
                System.out.println(d);
    
                EmpDao ed = ss.getMapper(EmpDao.class);
                List<Emp> elist = ed.getEmpListBydeptno(20);
                System.out.println(elist);
                
                ss.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally {
                // 关闭数据库会话
                
            }
        }
    }

     

<!-- 使用log4j输出更多的日志信息 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>

posted @ 2021-09-27 11:36  喵酱爱吃鱼  阅读(59)  评论(0编辑  收藏  举报