一、创建测试项目工程

二、导包(一个myBatis所需的包,以及一个数据库操作的包)

三、创建实体类

四、配置文件的建立(最佳命名为(SqlMapConfig.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="datasource.properties"></properties>
<typeAliases>
<typeAlias type="com.lovo.pojo.User" alias="User"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/lovo/mapper/UserMapper.xml"/>
</mappers> </configuration>

用以上方式配置需要先创立配置文件(datasource.properties)

配置文件代码如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/myBatis?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=123

然后创建一个获得连接对象的类,我习惯命名为DbUtil放在util包中,代码如下:

public class DbUtil {
private static SqlSessionFactory sessionFactory = null; private DbUtil() {
InputStream in = null;
try {
in = Resources.getResourceAsStream("SqlMapConfig.xml");
sessionFactory = new SqlSessionFactoryBuilder().build(in);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } public static SqlSession getSession() {
if (sessionFactory == null) {
new DbUtil();
}
return sessionFactory.openSession(); }

然后再对实体pojo配置一个XML文件和一个接口:

XML最好与接口同名,以便自己好辨识

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" >
<!--namespace与mapper接口相对应 -->
<mapper namespace="com.lovo.mapper.UserMapper">
<resultMap type="User" id="UserMap">
<id property="id" column="id" javaType="int"/>
<result property="userName" column="username" javaType="java.lang.String"/>
<result property="userPwd" column="pwd" javaType="java.lang.String"/>
<result property="state" column="state" javaType="int"/>
</resultMap> <insert id="addUser" parameterType="User">
insert into user values(null,#{User.userName},#{User.userPwd},#{User.state}) </insert>
<delete id="delUserById" parameterType="int">
delete from user where id=#{id}
</delete>
<select id="findUserById" parameterType="int" resultMap="UserMap">
select * from user where id=#{id}
</select>
<update id="updateUser" parameterType="User">
update user set username=#{User.userName},pwd=#{User.userPwd},state=#{User.state} where id=#{User.id}
</update> <select id="FindAllUser" resultMap="UserMap">
select * from user
</select> <select id="findUserCount" resultType="int">
select count(*) from user </select>
<select id="FindUserByState" resultMap="UserMap">
select * from user where state=#{state} </select>
<select id="sumOfState" resultType="int">
select sum(state) from user
</select> </mapper>

接口如下:

public interface UserMapper {
public int addUser(@Param("User") User user);
public int delUserById(@Param("id") int id);
public int updateUser(@Param("User") User user);
public User findUserById(@Param("id") int id);
public List<User> FindAllUser();
public int findUserCount();
public List<User> FindUserByState(@Param("state") int state);
public int sumOfState();
}

这里的@param("User")为别名,除参数只有单个,且为基本数据类型外,都需要给于别名。

最后在建立service层

如:

public class UserServiceImpl implements UserService {
SqlSession sqlSession=DbUtil.getSession();
UserMapper mapper=sqlSession.getMapper(UserMapper.class);
@Override
public int addUser(User user) {
// TODO Auto-generated method stub
int num=0;
num=mapper.addUser(user);
sqlSession.commit();
return num;
}

MyBatis总结(一)的更多相关文章

  1. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

  2. Java MyBatis 插入数据库返回主键

    最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User ...

  3. [原创]mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  4. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  5. mybatis plugins实现项目【全局】读写分离

    在之前的文章中讲述过数据库主从同步和通过注解来为部分方法切换数据源实现读写分离 注解实现读写分离: http://www.cnblogs.com/xiaochangwei/p/4961807.html ...

  6. MyBatis基础入门--知识点总结

    对原生态jdbc程序的问题总结 下面是一个传统的jdbc连接oracle数据库的标准代码: public static void main(String[] args) throws Exceptio ...

  7. Mybatis XML配置

    Mybatis常用带有禁用缓存的XML配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE ...

  8. MyBatis源码分析(一)开篇

    源码学习的好处不用多说,Mybatis源码量少.逻辑简单,将写个系列文章来学习. SqlSession Mybatis的使用入口位于org.apache.ibatis.session包中的SqlSes ...

  9. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  10. MyBatis6:MyBatis集成Spring事物管理(下篇)

    前言 前一篇文章<MyBatis5:MyBatis集成Spring事物管理(上篇)>复习了MyBatis的基本使用以及使用Spring管理MyBatis的事物的做法,本文的目的是在这个的基 ...

随机推荐

  1. WPF、Sivelright、UWP

    Sivelright:  http://www.cnblogs.com/webabcd/category/106371.html UWP 律师查询 MVVM WPF入门教程系列一——基础 WPF入门教 ...

  2. C#控制台项目更改运行文件

    这个是极光推送的C# demo,里面有几个文件,要先后运行.这是第一次遇见,所以一下子找不到北,摸索了好一会儿才知会.于是做了这面一个记录. 右击鼠标,查看属性弹出这个这面,然后选择要启动的对象.保存 ...

  3. 手机APP功能测试经验分享2016.06.06

    1.登录时,Android和IOS同样的操作,提示信息不一致: 2.注册等页面切换成横屏容易不兼容.把内存卡去掉,再发送图片.音频.视频容易出错. 3.Android和IOS同样的功能,同样的原型图, ...

  4. 数据分析 - 斯特鲁普效应(Stroop effect)

    数据分析 - 斯特鲁普效应(Stroop effect) Reinhard得到了一份斯特鲁普效应试验的数据,我们来分析下,文字的颜色,是否会影响受试者的反应. 这里先看看什么是斯特鲁普效应: 斯特鲁普 ...

  5. 利用Maven打包时,如何包含更多的资源文件

    首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...

  6. React笔记整理

    大概大半年时间都在用react写项目,一直在笔记上零零星星地记录着,在新的一年即将到来之际,打算整理整理发出来. 一.React是什么? React是Facebook开源的用于构建用户界面的javas ...

  7. 高通平台FastMMI(FFBM模式)简介与进入方法

    参考: http://blog.csdn.net/tfslovexizi/article/details/51499979 http://www.voidcn.com/blog/jimbo_lee/a ...

  8. 使用Python结合Face++ API识别人脸

    Face++是北京旷视科技旗下的视觉服务平台,可以进行人脸识别.检测等功能.其人脸识别技术据悉在目前准确率较高,其API非常友好,免费使用,功能众多,而且调用几乎没有限制.这里我使用了Python调用 ...

  9. 【转载】Windows 7 不同安装模式简要区别(图解)

    ---------------------------------------------------------------------------------------------------- ...

  10. 广播Broadcast Receiver

    广播的类型: 1.标准广播(Normal broadcat) 完全异步执行的广播,所有广播接收器同一时间接收广播消息. 效率高,但无法被截断. 2.有序广播 同步执行的广播,同一时刻只能有一个广播接收 ...