Mybatis 入门之MyBatis环境搭建(第一篇)

Mybatis简介

MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。

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

下面分步骤给搭建介绍mybatis 环境搭建。

1)在工程下引入mybatis-3.4.1.jar包,再引入数据库(mysql,mssql..)包.

2)在src下新建一个配置文件conf.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" />
 <!-- 配置mybatis运行环境 -->
 <environments default="development">
 <environment id="development">
 <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
 <transactionManager type="JDBC" />
 <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
 <!-- POOLED 表示支持JDBC数据源连接池 -->
 <!-- UNPOOLED 表示不支持数据源连接池 -->
 <!-- JNDI 表示支持外部数据源连接池 -->
 <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.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://127.0.0.1;databaseName=test
username=sa
password=123456

3)建立一个映射文件 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="hw.com.ser.IUser">
 <!-- 查询全部用户 -->
 <select id="queryUsers" resultType="hw.com.pojo.User">
 select * from MS_User
 </select>
 <selectid="queryUserById" resultType="hw.com.pojo.User" parameterType="int">
 Select * From Ms_User Where id=#{id}
 </select>
</mapper>

(这里要注意的是,namespace属性,因为,此实例是通过接口映射的方式,所以,namespace属性一点要写成接口的路径)附图:

4)建一个映射接口类

package hw.com.ser;
import java.util.List;
import hw.com.pojo.User;
public interface IUser {
 public List<User> queryUsers();
 public User queryUserById(int id);
}

5)建立一个SqlSessionFactory

package hw.com.util;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Properties;
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 SqlSessionFactoryUtil {
 private static SqlSessionFactory sqlSessionFactory = null;
 private static final Class CLASS_LOCK = SqlSessionFactoryUtil.class;
 private SqlSessionFactoryUtil() {
 }
 public static SqlSessionFactory initSqlSessionFactory() {
 String resource = "conf.xml";
 InputStream inputStream = null;
 try {
 inputStream = Resources.getResourceAsStream(resource);
 } catch (IOException e) {
 e.printStackTrace();
 }
 synchronized (CLASS_LOCK) {
 if (sqlSessionFactory == null) {
 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
 }
 }
 return sqlSessionFactory;
 }
 public static SqlSession openSqlSession(){
 if(sqlSessionFactory==null){
 initSqlSessionFactory();
 }
 return sqlSessionFactory.openSession();
 }
}

6)建一个pojo

package hw.com.pojo;
import java.util.Date;
public class User {
 private String Id;
 private String UserName;
 private String UserPwd;
 private int DeptmentId;
 private String UserTrueName;
 private String Email;
 private int LearnCenterId;
 private Date CreateDate;
 private Date LastModifyDate;
 private int UserStatus;
 public User() {
 super();
 // TODO Auto-generated constructor stub
 }
 public String getId() {
 return Id;
 }
 public void setId(String id) {
 Id = id;
 }
 public String getUserName() {
 return UserName;
 }
 public void setUserName(String userName) {
 UserName = userName;
 }
 public String getUserPwd() {
 return UserPwd;
 }
 public void setUserPwd(String userPwd) {
 UserPwd = userPwd;
 }
 public int getDeptmentId() {
 return DeptmentId;
 }
 public void setDeptmentId(int deptmentId) {
 DeptmentId = deptmentId;
 }
 public String getUserTrueName() {
 return UserTrueName;
 }
 public void setUserTrueName(String userTrueName) {
 UserTrueName = userTrueName;
 }
 public String getEmail() {
 return Email;
 }
 public void setEmail(String email) {
 Email = email;
 }
 public int getLearnCenterId() {
 return LearnCenterId;
 }
 public void setLearnCenterId(int learnCenterId) {
 LearnCenterId = learnCenterId;
 }
 public Date getCreateDate() {
 return CreateDate;
 }
 public void setCreateDate(Date createDate) {
 CreateDate = createDate;
 }
 public Date getLastModifyDate() {
 return LastModifyDate;
 }
 public void setLastModifyDate(Date lastModifyDate) {
 LastModifyDate = lastModifyDate;
 }
 public int getUserStatus() {
 return UserStatus;
 }
 public void setUserStatus(int userStatus) {
 UserStatus = userStatus;
 }
 @Override
 public String toString() {
 return "User [Id=" + Id + ", UserName=" + UserName + ", UserPwd=" + UserPwd + ", DeptmentId=" + DeptmentId
 + ", UserTrueName=" + UserTrueName + ", Email=" + Email + ", LearnCenterId=" + LearnCenterId
 + ", CreateDate=" + CreateDate + ", LastModifyDate=" + LastModifyDate + ", UserStatus=" + UserStatus
 + "]";
 }
}

7) 在main方法下做测试

package hw.com.Day1.main;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import hw.com.pojo.User;
import hw.com.ser.IUser;
import hw.com.util.SqlSessionFactoryUtil;
public class UserTest {
 public static void main(String[] args) {
 SqlSession sqlSession=null;
 try {
 sqlSession=SqlSessionFactoryUtil.openSqlSession();
 IUser iUser=sqlSession.getMapper(IUser.class);
 List<User> users=iUser.queryUsers();
 if(users.size()>0){
 for (User user : users) {
  System.out.println(user.toString());
 }
 }
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
}

到此这篇关于Mybatis 入门之MyBatis环境搭建(第一篇)的文章就介绍到这了,更多相关Mybatis 环境搭建入门内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • mybaits非配置原因,导致SqlSession was not registered for synchronization异常

    今天运行程序时报了 SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@69d4fb43] was not registered for synchronization because synchronization is not active [11:03:17]-Closing non transactional SqlSession [org.apache.ibatis.session.defaults.Defa

  • Mybaits通用的10种写法总结大全

    前言 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录. 用来循环容器的标签forEach,查看例子 foreach元素的属性主要有item,index,collection,open,sepa

  • Mybaits配置文件之动态SQL配置备忘录

    动态参数拼接的查询语句 –传入参数类型为自定义数据类型 <select id="queryMessageList" parameterType="com.imooc.bean.Message" resultMap="MessageResult"> select ID,COMMAND,DESCRIPTION,CONTENT from MESSAGE where 1=1 <if test="command !=null &

  • Mybaits的特点及优点

    什么是mybatis,mybatis有什么特点,下面先给大家介绍下mybatis的概念及特点. jdbc开发优缺点: 1)优点:简单易学,上手快,非常灵活构建SQL,效率高 2)缺点:代码繁琐,难以写出高质量的代码(例如:资源的释放,SQL注入安全性等) 开发者既要写业务逻辑,又要写对象的创建和销毁,必须管底层具体数据库的语法 (例如:分页). 3)适合于超大批量数据的操作,速度快 hibernate开发优缺点: 1)优点:不用写SQL,完全以面向对象的方式设计和访问,不用管底层具体数据库的语法

  • 基于Mybaits映射的一点心得(分享)

    以前一直使用Hibernate,基本上没用过Mybatis,工作中需要做映射关系,简单的了解下Mybatis的映射. 两者相差不多都支持一对一,一对多,多对多,本章简单介绍一对一的使用以及注意点. 建表语句: CREATE TABLE `bloc` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) collate utf8_bin default NULL, `company_id` int(11) default NULL,

  • Mybatis 入门之MyBatis环境搭建(第一篇)

    Mybatis简介 MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis. MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects

  • MyBaits 入门之MyBatis环境搭建(第一篇)

    MyBatis 简介 MyBatis的前身叫iBatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis. MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Object

  • CentOS7 LNMP+phpmyadmin环境搭建 第一篇虚拟机及centos7安装

    前一阵子配公司的服务器的时候,发现网上好多教程杂乱无章,然后便根据网上已有资料自己整理了一个lnmp环境的安装教程.因为懒,已经好久没写过博客了.趁着这次公司招新人,把之前整理的文档又整理了一次,顺便发一篇博客.好了,废话不多说,正文开始. 虚拟机及CentOS7安装 没接触过linux的朋友,建议还是先从虚拟机安装开始.大多使用VMware.这里,我使用的是VMware12.安装完成后如下图,点击创建新的虚拟机,自定义. 下一步,下一步选择稍后安装操作系统.下一步,然后选择对应版本的linux

  • Python从入门到精通之环境搭建教程图解

    本章内容: 一.下载python安装包 下载地址:https://www.python.org/downloads/ 二.选择适合自己系统的文件,进行下载 Windows环境安装(Windows 10) 三.Python解释器的安装 双击python-3.7.4-amd64.exe文件,勾选Add Python 3.7 to PATH,点击自定义安装 点击Next 选择自定义路径,点击Install即可 安装成功 右键此电脑属性,查看环境变量是否配置 选择环境变量,查看path 查看python

  • Android 基础入门教程——开发环境搭建

    现在主流的Android开发环境有: Eclipse + ADT + SDK Android Studio + SDK IntelliJ IDEA + SDK 现在国内大部分开发人员还是使用的Eclipse,而谷歌宣布不再更新ADT后,并且官网也去掉了集成Android开发环境的Eclipse下载链接,各种现象都表示开发者最后都终将过渡到Android Studio,当然这段过渡时间会很长,但如果你是刚学Android的话建议直接冲Android Studio着手:而且很多优秀的开源项目都是基于

  • AngularJs入门教程之环境搭建+创建应用示例

    本文简单讲述了AngularJs环境搭建+创建应用的方法.分享给大家供大家参考,具体如下: 概述 AngularJS是Google工程师研发的一款JS框架,官方文档中对它的描述是,它是完全使用JavaScript编写的客户端技术,同其他历史悠久的Web技术(HTML,CSS等)配合使用,使得Web开发变得更简单.更高效.它是笔者用过的比较有特色的一款框架,以HTML作为模版语言并扩展HTML属性,使得应用组件开发保持高度的清晰和一致.本系列文章將以实际的案例简单的介绍AngularJs的特性和用

  • CentOS7 LNMP+phpmyadmin环境搭建 第二篇LNMP环境搭建教程

    上一篇博客我们在虚拟机上安装了centos7,接下来,就开始安装lnmp环境吧. 还是跟之前一样,进入命令行后,先使用su命令切换到root权限. 首先配置防火墙 CentOS 7.0默认使用的是firewall作为防火墙 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.关闭SELINUX: vi /etc/selinu

  • React入门教程之Hello World以及环境搭建详解

    前言 React 是一个用于构建用户界面的 JavaScript 库.react主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图).关注React也已经很久了,一直没能系统地深入学习,最近准备好好研究一下,并且亲自动手做一些实践. 不管是学习一门语言也好,还是学习一个框架也好,都是从最初的hello world程序开始的,今天我们也来用react写一个hello world出来,了解一下如何编写及运行React. 入门教程及环境搭建 在官方文档中,有一种方式是基于npm的,我

  • TypeScript环境搭建并且部署到VSCode的详细步骤

    目录 TypeScript环境搭建 第一步:下载淘宝镜像 第二步:下载TypeScript 部署到VSCode 先创建一个文件夹tsDemo, 修改tsconfig.json配置 可能会遇到的报错 前言:要想搭建TypeScript,那么就要有npm,要想有cnpm,那么就得有node环境.要是都有了的话,那么接下来,往下看. TypeScript环境搭建 第一步:下载淘宝镜像 先检查自己有没有成功安装npm 有npm还不行,还要下载cnpm,命令如下(直接复制粘贴): npm install

  • MyBatis快速入门之环境搭建和单表映射

    一.MyBatis简介 一说起对象关系映射框架,大家第一时间想到的肯定是Hibernate.Hibernate作为一个著名的框架,功能十分强大.我们只需要配置好实体类和数据表之间的关系,Hibernate就会自动帮我们完成生成并执行SQL语句,映射结果集这样的工作.但是也正是由于Hibernate如此强大的功能,导致了它的缺点:一是非常笨重,启动Hibernate的SessionFactory非常耗时,开销巨大:二是配置复杂,学习成本较高,系统调优也不容易:三是自定义查询功能较弱,查询结果如果不

随机推荐