1、新建java project,导入相应jar包

本次使用到的mybatis-3.2.7版本

mybatis需要jar包:mybatis-3.2.7.jar、lib文件下的依赖jar

mysql驱动jar包:mysql-connector-java-5.1.7.-bin.jar

2、创建数据库

数据库名:mybatis

数据表:user

3、配置mybaits核心配置文件SqlMapConfig.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5.  
  6. <configuration>
  7. <!-- 和spring整合后 environments配置将废除-->
  8. <environments default="development">
  9. <environment id="development">
  10. <!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
  11. <transactionManager type="JDBC" />
  12.  
  13. <!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
  14. <!-- POOLED 表示支持JDBC数据源连接池 -->
  15. <!-- UNPOOLED 表示不支持数据源连接池 -->
  16. <!-- JNDI 表示支持外部数据源连接池 -->
  17. <dataSource type="POOLED">
  18. <property name="driver" value="com.mysql.jdbc.Driver" />
  19. <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" />
  20. <property name="username" value="root" />
  21. <property name="password" value="mysqladmin" />
  22. </dataSource>
  23.  
  24. </environment>
  25. </environments>
  26.  
  27. <mappers>
  28. <mapper resource="User.xml"/>
  29. </mappers>
  30.  
  31. </configuration>
  1. SqlMapConfig.xml放入项目中config源文件下

4、创建对应数据表的java实体类

User.java

  1. package cn.itheima.pojo;
  2.  
  3. import java.util.Date;
  4.  
  5. public class User {
  6. private int id;
  7. private String username;// 用户姓名
  8. private String sex;// 性别
  9. private Date birthday;// 生日
  10. private String address;// 地址
  11.  
  12. public int getId() {
  13. return id;
  14. }
  15. public void setId(int id) {
  16. this.id = id;
  17. }
  18. public String getUsername() {
  19. return username;
  20. }
  21. public void setUsername(String username) {
  22. this.username = username;
  23. }
  24. public String getSex() {
  25. return sex;
  26. }
  27. public void setSex(String sex) {
  28. this.sex = sex;
  29. }
  30. public Date getBirthday() {
  31. return birthday;
  32. }
  33. public void setBirthday(Date birthday) {
  34. this.birthday = birthday;
  35. }
  36. public String getAddress() {
  37. return address;
  38. }
  39. public void setAddress(String address) {
  40. this.address = address;
  41. }
  42. @Override
  43. public String toString() {
  44. return "User [id=" + id + ", username=" + username + ", sex=" + sex
  45. + ", birthday=" + birthday + ", address=" + address + "]";
  46. }
  47.  
  48. }

5、创建对应的映射文件

User.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!-- namespace:命名空间,做sql隔离 -->
  6. <mapper namespace="test">
  7. <!--
  8. id:sql语句唯一标识
  9. parameterType:指定传入参数类型(pojo类中对应的类型,不是数据库中的类型)
  10. resultType:返回结果集类型
  11. #{}:占位符,如果传入的类型是基本类型(string,long,double,int,boolean,float等),那么#{}中变量名称可以任意
  12. -->
  13. <select id="findUserById" parameterType="java.lang.Integer" resultType="cn.itheima.pojo.User">
  14. SELECT * FROM user WHERE id=#{id}
  15. </select>
  16.  
  17. <!--
  18. 如果返回的结果为集合,resultType中也是配置为集合中泛型的类型,即resultType="cn.itheima.pojo.User"
  19. ${}:拼接符,如果传入的类型是基本类型(string,long,double,int,boolean,float等),那么${}中变量名称必须是value
  20. -->
  21. <select id="findUserByUserName" parameterType="java.lang.String" resultType="cn.itheima.pojo.User">
  22. SELECT * FROM user WHERE username LIKE '%${value}%'
  23. </select>
  24.  
  25. <!--
  26. 如果传入的是pojo类型,则#{}中变量名称必须是pojo中对应的属性.属性.属性......
  27. 如果要返回数据库自增主键,可以使用SELECT LAST_INSERT_ID()
  28. -->
  29. <insert id="insertUser" parameterType="cn.itheima.pojo.User">
  30. <!-- 执行SELECT LAST_INSERT_ID()数据库函数,返回自增的主键
  31. keyProperty:将返回的主键放入传入的参数的Id中保存(保存到user对象中的id属性)
  32. order:当前函数相对于insert语句的执行顺序,在insert前执行用BEFORE,在insert后执行用AFTER
  33. resultType:id的类型,也就是keyProperty中属性类型
  34. -->
  35. <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
  36. SELECT LAST_INSERT_ID()
  37. </selectKey>
  38. INSERT INTO user (username,birthday,sex,address) VALUES (#{username},#{birthday},#{sex},#{address})
  39. </insert>
  40.  
  41. <delete id="deleteUserById" parameterType="java.lang.Integer">
  42. DELETE FROM user WHERE id=#{id}
  43. </delete>
  44.  
  45. <update id="updateUserById" parameterType="cn.itheima.pojo.User">
  46. UPDATE user SET username=#{username} WHERE id=#{id}
  47. </update>
  48. </mapper>

二、测试

  1. package mybatis0523;
  2.  
  3. import java.io.InputStream;
  4. import java.util.Date;
  5. import java.util.List;
  6.  
  7. import org.apache.ibatis.io.Resources;
  8. import org.apache.ibatis.session.SqlSession;
  9. import org.apache.ibatis.session.SqlSessionFactory;
  10. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  11. import org.junit.Test;
  12.  
  13. import cn.itheima.pojo.User;
  14.  
  15. public class UserTest {
  16.  
  17. @Test
  18. public void testFindUserById() throws Exception {
  19. String resource = "SqlMapConfig.xml";
  20. // 通过流将核心配置文件读取进来
  21. InputStream inputStream = Resources.getResourceAsStream(resource);
  22. // 通过核心配置文件创建会话工厂
  23. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
  24.  
  25. // 通过会话工厂创建会话
  26. SqlSession session = factory.openSession();
  27.  
  28. User user = session.selectOne("test.findUserById", 1);
  29. System.out.println(user);
  30. }
  31.  
  32. @Test
  33. public void testFindUserByUserName() throws Exception {
  34. String resource = "SqlMapConfig.xml";
  35. InputStream inputStream = Resources.getResourceAsStream(resource);
  36. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
  37.  
  38. SqlSession session = factory.openSession();
  39. List<User> list = session.selectList("test.findUserByUserName", "王");
  40. System.out.println(list);
  41. }
  42.  
  43. @Test
  44. public void testInsertUser() throws Exception {
  45. String resource = "SqlMapConfig.xml";
  46. InputStream inputStream = Resources.getResourceAsStream(resource);
  47. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
  48.  
  49. SqlSession session = factory.openSession();
  50. User user = new User();
  51. user.setUsername("赵四");
  52. user.setBirthday(new Date());
  53. user.setSex("1");
  54. user.setAddress("北京昌平");
  55. System.out.println(user.getId());
  56.  
  57. session.insert("test.insertUser", user);
  58. // mybatis中事务默认是开启的,所以在mybatis中不需要显式开启事务,只需要显式提交事务
  59. // 提交事务
  60. session.commit();
  61. System.out.println(user.getId());
  62. }
  63.  
  64. @Test
  65. public void testDeleteUserById() throws Exception {
  66. String resource = "SqlMapConfig.xml";
  67. InputStream inputStream = Resources.getResourceAsStream(resource);
  68. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
  69.  
  70. SqlSession session = factory.openSession();
  71. session.delete("test.deleteUserById", 27);
  72. session.commit();
  73. }
  74.  
  75. @Test
  76. public void testUpdateUserById() throws Exception {
  77. String resource = "SqlMapConfig.xml";
  78. InputStream inputStream = Resources.getResourceAsStream(resource);
  79. SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
  80.  
  81. SqlSession session = factory.openSession();
  82.  
  83. User user = new User();
  84. user.setUsername("赵四");
  85. user.setId(24);
  86. session.update("test.updateUserById", user);
  87. session.commit();
  88. }
  89. }

简单的mybatis环境搭建和测试已完成,整个目录结构如下

Mybatis环境搭建及测试的更多相关文章

  1. MyBatis之MyBatis环境搭建

    MyBatis之MyBatis环境搭建 一.MyBatis开发环境搭建 1.引入Jar包 ①MyBatis mybatis-3.4.1.jar ant-1.9.6.jar ant-launcher-1 ...

  2. MyBatis 环境搭建(四)

    MyBatis 引言 在回顾JDBC时,我们已经创建有 Java 工程,而且也已经导入 mysql 依赖包,这里就直接在原有工程上搭建MyBatis环境,以及使用MyBatis来实现之前用 JDBC ...

  3. Tensorflow object detection API ——环境搭建与测试

    1.开发环境搭建 ①.安装Anaconda 建议选择 Anaconda3-5.0.1 版本,已经集成大多数库,并将其作为默认python版本(3.6.3),配置好环境变量(Anaconda安装则已经配 ...

  4. springmvc+mybatis环境搭建

    1.spring+mybatis 环境搭建: A.配置jdbc和dbcp数据源:注意版本com.mysql.cj.jdbc.Driver B.配置sessionfactory,绑定dbcp及配置map ...

  5. MyBatis -01- 初识 MyBatis + MyBatis 环境搭建

    MyBatis -01- 初识 MyBatis + MyBatis 环境搭建 MyBatis 本是 apache 的一个开源项目 iBatis(iBATIS = "internet" ...

  6. 【运维技术】kafka三实例集群环境搭建及测试使用

    kafka三实例集群环境搭建及测试使用 单机搭建分为两部分:1. 软件安装启动 2. 软件配置 软件安装启动: # 切换到目录 cd /app # 获取kafka最新安装包,这边使用的是镜像地址,可以 ...

  7. Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类

    Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...

  8. Tensorflow object detection API(1)---环境搭建与测试

    参考: https://blog.csdn.net/dy_guox/article/details/79081499 https://blog.csdn.net/u010103202/article/ ...

  9. C++调用Lua编程环境搭建及测试代码示例

    C++调用Lua编程环境搭建及测试代码示例 摘要:测试环境是VS2005+LuaForWindows_v5.1.4-45.exe+WIN7 1.安装lua开发环境LuaForWindows_v5.1. ...

随机推荐

  1. git不显示提交代码

    今天提交代码找不到提交的具体代码,找了好半天,最后发现是右边能下拉能拉下去,尴尬.

  2. 32、最长有效括号 | 算法(leetode,附思维导图 + 全部解法)300题

    零 标题:算法(leetode,附思维导图 + 全部解法)300题之(32)最长有效括号 一 题目描述 二 解法总览(思维导图) 三 全部解法 1 方案1 1)代码: // 方案1 "滑动窗 ...

  3. Notepad++—设置背景颜色

    之前,编程一直用的都是黑色背景色,最近发现,黑色背景色+高光字体,时间久了对眼睛特别不好.感觉自己编程到现在几年时间,眼睛就很不舒服,甚至有青光眼的趋势.所以,改用白底黑字,即"日间模式&q ...

  4. day02 Rsyuc备份服务器

    day02 Rsyuc备份服务器 一.备份 1.什么是备份 备份就是把重要的数据或者文件复制一份保存到另一个地方,实现不同主机之间的数据同步 一般数据比较重要的情况下,数据如果丢失很容易找不回来了的, ...

  5. Python计算期权隐含波动率

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. Black-Scholes 将期权价格描述为标的价格.行权价.无风险利率.到期时间和波动性的函数.  V ...

  6. Netty之ByteBuf

    本文内容主要参考<<Netty In Action>>,偏笔记向. 网络编程中,字节缓冲区是一个比较基本的组件.Java NIO提供了ByteBuffer,但是使用过的都知道B ...

  7. 文件读写以及NMEA码中GPS信息的提取

    首先先了解下什么是NMEA码,这里有很好的解释,就不直接搬运了 http://www.gpsbaby.com/wz/nmea.html 首先要找到包含GPS信息的文本行,即字符串GPGGA所在行 $G ...

  8. 【Android】No Android SDK found(mac)+ 真机调试

     [1]No Android SDK found 如果没下载SDK,可以去google官方下载 如果因为上网问题,这里提供两个网址,有人整理好了,这里先谢谢他们,下面两个择其一下载 http://to ...

  9. Docker学习(四)——Docker容器连接

    Docker容器连接     容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过-P或-p参数来指定端口映射. 下面我们来实现通过端口连接到一个docker容器. 1.网络端口映射    ...

  10. final&static

    final 1.final修饰类,那么该类不能有子类,那么也就没有子类重写父类的方法,也就没有多态 2.final修饰成员变量,那么成员变量要么显式赋值(用第一种),要么在构造方法中赋值 无论哪一种, ...