Mybatis(一)创建项目

来源:互联网 发布:苹果吉他软件效果器 编辑:程序博客网 时间:2024/06/05 20:40

 1.      在数据库里建立需要的表

DROPTABLE IF EXISTS `emp`;

CREATETABLE `emp` (

  `empno` int(4) NOT NULL,

  `ename` varchar(10) DEFAULT NULL,

  `job` varchar(9) DEFAULT NULL,

  `mgr` int(4) DEFAULT NULL,

  `sal` double(7,2) DEFAULT NULL,

  `comm` varchar(7) DEFAULT '',

  `deptno` int(2) unsigned zerofill DEFAULTNULL,

  PRIMARY KEY (`empno`)

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

------------------------------

--Records of emp

------------------------------

INSERTINTO `emp` VALUES ('102', 'errchu', 'developer', '1455', '5500.00', '14.00','10');

INSERTINTO `emp` VALUES ('104', 'huyong', 'pm', '1455', '5500.00', '14.00', '10');

INSERTINTO `emp` VALUES ('105', 'wangjing', 'developer', '1455', '5500.00', '14.00','10');

INSERTINTO `emp` VALUES ('7369', 'smith', 'clerk', '7902', '800.00', null, '20');

INSERTINTO `emp` VALUES ('7566', 'jones', 'manager', '7839', '2975.00', null, '20');

INSERTINTO `emp` VALUES ('7782', 'clark', 'manager', '7839', '2450.00', null, '10');

INSERTINTO `emp` VALUES ('7788', 'scott', 'analyst', '7566', '4000.00', null, '20');

INSERTINTO `emp` VALUES ('7839', 'king', 'president', null, '5000.00', null, '10');

INSERTINTO `emp` VALUES ('7876', 'adams', 'clerk', '7788', '1100.00', null, '20');

INSERTINTO `emp` VALUES ('7902', 'ford', 'analyst', '7566', '3000.00', null, '20');

INSERTINTO `emp` VALUES ('7934', 'miller', 'clerk', '7782', '1300.00', null, '10');

INSERTINTO `emp` VALUES ('18012', 'tom', 'pm', '105', '2100.00', '18', '20');

INSERTINTO `emp` VALUES ('18013', 'crystal', 'pm', '102', '2100.00', '18', '20');

INSERT INTO `emp` VALUES ('18016', '阿诗丹顿', 'Mon','102', '2100.00', '14', '20');

2.      新建MAVEN项目

3.      建包

4.      配置文件

1)      数据库配置文件

mysql.driver =com.mysql.jdbc.Driver
mysql.url = jdbc:mysql://127.0.0.1:3306/scott?useUnicode=true&characterEncoding=utf-8
mysql.userName =root
mysql.password =123456

 

2)      log4j配置文件

log4j.rootLogger=DEBUG, Console#Consolelog4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%nlog4j.logger.java.sql.ResultSet=INFOlog4j.logger.org.apache=INFOlog4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG

 

3)      mybatis配置文件

<?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"/>   <!--全局属性设置  涉及到数据库的执行效率,比较重要-->   <settings>      <setting name="cacheEnabled" value="true" />      <!--对查询结果进行缓存-->      <setting name="lazyLoadingEnabled" value="true" />      <!--延迟加载,提高效率-->      <setting name="multipleResultSetsEnabled" value="true" />      <!--单条语句返回多个结果集-->      <setting name="useColumnLabel" value="true" />      <!--支持别名查询-->      <setting name="useGeneratedKeys" value="false" />      <!--允许jdbc自动生成主键-->      <setting name="defaultExecutorType" value="SIMPLE" />      <!--配置设定执行器,包括simple-->        <setting name="defaultStatementTimeout" value="25000"/>      <!--设置时限-->   </settings>   <!-- 类别名配置(两种方式,一种是直接为某个类设置别名,一种是为某个包下所有类设置别名) -->   <typeAliases>      <!--&lt;!&ndash;为具体类设计别名,别名由alias属性指定 &ndash;&gt;      <typeAlias type="com.neusoft.train.demo.mybatis.entity.Emp" alias="_User"/>-->      <!--整个包设置别名,默认别名为去掉包后的类名 -->      <package name="com.mybatis.myself.entity "/>   </typeAliases>   <!-- 数据转换处理器(mybatis数据类型与java数据类型转换,可自定义)-->   <!--<typeHandlers>      <typeHandler handler=""  />    </typeHandlers>   -->   <!--&lt;!&ndash; 插件配置-->   <!--<plugins>-->      <!--<plugin interceptor=" ">-->         <!--<property name="" value=""/>-->      <!--</plugin>-->   <!--</plugins>&ndash;&gt;-->   <!--环境配置 -->   <environments default="development">   <environment id="development">      <transactionManager type="JDBC" />      <!-- 配置数据库连接信息 -->      <dataSource type="POOLED">         <!-- value属性值引用db.properties配置文件中配置的值 -->         <property name="driver" value="${mysql.driver}" />         <property name="url" value="${mysql.url}" />         <property name="username" value="${mysql.userName}" />         <property name="password" value="${mysql.password}" />      </dataSource>   </environment></environments>   <!-- 引入映射文件-->   <mappers>   </mappers></configuration>

4)      pom.xml文件

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>mybatis</groupId>    <artifactId>mybatisex01</artifactId>    <version>1.0-SNAPSHOT</version>    </project>

在里面添加其他的依赖包

<dependencies>    <!-- mybatis依赖包 -->    <dependency>        <groupId>org.mybatis</groupId>        <artifactId>mybatis</artifactId>        <version>3.2.8</version>    </dependency>    <dependency>        <groupId>org.mybatis</groupId>        <artifactId>mybatis-spring</artifactId>        <version>1.2.2</version>    </dependency>    <!-- mysql依赖包 -->    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.26</version>    </dependency>    <dependency>        <groupId>cglib</groupId>        <artifactId>cglib</artifactId>        <version>2.2.2</version>    </dependency>    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>4.8</version>    </dependency>    <dependency>        <groupId>log4j</groupId>        <artifactId>log4j</artifactId>        <version>1.2.17</version>    </dependency></dependencies>

 

添加依赖包以后记得reimport,具体步骤:选中项目—>右键MAVEN—>reimport

 

5.      添加实体类,接口,工具类以及xml配置文件

1)      工具类

public class MybatisUtil {   private static SqlSessionFactory sqlSessionFactory;   //初始化SqlSessionFactory   static {      String log4jPath="F:\\IdeaProjects\\mybatisex01\\src\\main\\resources\\log4j.properties";      PropertyConfigurator.configure(log4jPath);      //mybatis配置文件路径      String configPath = "mybatis-config.xml";      Reader reader = null;      try {         reader = Resources.getResourceAsReader(configPath);         sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);      } catch (IOException e) {         System.out.println("mybatis配置文件读取失败:" + e.getStackTrace());      }   }   /**    * 获取SqlSessionFactory    *    * @return    */   public static SqlSessionFactory getSqlSessionFactory() {      return sqlSessionFactory;   }}

 

2)      emp员工实体类

    public class Emp {    private int empno;//员工编号    private String ename;//姓名    private String job;//工作    private int mgr;//上级    private double sal;//工资
    private String comm; //奖金    private int deptno;//部门编号    }

并添加所有属性的get,set方法,并重写tostring方法

3)      添加员工接口

      public interface EmpMapper {      List<Emp> findEmpAll();      }

这里在接口添加了findEmpAll方法,接下来需要在resource文件的mapper里的xml文件里实现该名字的方法

4)      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" ><mapper namespace="com.mybatis.myself.mappers.EmpMapper">        </mapper>

接下来要在里面写具体的sql语句

<select id="findEmpAll" resultType="emp">    SELECT * FROM emp</select>

注意:这里面的id要和同名字接口方法一置

6.      在mybatis配置文件的mapper里添加刚刚写的xml文件

<!-- 引入映射文件--><mappers>   <mapper resource="mappers/EmpMapper.xml"/></mappers>

7.      测试

在test里添加测试类

public class EmpTest {     }

 

在里面添加测试代码

public void testAll(){    SqlSessionFactory sqlSessionFactory = MybatisUtil.getSqlSessionFactory();    SqlSession sqlSession = sqlSessionFactory.openSession();    EmpMapper empMapper = sqlSession.getMapper(EmpMapper.class);    List<Emp> emps = empMapper.findEmpAll();    for (Emp emp:emps){        System.out.println(emp.toString());    }}

最后在该方法上面添加@Test

@Test

8.      运行结果

 

结果上面为log4j打印的内容,可以看到执行的sql语句,参数以及结果数量

0 0
原创粉丝点击