1.数据库的准备:

数据库:

create DATABASE mybatis;

数据表:

CREATE TABLE `user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`username` varchar(120) DEFAULT NULL,
`password` varchar(50) DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`birthday` date DEFAULT NULL,
PRIMARY KEY (`id`)
)

INSERT into user(id,username,password,gender,birthday)
VALUES
(1,'程花花','','男','1998-12-23'),
(2,'李四','','男',,'1997-03-07'),
(3,'丽丽','','女','1996-01-05'),
(4,'花花','','女','1998-10-24');

到此数据库的准备工作已经完成,接下来是搭建工程环境。

 2.搭建工程环境(MyEclipse):

在MyEclipse开发工具中创建新的一个web工程,命名为MyBatisFirstDemo

创建工程

工程目录:

在lib文件夹下面,添加我们所需要的jar包:

选中右键Build Path ->Add to Build Path

所有的jar包已打包上传:

链接:https://pan.baidu.com/s/1HSxt2WX03Mq4h9eYwPkpHg
提取码:1w2h

其他工程目录的详解:

log4j.properties

#Global logging configuration
# 在开发环境下日志级别要设成
log4j.rootLogger = DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =%5p [%t] - %m%n

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>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<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://localhost:3306/mybatis_test?characterEnciding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="1234"/>
</dataSource>
</environment> </environments> <!-- 配置UserMapper.xml的映射地址 -->
<mappers>
<mapper resource="sqlmap/UserMapper.xml"/>
</mappers>
</configuration>
DataConnection .java
public class DataConnection {

    //MyBatis配置文件
private String resource = "SqlMapConfig.xml";
private SqlSessionFactory sqlSessionFactory;
private SqlSession sqlSession; public SqlSession getSqlSession() throws IOException{
InputStream inputStream = Resources.getResourceAsStream(resource);
//创建会话工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
}
User.java
构造器(两个),setter&getter方法
public class User implements Serializable{

    private int id;
private String username;
private String password;
private String gender;
private Date birthday;
...
}

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="test">
<!-- id查询 -->
<select id="findUserByid" parameterType="int" resultType="cn.com.mybatis.po.User" >
select * from user where id=#{id}
</select> <!-- 模糊查询 -->
<select id="findUserByUsername" parameterType="java.lang.String" resultType="cn.com.mybatis.po.User">
select * from user where username like '%${value}%'
</select> <!-- 添加数据 -->
<insert id="insertUser">
insert into user(username,password,gender,birthday)
value(#{username},#{password},#{gender},#{birthday})
</insert> <!-- drop -->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user where id=#{id}
</delete> <!-- update -->
<update id="update" parameterType="cn.com.mybatis.po.User">
update user set username=#{username} where id=#{id}
</update>
</mapper>
MyBatisTest.java
public class MyBatisTest {
public DataConnection dataConn = new DataConnection();
  //根据id进行查询
@Test
public void TestSelect() throws IOException{
SqlSession sqlSession = dataConn.getSqlSession();
User user = sqlSession.selectOne("test.findUserByid",);
System.out.println("username:" + user.getUsername());
System.out.println("password:" + user.getPassword());
System.out.println("gender:" + user.getGender()); System.out.println("birthday:" + user.getBirthday());
sqlSession.close();
} //模糊查询
@Test
public void TestFuzzySearch() throws IOException{
SqlSession sqlSession = dataConn.getSqlSession();
List<User> userList = sqlSession.selectList("test.findUserByUsername","花");
for (int i = ; i < userList.size(); i++) {
User user = userList.get(i);
System.out.println("name:" + user.getUsername());
System.out.println("password:" + user.getPassword());
System.out.println("gender:" + user.getGender());
System.out.println("birthday:" + user.getBirthday());
} sqlSession.close();
} //insert
@Test
public void TestInsert() throws IOException, ParseException{
SqlSession sqlSessions = dataConn.getSqlSession();
User user = new User();
user.setUsername("嘉佳");
user.setPassword("");
user.setGender("女"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
user.setBirthday(sdf.parse("1992-03-15")); sqlSessions.insert("test.insertUser",user);
sqlSessions.commit();
sqlSessions.close();
}
     //delete

      @Test
      public void TestDrop() throws IOException{
        SqlSession sqlSession = dataConn.getSqlSession();
        sqlSession.delete("test.deleteUser",6);
        sqlSession.commit();
        sqlSession.close();
      }

//update 

      @Test
      public void Testupdate() throws IOException{
        SqlSession sqlSession = dataConn.getSqlSession();
        User user = new User();
        user.setId(1);
        user.setUsername("张花花");
        sqlSession.update("test.update", user);
        sqlSession.commit();
        sqlSession.close();
      }

}

注意:

测试类的创建:是下图的JUnit,在测试的时候,每个测试类上面都需要写@Test,需要调用的方法不需要加@Test

方便开发中的测试,可以不写main方法

对每个方法进行测试时可以进行单个测试,否则可能所有的测试都执行。

首先双击选中测试的类,右击选择Run As 可以看到一个Junit Test点击即可进行测试

1.根据id进行查询,此时查询到的单个记录

控制台代码(部分)

DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection .
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@480bdb19]
DEBUG [main] - ==> Preparing: select * from user where id=?
DEBUG [main] - ==> Parameters: (Integer)
DEBUG [main] - <== Total:
username:花花
password:128722
gender:女
birthday:Sat Oct 24 00:00:00 CST 1998
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@480bdb19]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@480bdb19]
DEBUG [main] - Returned connection to pool.

2.模糊查询,此时查询道德可能是多个记录

控制台代码(部分)

DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection .
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@13c27452]
DEBUG [main] - ==> Preparing: select * from user where username like '%花%'
DEBUG [main] - ==> Parameters:
DEBUG [main] - <== Total:
name:程花花
password:12345
gender:男
birthday:Wed Dec 23 00:00:00 CST 1998
name:花花
password:128722
gender:女
birthday:Sat Oct 24 00:00:00 CST 1998
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@13c27452]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@13c27452]

3.insert 插入数据

控制台代码(部分)

DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection .
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@]
DEBUG [main] - ==> Preparing: insert into user(username,password,gender,birthday) value(?,?,?,?)
DEBUG [main] - ==> Parameters: 嘉佳(String), 55555(String), 女(String), 1992-03-15 00:00:00.0(Timestamp)
DEBUG [main] - <== Updates:
DEBUG [main] - Committing JDBC Connection [com.mysql.jdbc.JDBC4Connection@]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@]

数据库中:

4.delete可见在3操作中成功添加数据id=6的嘉佳

此时来测试删除该记录

控制台代码(部分)

DEBUG [main] - Created connection .
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]
DEBUG [main] - ==> Preparing: delete from user where id=?
DEBUG [main] - ==> Parameters: 6(Integer)
DEBUG [main] - <== Updates:
DEBUG [main] - Committing JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]

刷新数据库:

此时在3操作添加的记录成功删除!

5.update更新操作

id为的username为程花花貌似很难听

修改一下为张花花

控制台代码(部分)

DEBUG [main] - Opening JDBC Connection
DEBUG [main] - Created connection .
DEBUG [main] - Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]
DEBUG [main] - ==> Preparing: update user set username=? where id=?
DEBUG [main] - ==> Parameters: 张花花(String), 1(Integer)
DEBUG [main] - <== Updates:
DEBUG [main] - Committing JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]
DEBUG [main] - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]
DEBUG [main] - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@bd8db5a]

刷新数据库:

 

至此,当您看到这里,并且会单独操作,作为初学者,您已经成功入门了!

第三章.搭建MyBatis工程环境的更多相关文章

  1. 搭建MyBatis开发环境及基本的CURD

    目录 一.MyBatis概述 1. MyBatis 解决的主要问题 二.快速开始一个 MyBatis 1. 创建mysql数据库和表 2. 创建maven工程 3. 在pom.xml文件中添加信息 4 ...

  2. 第一章 搭建Qt开发环境

    第一章 搭建Qt开发环境 1.到http://download.qt-project.org/archive/上下载Qt的源码包.我下载的是qt-everywhere-opensource-src-4 ...

  3. 《Exchange Server 2010 SP1/SP2管理实践》——第2章 搭建Exchange实验环境2.1 网络环境规划...

    本节书摘来自异步社区<Exchange Server 2010 SP1/SP2管理实践>一书中的第2章,第2.1节,作者: 王淑江 更多章节内容可以访问云栖社区"异步社区&quo ...

  4. 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(二)简单示例

    学习资料:<Activiti实战> 第一章 搭建Activiti开发环境及简单示例 2.5 简单流程图及其执行过程 (1)leave.bpmn 后缀名必须是bpmn.安装了activiti ...

  5. <Mastering KVM Virtualization>:第三章 搭建独立的KVM虚拟化

    在第二章,你了解了KVM的内部结构:在本章中,您将了解如何将Linux服务器设置为虚拟化主机.我们正在讨论将KVM用于虚拟化并将libvirt作为虚拟化管理引擎. KVM开启了虚拟化并利用你的服务器或 ...

  6. 第二章 搭建Android开发环境

    这一章为我们讲解了如何搭建Android开发环境. 首先要了解的是Android底层开发需要哪些工具:搭建android应用程序开发环境.android NDK开发环境和交叉编译环境,前两个用来测试L ...

  7. 第二章 搭建Android开发环境--读书笔记

    俗话说,工欲善其事,必先利其器,对于Android驱动开发来说,首先我们要做的就是搭建Android开发环境,我们首先要配置Linux驱动的开发环境,接着还得配置开发Android应用程序以及Andr ...

  8. 搭建mybatis开发环境

    1.创建工程 <groupId>com.hope</groupId>     <artifactId>day01_eesy_01mybatis</artifa ...

  9. JSP Web第三章整理复习 开发环境搭建

    P86  WEB工作原理 用户使用浏览器通过HTTP协议请求服务器上的Web资源,服务器接收到该请求后,读取请求的URI所标识的资源,加上其他资源发送给客户端的浏览器,浏览器解析响应中的HTML数据, ...

随机推荐

  1. Expression Blend实例中文教程(3) - 布局控件快速入门Grid

    上一篇对Blend 3开发界面进行了快速入门介绍,本篇将基于Blend 3介绍Silverlight控件.对于微软开发工具熟悉的朋友,相信您很快就熟悉Blend的开发界面和控件. XAML概述 Sil ...

  2. .Net程序员玩转Android系列之三~快速上手

    快速环境搭建和Hello World 第一步:JAVA SDK(JDK)的安装: 官方下载地址: http://www.oracle.com/technetwork/java/javase/downl ...

  3. mongodb基本指令

    MongoDB基本命令用成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show co ...

  4. DataTables固定表格宽度(设置横向滚动条)

    当表格的列比较多的时候,可能就需要固定表格的宽度了,默认的100%宽已经不适应了.默认的100%宽要实现改变窗口大小也100%的话,在table元素上添加width="100%", ...

  5. 六、Spring之DI的Bean的作用域

    Spring提供“singleton”和“prototype”两种基本作用域,另外提供“request”.“session”.“global session”三种web作用域:Spring还允许用户定 ...

  6. [Java反射基础一]Class类的使用

    任何一个类都是Class类的实例对象,这个实例对象有三种表示方式 第一种表示方式(任何一个类都有一个隐含的静态成员变量class): Class c1 = Foo.class; 第二种表示方式(已知该 ...

  7. HTML5学习笔记之canvas

    标签 canvas标签有一个默认宽高:300*150: canvas的宽高一般写到行间样式中,写在style会有问题详细请看这里: 绘制环境 要绘图先要获取到绘制环境: var oC = docume ...

  8. Linux基础之-Bash命令优先级

    一. Bash简介 命令解释器,也就是 Bourne Again Shell,起源于shell.shell俗称壳,它是指UNIX系统下的一个命令解析器:主要用于用户和系统的交互.UNIX系统上有很多种 ...

  9. easyui汉化啊!

    <script type="text/javascript" src="__PUBLIC__/jquery-easyui-1.4.4/locale/easyui-l ...

  10. 聊天室或文字直播间的效果(AS开发实战第二章学习笔记)

    聊天室或文字直播间的效果即是新的文字消息总是加入窗口末尾,同时窗口内部的文本整体向上滚动,窗口的大小.位置保持不变聊天室用到的属性与方法说明gravity 指定文本的对齐方式,取值left|botto ...