原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com

mybatis作为一种半自动化的ORM工具,可以提供更大的灵活性,逐渐受到社区的欢迎。

官方下载地址是:https://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DMyBatis

我这里下载的是3.2.2版本。

1. 在eclipse中新建dynamic web project, 引入mybatis-3.2.2.jar,sqljdbc4.jar(可以直接复制jar包到WebContent\WEB-INF\lib下)。

2.在src同级目录新建configuration文件夹,新建mybatis.xml文件,用于保存mybastis的全局配置,内容如下:

<?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>
<typeAliases>
<typeAlias alias="EmployeeInfo" type="com.mosoro.example.model.EmployeeInfo" />
</typeAliases> <environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://192.168.*.*:1433;databaseName=Northwind; catalogName=Northwind" />
<property name="username" value="sa" />
<property name="password" value="****" />
<property name="poolMaximumActiveConnections" value="50" />
</dataSource>
</environment>
</environments> <mappers>
<mapper resource="maps/Employee.xml" />
</mappers>
</configuration>

3.可以看到,我们在mappers中定义了一个employee.xml,在实际开发中,在这个文件中定义SQL和实体映射关系,我们现在在configuration下新建maps目录,在maps下新建Employee.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.mosoro.example.mapper.EmployeeMapper">
<select id="GetList" parameterType="int" resultType="EmployeeInfo"><![CDATA[
select * from Employees with(nolock) where EmployeeID = #{EmployeeID}
]]></select>
</mapper>

我们的目录结构现在看起来会是这样子:

4.mybatis是基于会话和数据库交互的,所以我们需要创建SessionFactory,在src下新建package:com.mosoro.example.data, 新建class:SessionFactoryManager.java

package com.mosoro.example.data;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class SessionFactoryManager { private static SqlSessionFactory _sqlSessionFactory;
static {
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
_sqlSessionFactory = ssfb.build(SessionFactoryManager.class.getClassLoader()
.getResourceAsStream("mybatis.xml")); } public static SqlSessionFactory getSSF() {
return _sqlSessionFactory;
} public static SqlSession openSession() {
return getSSF().openSession();
}
}

注意我们在这里会读取刚才定义的mybatis.xml文件。

5.新建package:com.mosoro.example.model,class:EmployeeInfo.java,这是我们要用的Model类。

package com.mosoro.example.model;

public class EmployeeInfo {

    private int EmployeeID;
private String LastName; public int getEmployeeID() {
return EmployeeID;
} public void setEmployeeID(int EmployeeID) {
this.EmployeeID = EmployeeID;
} public String getLastName(){
return this.LastName;
} public void setLastName(String LastName){
this.LastName = LastName;
}
}

6.定义mapper类。新建package: com.mosoro.example.mapper, interface: EmployeeMapper.java

package com.mosoro.example.mapper;

import java.util.List;

import com.mosoro.example.model.EmployeeInfo;

public interface EmployeeMapper {
List<EmployeeInfo> GetList(int id);
}

7.ok,我们准备工作都做好了,现在可以使用mybatis来访问一次数据库了。新建package:com.mosoro.example.biz, class:EmployeeBiz.java

package com.mosoro.example.biz;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger; import com.mosoro.example.data.SessionFactoryManager;
import com.mosoro.example.mapper.EmployeeMapper;
import com.mosoro.example.model.EmployeeInfo; public class EmployeeBiz {
private Logger logger = Logger.getLogger(EmployeeBiz.class); public List<EmployeeInfo> GetList() {
// 获取SqlSession
SqlSession session = SessionFactoryManager.openSession();
try {
EmployeeMapper userDA = session.getMapper(EmployeeMapper.class);
List<EmployeeInfo> users = userDA.GetList(1); logger.debug("get emloyee list ok");
return users;
} catch (Exception e) {
e.printStackTrace();
return null;
} finally {
session.close();
}
} }

8.修改index.jsp文件如下:

<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
%>
<%@ page import = "java.util.*" %>
<%@ page import = "com.mosoro.example.biz.*" %>
<%@ page import = "com.mosoro.example.model.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>mybatis example</title>
</head>
<body>
<%
EmployeeBiz employeeBiz =new EmployeeBiz();
List<EmployeeInfo> list = employeeBiz.GetList();
for(EmployeeInfo e : list){
out.println(e.getLastName()+"<br />");
}
%>
</body>
</html>

9. 运行这个页面,可以看到有数据从库中抓出来了。我们最终的项目结构是下面这样:

使用mybatis访问sql server的更多相关文章

  1. Spring Boot 集成 MyBatis和 SQL Server实践

    概 述 Spring Boot工程集成 MyBatis来实现 MySQL访问的示例我们见过很多,而最近用到了微软的 SQL Server数据库,于是本文则给出一个完整的 Spring Boot + M ...

  2. .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库

    今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release Candidate 1),.NET跨平台迈出了关键一步. 紧跟这次RC1的发布,我们成功地将 ...

  3. ODBC database driver for Go:Go语言通过ODBC 访问SQL server

    Go语言通过ODBC 访问SQL server,这里需要用到go-odbc库,开源地址::https://github.com/weigj/go-odbc 一.驱动安装 在cmd中打开GOPATH: ...

  4. EF 数据库连接字符串-集成安全性访问 SQL Server

    使用 Windows 集成安全性访问 SQL Server 如果您的应用程序运行在基于 Windows 的 Intranet 上,则也许可以将 Windows 集成身份验证用于数据库访问.集成安全性使 ...

  5. 在oracle中通过链接服务器(dblink)访问sql server

    在oracle中通过链接服务器(dblink)访问sql server 2013-10-16 一.   工作环境: <1> Oracle数据库版本:Oracle 11g  运行环境 :IB ...

  6. Oracle Gateways透明网关访问SQL Server

    自己的本机安装了Oracle 12c,公司的平台需要同时支持Oracle与SQL Server,很多时候都有将数据从Oracle同步到SQL Server的需求.通过SQL Server的link S ...

  7. ADO.NET访问SQL Server调用存储过程带回参

    1,ADO.NET访问SQL Server调用存储过程带回参 2,DatabaseDesign  use northwind go --存储过程1 --插入一条商品 productname=芹菜 un ...

  8. ORACLE透明网关访问SQL Server配置总结

      透明网关概念 ORACLE透明网关(Oracle Transparent Gateway)可以解决ORACLE数据库和非ORACLE数据库交互数据的需求.在一个异构的分布式环境中,通过ORACLE ...

  9. Ubuntu12.10下Python(pyodbc)访问SQL Server解决方案

    一.基本原理 请查看这个网址,讲得灰常详细:http://www.jeffkit.info/2010/01/476/   二.实现步骤 1.安装linux下SQL Server的驱动程序 安装Free ...

随机推荐

  1. [06]APUE:系统数据文件和信息

    [a] getpwent / setpwent / endpwent #include <pwd.h> struct passwd *getpwent(void) //成功返回指针,出错或 ...

  2. 跟我学-Java底层技术系列文章

    对于工作中经常用到的东西,还是多看看实现原理,这样用着才能放心. 源码思想学习计划: 1.java基础库  HashCode深入理解 java线程框架窥探 2.集合类     java枚举类使用 递归 ...

  3. android 应用笔记

    android 应用笔记 android 应用笔记 小书匠 Android 综合教程 Android常用技巧 安卓系统架构 安卓源码开发 安卓驱动 Linux内核 安卓应用开发 Java 教程 tic ...

  4. adb devices 端口占用

    一. 1.通过cmd命令,输入adb devices查看连接设备时,报错 2 .通过adb nodaemon server  查看adb server绑定的端口.提示“通过每个套接字地址只能使用一次” ...

  5. IE全屏浏览代码

    以前做过一个网络版的商场导购触摸屏系统,用ASP写的,就是要在运行的时候全屏浏览而不能出现标题栏.工具栏.状态栏等.解决方法是用JS弹出全屏窗口,建立html文件,代码如下: <script l ...

  6. 关于L'Hopital法则

    1.首先需要使用 罗尔定理 函数f(x)在闭区间[a,b]连续在开区间(a,b)可微,如果f(a)=f(b),那么至少存在一点c使函数导数f'(c)=0 注意需要再(a,b)可微,如果函数有角点,断点 ...

  7. NetBeans无法使用编码GBK安全地打开该文件(改为默认UTF-8)

    用文本编辑器打开NetBeans安装目录下etc\netbeans.conf文件,找到”netbeans_default_options=”字段,在后面添加” -J-Dfile.encoding=UT ...

  8. [fortify] 变量覆盖漏洞

    一.全局变量覆盖当register_global=ON时,变量来源可能是各个不同的地方,比如页面的表单,Cookie等. <?php echo "Register_globals: & ...

  9. eclipse开发环境搭建

    1.eclipse插件OpenExplorer快速打开文件目录 下载地址:https://github.com/samsonw/OpenExplorer/downloads 下载jar包,将jar包放 ...

  10. Evaluation Clustering methods

    There are many evaluation measures available like entropy, recall, precision, F-measure, silhouette ...