MyBatis 环境搭建 (一)

一、MyBatis简介

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

Mybatis的功能架构分为三层:

(1)       API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

(2)       数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。

(3)      基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。

为上层的数据处理层提供最基础的支撑。

二、环境搭建

1.创建项目

2.创建数据库、表

CREATE TABLE `user` (
  `userId` int(11) NOT NULL AUTO_INCREMENT,
  `loginName` varchar(25) NOT NULL,
  `passWord` varchar(25) NOT NULL COMMENT ‘密码‘,
  `userName` varchar(22) NOT NULL COMMENT ‘真实姓名‘,
  `creatDate` datetime NOT NULL,
  PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=2015090005 DEFAULT CHARSET=utf8;

INSERT INTO `user` VALUES (‘2015090004‘, ‘jalja‘, ‘111111‘, ‘JALJA‘, ‘2015-09-05 21:46:59‘);

3.定义实体类(User.java)

package com.jalja.myBatis.model;

import java.util.Date;

public class User {
    private int userId;
    private String loginName;
    private String passWord;
    private String userName;
    private Date creatDate;
    public int getUserId() {
        return userId;
    }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getLoginName() {
        return loginName;
    }
    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }
    public String getPassWord() {
        return passWord;
    }
    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public Date getCreatDate() {
        return creatDate;
    }
    public void setCreatDate(Date creatDate) {
        this.creatDate = creatDate;
    }
}

4、添加Mybatis的配置文件myBatis-data.xml 以及数据库配置文件jdbc.properties

   jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3307/blog
jdbc.username=root
jdbc.password=111111

myBatis-data.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">
  <configuration>
        <!-- 引用jdbc.properties配置文件 -->
      <properties resource="com/jalja/myBatis/resources/jdbc.properties"/>
      <environments default="development">
          <environment id="development">
              <transactionManager type="JDBC" />
              <!-- 配置数据库连接信息 -->
              <dataSource type="POOLED">
                   <property name="driver" value="${jdbc.driverClassName}"/>
                 <property name="url" value="${jdbc.url}"/>
                 <property name="username" value="${jdbc.username}"/>
                 <property name="password" value="${jdbc.password}"/>
             </dataSource>
         </environment>
     </environments>
 </configuration>

5.创建一个com.jalja.myBatis.model.mapper包,专门用于存放sql映射文件,在包中创建一个userMapper.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,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的
        例如namespace="com.jalja.myBatis.model.mapper。userMapper"就是com.jalja.myBatis.model.mapper(包名)+userMapper(userMapper.xml文件去除后缀)
   -->
  <mapper namespace="com.jalja.myBatis.model.mapper。userMapper">
      <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复
                     使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型
      resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回
     User类就是users表所对应的实体类
     -->
     <!-- 根据id查询得到一个user对象 -->
     <select id="findUserById" parameterType="int" resultType="com.jalja.myBatis.model.User">
         select * from user where userId=#{userId}
     </select>
     <!-- 创建用户(Create) -->
     <insert id="addUser" parameterType="com.jalja.myBatis.model.User">
         insert into user(loginName,passWord,userName,creatDate) values(#{loginName},#{passWord},#{userName}, NOW())
     </insert>
      <!-- 修改用户(Update) -->
     <update id="updateUser" parameterType="com.jalja.myBatis.model.User">
         update user set loginName=#{loginName},passWord=#{passWord} where userId=#{userId}
     </update>
       <!-- 删除用户(Remove) -->
     <delete id="deleteUser" parameterType="int">
         delete from user where userId=#{userId}
     </delete>
      <!-- 查询全部用户-->
    <select id="finaUsersAll" resultType="com.jalja.myBatis.model.User">
         select * from user
    </select>
 </mapper>

6.在myBatis-data.xml 文件中注册userMapper.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">
  <configuration>
        <!-- 引用jdbc.properties配置文件 -->
      <properties resource="com/jalja/myBatis/resources/jdbc.properties"/>
      <environments default="development">
          <environment id="development">
              <transactionManager type="JDBC" />
              <!-- 配置数据库连接信息 -->
              <dataSource type="POOLED">
                   <property name="driver" value="${jdbc.driverClassName}"/>
                 <property name="url" value="${jdbc.url}"/>
                 <property name="username" value="${jdbc.username}"/>
                 <property name="password" value="${jdbc.password}"/>
             </dataSource>
         </environment>
     </environments>

     <mappers>
         <!-- 注册userMapper.xml文件,  userMapper.xml位于com.jalja.myBatis.mapper这个包下,              所以resource写成com/jalja/myBatis/model/mapper/userMapper.xml-->
        <mapper resource="com/jalja/myBatis/model/mapper/userMapper.xml"/>
     </mappers>
 </configuration>

7、创建sqlSession SqlSession对象的主要功能是完成一次数据库的访问和结果的映射,它类似于数据库的session概念,

由于不是线程安全的,所以SqlSession对象的作用域需限制方法内。SqlSession的默认实现类是DefaultSqlSession,

它有两个必须配置的属性:Configuration和Executor

package com.jalja.myBatis.util;

import java.io.IOException;
import java.io.Reader;

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 MyBatisBaseUtil {
    public static SqlSession getSqlSession() throws IOException{
        String conf="com/jalja/myBatis/resources/myBatis-data.xml";
         Reader reader = Resources.getResourceAsReader(conf);
             //构建sqlSession的工厂
         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
            //创建能执行映射文件中sql的sqlSession
         SqlSession sqlSession = sessionFactory.openSession();
         return sqlSession;
    }
    public static void closeSqlSession(SqlSession sqlSession){
        if(sqlSession!=null){
            sqlSession.close();
        }
    }
    public static void main(String[] args) throws IOException {
        System.out.println(getSqlSession());
    }
}

8、测试

public List<User> finaUsersAll() {
        String sql = "com.jalja.myBatis.model.mapper。userMapper.finaUsersAll";
        SqlSession sqlSession=null;
        List<User> list=null;
        try {
            sqlSession=MyBatisBaseUtil.getSqlSession();
            list=sqlSession.selectList(sql);
            System.out.println("finaUsersAll===>"+list.get(0).getLoginName());// jalja
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            MyBatisBaseUtil.closeSqlSession(sqlSession);
        }
        return list;
    }
时间: 2024-08-08 20:33:53

MyBatis 环境搭建 (一)的相关文章

MyBatis之MyBatis环境搭建

MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1.9.6.jar asm-5.1.jar cglib-3.2.4.jar commons-logging-1.2.jar javassist-3.21.0-GA.jar log4j-1.2.17.jar log4j-api-2.3.jar log4j-core-2.3.jar ognl-3.1.12

springmvc+mybatis环境搭建

1.spring+mybatis 环境搭建: A.配置jdbc和dbcp数据源:注意版本com.mysql.cj.jdbc.Driver B.配置sessionfactory,绑定dbcp及配置mapper文件命名规范, C.配置mapper文件所在包 *注意调整mysql数据库时区,否则将报错,可参考如下: MySQL之--Ignoring query to other database问题 https://blog.csdn.net/l1028386804/article/details/5

【AngularJS】AngularJS整合Springmvc、Mybatis环境搭建

近期想学习AngularJS的使用,网上搜了一圈后,折腾了半天解决bug后,成功使用AngularJS整合Springmvc.Spring.Mybatis搭建了一个开发环境.(这里Spring使用的版本号是4.0.6,Mybatis版本号是3.2.5,AngularJS的版本号是1.0.3) 博客最后有源代码链接 第一步:创建一Maven项目.在pom.xml下加入须要的包 <project xmlns="http://maven.apache.org/POM/4.0.0" xm

SpringMVC + MyBatis 环境搭建(转)

本文转自:http://blog.csdn.net/zoutongyuan/article/details/41379851 源码地址:https://github.com/starzou/quick4j 点击打开 看我们的项目结构: 是一个典型的Maven 项目 : src/main/java:存放java源文件src/main/resources:存放程序资源.配置文件src/test/java:存放测试代码文件src/main/webapp:web根目录pom.xml : maven项目配

Spring与Mybatis环境搭建 【转】

SH框架的结合几乎家喻户晓,但是一般的中小项目,使用Spring和MyBatis就够了,而且MyBatis轻便好使,易上手,值得大家尝试一次. 开篇简介: Spring: Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. 两个重要模块:Spring 面向方面编程(AOP)和控制反转 (IOC) 容器. 控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务. 容器 (

02 mybatis环境搭建 【spring + mybatis】

1 导包 1 <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"> 2 <m

Spring与Mybatis环境搭建

SSH框架的结合几乎家喻户晓,但是一般的中小项目,使用Spring和MyBatis就够了,而且MyBatis轻便好使,易上手,值得大家尝试一次. 开篇简介: Spring: Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. 两个重要模块:Spring 面向方面编程(AOP)和控制反转 (IOC) 容器. 控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务. 容器

springboot集成mybatis环境搭建以及实现快速开发微服务商品模块基本的增删改查!

之前学习了springboot和mybatis3的一些新特性,初步体会了springboot的强大(真的好快,,,,,),最近趁着复习,参考着以前学习的教程,动手写了一个springboot实战的小例子! 一 创建表以及实体 使用简单的五个字段商品表,主键采用UUID字符串,价格使用BigDecimal,本来是想在linux数据库中建立表的,实在是懒不想启动虚拟机(这么简单也觉得没必要),,sql语句如下: create table products( pid varchar(32) not n

Mybatis 环境搭建

Mybatis框架是:定制SQL,存储过程,高级映射,的持久层框架,用于替代JDBC进行对数据库进行相关的操作 第一步: 引入相关的jar包 其中包括mybatis-libs\mybatis-3.4.0.jar和mysql-libs\mysql-connector-java-5.1.39.jar 第二步:创建mybatis-config.xml <?xml version="1.0" encoding="UTF-8"?><!-- MyBatis的核