项目搭建系列之二:SpringMVC框架下配置MyBatis

1、什么是MyBatis?

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

回到目录

2、环境准备

 【MyBatis

<!-- mybatis begin -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.2.3</version>
</dependency>
<!-- mybatis end -->    

 【MYSQL驱动包】

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.31</version>
</dependency>
  • 创建数据库

CREATE DATABASE mybatis_test;
USE mybatis_test;
CREATE TABLE user (
  name varchar(50) CHARACTER SET utf8 DEFAULT NULL,
  age int(11) DEFAULT NULL,
  UNIQUE KEY name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

回到目录

3、MyBatis配置使用

  • 新建一个实体类User.java

package cn.jxufe.web.mybatis;

public class User {
    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public User(String name, Integer age) {
        super();
        this.name = name;
        this.age = age;
    }

    public User() {
        super();
    }
}

  • 新建一个映射文件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的值是唯一的 --><mapper namespace="cn.jxufe.web.mybatis.UserMapper">
    <!-- 这里namespace必须是UserMapper接口的路径,不然要运行的时候要报错 “is not known to the MapperRegistry” -->
    <insert id="insertUser" parameterType="User">
        insert into user(name,age) values(#{name},#{age})
        <!-- 这里sql结尾不能加分号,否则报“ORA-00911”的错误 -->
    </insert>
  <!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,    不能够重复使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 -->
    <!-- 这里的id必须和UserMapper接口中的接口方法名相同,不然运行的时候也要报错 -->
    <select id="getUser" resultType="User" parameterType="java.lang.String">
        select * from user where name=#{name}
    </select>
</mapper>  

  • 新建一个接口类UserMapper.java

package cn.jxufe.web.mybatis;

public interface UserMapper {
    public void insertUser(User user);

    public User getUser(String name);
}

  • 新建配置文件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">   

<configuration>
    <settings>
        <!-- changes from the defaults for testing -->
        <setting name="cacheEnabled" value="false" />
        <setting name="useGeneratedKeys" value="true" />
        <setting name="defaultExecutorType" value="REUSE" />
    </settings>
    <typeAliases>
       <typeAlias alias="User" type="cn.jxufe.web.mybatis.User"/>
    </typeAliases>
    <environments default="development">
       <environment id="development">
           <transactionManager type="jdbc"/>          <!-- 配置数据库连接信息 -->
           <dataSource type="POOLED">
              <property name="driver" value="com.mysql.jdbc.Driver"/>
              <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis_test"/>
              <property name="username" value="root"/>
              <property name="password" value="123456"/>
           </dataSource>
       </environment>
    </environments>
    <mappers>
        <!-- 注册UserMapper.xml文件-->
        <mapper resource="mappers/UserMapper.xml" />
    </mappers>
</configuration>  

  • 新建一个工具类MyBatisUtil.java,用于创建SqlSessionFactory实例,每个数据库对应一个 SqlSessionFactory实例。

package cn.jxufe.web.mybatis;

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

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
    private final static SqlSessionFactory sqlSessionFactory;
    static {
        String resource = "mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            System.out.println(e.getMessage());

        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    }

    public static SqlSessionFactory getSqlSessionFactory() {
        return sqlSessionFactory;
    }
}

  • 测试调用

package cn.jxufe.web.mybatis;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

public class TestMyBatis {
    static SqlSessionFactory sqlSessionFactory = null;
    static {
        sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
    }

//    public static void main(String[] args) {
//        testAdd();
//        getUser();
//    }

    public static void testAdd() {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try {
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            User user = new User("lisi", new Integer(25));
            userMapper.insertUser(user);
            sqlSession.commit();// 这里一定要提交,不然数据进不去数据库中
        } finally {
            sqlSession.close();
        }
    }

    public static void getUser() {
        SqlSession sqlSession = sqlSessionFactory.openSession();
        try {
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            User user = userMapper.getUser("lisi");
            System.out.println("name: " + user.getName() + "|age: "
                    + user.getAge());
        } finally {
            sqlSession.close();
        }
    }
}

  • 工程目录结构

  • 测试结果

请参看以下资料:

http://www.spring.net

时间: 2024-10-01 06:34:38

项目搭建系列之二:SpringMVC框架下配置MyBatis的相关文章

项目搭建系列之三:SpringMVC框架下使用Ehcache对象、数据缓存

注明:该文章为以前写的文章,这里只更改了标题,无GitHub源码下载. 一.准备工作 如果已经成功搭建SpringMVC环境,那么就可以进入Ehcache的准备工作了.1.下载jar包    Ehcache 对象.数据缓存:    http://ehcache.org/downloads/destination?name=ehcache-2.9.0-distribution.tar.gz&bucket=tcdistributions&file=ehcache-2.9.0-distribut

项目搭建系列之四:SpringMVC框架下使用UrlRewrite实现地址重写

简单记录一下UrlRewrite实现地址重写功能. 1.pom.xml 在pom.xml增加配置UrlRewrite jar <!-- URL Rewrite --> <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>4.0.4</version> </dependen

springMVC框架下JQuery传递并解析Json数据

json作为一种轻量级的数据交换格式,在前后台数据交换中占领着很重要的地位.Json的语法很简单,採用的是键值对表示形式.JSON 能够将 JavaScript 对象中表示的一组数据转换为字符串,然后就能够在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给server端程序,也能够从server端程序传递json格式的字符串给前端并由前端解释.这个字符串是符合json语法的,而json语法又是javascript语法的子集,所以javascript很easy解释

spring框架下配置lucene

lucene特点及效果文章里就不说了,网上有的是.我就简单说下自己号码大全了解, 正常 sql 查询时:name like '%继中%' 想必咱们一定理解这样不会走索引关键词挖掘的,然后就在多行数据等级查询相应时刻会很慢,对吧,由于数据库在一行行扫呢.所以咱们自然会想到怎样能让它走索引? 解决方案之一:lucene出来了. 本来它即是帮你把文章拆分红若干个关键字,这样以便按关键字查询时能经过关键字直接查询来确定哪些文章匹配该关键字并疾速回来.说再直白点,即是 sql句子的查询不必like ,而是

SpringMVC框架入门配置 IDEA下搭建Maven项目

,初衷:本人初学SpringMVC的时候遇到各种稀奇古怪的问题,网上各种技术论坛上的帖子又参差不齐,难以一步到位达到配置好的效果,这里我将我配置的总结写到这里供大家初学SpringMVC的同僚们共同学习使用! 关于SpringMVC的介绍我就不在此赘述了,想必每一个配置Spring的人都已经或多或少了解过一些SpringMVC的基础知识,可能有的人用的myeclipse或者eclipse进行项目的搭建,我会告诉你这里步骤是很相似的,在myeclipse里面需要建立web项目,然后加入Spring

Tomcat服务器本地的搭建,以及在 IDEA软件下的配置,以及项目的测试运行(基于supermvc框架下的web)

一.声明 使用了基于springmvc的supermvc的web框架.实习公司的框架. 二.tomact的下载与安装 1选择适合自己电脑配置的jdk和jre版本(截图来自tomcat的官方网站http://tomcat.apache.org/whichversion.html) 我的电脑是jAVA版本是8,所以我可以选择任意版本的Apache Tomcat version. PS:如果你问我,java版本怎么看.(ー?ー|||)(1)在命令行中输入java -version (2)在高级系统设置

项目搭建系列之一:使用Maven搭建SpringMVC项目

约定电脑都安装了eclipse,且已配置好Maven以及eclipse插件. 1.Eclipse 2.maven 3.Eclipse 需要安装maven插件.url:maven - http://download.eclipse.org/technology/m2e/releases . 1.新建一个Maven Project 2.选择工作空间 3.搭建Web工程,我们选择maven-archetype-webapp类型 4.填写项目参数,如图 5.以上步骤完成时的工程结构目录 6.可以查看或修

SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显

在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/

springMVC框架下——通用接口之图片上传接口

我所想要的图片上传接口是指服务器端在完成图片上传后,返回一个可访问的图片地址. spring mvc框架下图片上传非常简单,如下 1 @RequestMapping(value="/uploadImg", method=RequestMethod.POST) 2 @ResponseBody 3 public String uploadImg(@RequestParam(value="img")MultipartFile img){ 4 File f = new Fi