MyBatis 使用笔记(1) 简介、安装、配置
2017-03-27 16:53
543 查看
之前做项目的时候,接触到服务器端开发,当时服务器是用SpringMVC做后台服务 MyBatis做数据库连接 Mysql数据库 在那之前 我只接触过JavaWeb的简单的Servlet的基本用法,在边学边开发的过程中学了一部分SpringMVC和MyBatis的技术 SpringMVC做接口 用到的东西比较少,主要是数据库处理操作用MyBatis的时候遇到各种问题。现在终于有时间来系统化一些的学习MyBatis。
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
https://github.com/mybatis/mybatis-3/releases
在这里 找最新版下载 我写这篇文章的时候 最新版是 3.4.2
下载后 我们得到一个 mybatis-3.4.2.zip 解压之后找到 mybatis-3.4.2.jar 这个jar文件。然后把它添加到我们的Java项目中的lib目录下再添加一下项目依赖。我们的项目就可以使用MyBatis了。
<注意>
为了能够让我们的项目正常连接到数据。我们还需要下载我们所使用的数据库的连接驱动 比如我使用的是mysql数据库 我就下载了 mysql-connector-java:5.1.41的驱动添加到项目的依赖库中。
MyBatis的配置可以放到一个文件里。也可以放到多个文件里。一个文件。是它的主配置文件,另一个文件是一些变动的配置信息 数据库连接信息。
下面我们先来看第一种配置方式(一个文件):mybatis-config.xml
这就是一个基本的一个文件的的配置MyBatis的方式,配置了包级别的别名定义,配置了一个MySQL数据库连接 还配置了一个映射器,我们先了解一下上面的内容。我们下面来看看两个文件的方式 具体的配置信息后面会做详细介绍
MyBatis两个文件的配置: mybatis-config.xml
jdbc.properties
好了。这里是两个配置文件来配置MyBatis的方式。可以看到 两个文件的这种方式 我们把数据库连接相关的信息都配置到了properties文件中 方便后期配置、维护等工作。 我们现在就用第二种 两个文件的这种方式来配置 MyBatis。
我们先来写一个简单的例子。让我们的MyBatis展现一下它的能力。
这是我们的基本的项目结构信息。
我们来看看我们的代码。
UserMapper.xml
数据库
DbUtils.java
来看看我们的UserMapper.java
User.java
来看看我们的HelloController.java
然后我们看看请求结果:
我们来看看我们程序里关键性代码:
首先 我们获取了全局的SqlSessionFactory 用它来创建了一个SqlSession对象,之后调用getMapper方法获得了传入的UserMapper类类型的对象 然后直接调用它的方法 来操作数据库。 UserMapper是一个接口 用来声明要对数据库做的sql操作。
这一篇 我们来基本的了解MyBatis的简介、安装、基础配置、简单用法。后面的文章 我会陆续的介绍MyBatis的更详细的东西。
2017/3/27
by brok1n
一:MyBatis 是什么?
关于这个问题,我想你能看到我这个笔记 你就应该能知道他是什么。这里我借用百度百科的一句话来描述 MyBatis是什么MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
二:MyBatis 能干什么?
简单来说,MyBatis能帮助我们快速开发基于Java + 数据库的程序,能帮助我们快速映射POJO对象和数据库中的数据 同时支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。三:安装MyBatis
安装MyBatis 就是在我们的项目中配置 添加MyBatis 让我们可以在项目中使用它。https://github.com/mybatis/mybatis-3/releases
在这里 找最新版下载 我写这篇文章的时候 最新版是 3.4.2
下载后 我们得到一个 mybatis-3.4.2.zip 解压之后找到 mybatis-3.4.2.jar 这个jar文件。然后把它添加到我们的Java项目中的lib目录下再添加一下项目依赖。我们的项目就可以使用MyBatis了。
<注意>
为了能够让我们的项目正常连接到数据。我们还需要下载我们所使用的数据库的连接驱动 比如我使用的是mysql数据库 我就下载了 mysql-connector-java:5.1.41的驱动添加到项目的依赖库中。
四:配置MyBatis
MyBatis的配置 相对于其他框架来说应该算是比较简单的。下面我们就来看看MyBatis的基本配置MyBatis的配置可以放到一个文件里。也可以放到多个文件里。一个文件。是它的主配置文件,另一个文件是一些变动的配置信息 数据库连接信息。
下面我们先来看第一种配置方式(一个文件):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> <!-- JavaBean类型自动映射扫描包配置 Java类型别名 --> <typeAliases> <package name="com.brok1n.web.java.springmvcdemo1.bean"/> <!--<typeAlias alias="User" type="com.brok1n.web.java.springmvcdemo1.bean.User" />--> </typeAliases> <environments default="development"> <!-- 数据库环境 --> <environment id="development"> <!-- 使用JDBC使用管理 --> <transactionManager type="JDBC"/> <!-- 数据源配置 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!-- 映射器 --> <mappers> <mapper resource="UserMapper.xml"/> </mappers> </configuration>
这就是一个基本的一个文件的的配置MyBatis的方式,配置了包级别的别名定义,配置了一个MySQL数据库连接 还配置了一个映射器,我们先了解一下上面的内容。我们下面来看看两个文件的方式 具体的配置信息后面会做详细介绍
MyBatis两个文件的配置: 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> <properties resource="jdbc.properties" /> <!-- JavaBean类型自动映射扫描包配置 Java类型别名 --> <typeAliases> <package name="com.brok1n.web.java.springmvcdemo1.bean"/> <!--<typeAlias alias="User" type="com.brok1n.web.java.springmvcdemo1.bean.User" />--> </typeAliases> <environments default="development"> <!-- 数据库环境 --> <environment id="development"> <!-- 使用JDBC使用管理 --> <transactionManager type="JDBC"/> <!-- 数据源配置 --> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!-- 映射器 --> <mappers> <mapper resource="UserMapper.xml"/> </mappers> </configuration>
jdbc.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 username=root password=jacklist
好了。这里是两个配置文件来配置MyBatis的方式。可以看到 两个文件的这种方式 我们把数据库连接相关的信息都配置到了properties文件中 方便后期配置、维护等工作。 我们现在就用第二种 两个文件的这种方式来配置 MyBatis。
我们先来写一个简单的例子。让我们的MyBatis展现一下它的能力。
这是我们的基本的项目结构信息。
我们来看看我们的代码。
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="com.brok1n.web.java.springmvcdemo1.mapper.UserMapper"> <select id="selectUser" resultType="user"> select * from user where id = #{id} </select> </mapper>
数据库
id username password sex age qq weichart email 10000 brok1n 123456 女 18 452700765 452700765@qq.com 10004 brok3n 123123 女 18 245586408 245586408@qq.com 10005 brok3n 123123 男 18 245586408 245586408@qq.com 10007 brok3n 123123 男 18 245586408 245586408@qq.com 10008 brok3n 123123 女 18 245586408 245586408@qq.com
DbUtils.java
public class DbUtils { private static volatile SqlSessionFactory sqlSessionFactory; public static SqlSessionFactory obtionSqlSessionFactory() { if( sqlSessionFactory == null ) { synchronized (DbUtils.class) { if(sqlSessionFactory == null ) { sqlSessionFactory = getSqlSessionFactory(); } } } return sqlSessionFactory; } private static SqlSessionFactory getSqlSessionFactory() { String resource = "mybatis-config.xml"; SqlSessionFactory sqlSessionFactory = null; try { InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build( inputStream ); } catch (IOException e) { e.printStackTrace(); } return sqlSessionFactory; } }
来看看我们的UserMapper.java
public interface UserMapper { User selectUser(String id); }
User.java
public class User { private int id; private String username; private String password; private String sex; private int age; private String qq; private String weichart; private String email; getter and setter... }
来看看我们的HelloController.java
@Controller public class HelloController { @RequestMapping( value = "selectUser.do", method = RequestMethod.POST) @ResponseBody public String selectUser(HttpServletRequest request, String uid ) { SqlSessionFactory factory = DbUtils.obtionSqlSessionFactory(); SqlSession sqlSession = null; try { sqlSession = factory.openSession(); UserMapper userMapper = sqlSession.getMapper( UserMapper.class ); User user = userMapper.selectUser(uid); if( user != null ) { System.out.println("" + user.toString()); } return JSON.toJSONString( user ); } catch (Exception e ) { e.printStackTrace(); sqlSession.rollback(); } finally { if( sqlSession != null ) { sqlSession.close(); } } return "操作失败"; } }
然后我们看看请求结果:
我们来看看我们程序里关键性代码:
SqlSessionFactory factory = DbUtils.obtionSqlSessionFactory(); SqlSession sqlSession = factory.openSession(); UserMapper userMapper = sqlSession.getMapper( UserMapper.class ); User user = userMapper.selectUser(uid);
首先 我们获取了全局的SqlSessionFactory 用它来创建了一个SqlSession对象,之后调用getMapper方法获得了传入的UserMapper类类型的对象 然后直接调用它的方法 来操作数据库。 UserMapper是一个接口 用来声明要对数据库做的sql操作。
这一篇 我们来基本的了解MyBatis的简介、安装、基础配置、简单用法。后面的文章 我会陆续的介绍MyBatis的更详细的东西。
2017/3/27
by brok1n
相关文章推荐
- Node.js 学习笔记之简介、安装及配置
- 【Vim】Vim使用笔记之一——安装和配置Vim
- freetds简介、安装、配置及使用介绍
- MyBatis中SQLSessionFactory和SqlSession的简介以及配置文件使用(二)
- kali2.0安装及使用笔记(附带vim配置,长期更新)
- Fedora桌面系统使用笔记 安装好Fedora后系统配置及相关软件的安装
- Flume简介与使用(一)——Flume安装与配置
- AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)
- docker1.12安装配置及使用笔记
- nutch的安装、配置以及使用(学习笔记)
- AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)
- Ubuntu 10.04使用笔记(一)--安装及配置
- mybatis学习笔记(六)使用generator生成mybatis基础配置代码和目录结构
- Java学习笔记——MySQL的安装使用以及SQL语法简介
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- hive的基本简介及安装、配置、使用(一)
- AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用(含6.9中文定义补丁)
- docker1.12安装配置及使用笔记
- freetds简介、安装、配置及使用介绍
- linux笔记 第二十一天 http高级配置及ab工具使用及编译安装http2.4