文章目录

  • 1.创建数据库
  • 2.添加依赖
  • 3.创建实体类 user
  • 4.创建实体关系映射配置文件 usermapper.xml
  • 5.创建mybatis配置文件 mybatis-config.xml
  • 6.创建日志属性文件 log4j.propertis
  • 测试:
  • (二)不使用MyBatis配置文件获取SQL会话对象:
    • 1.接口——UserMapper
    • 2.创建用户数据源工厂——UserDataSource
    • 测试:

1.创建数据库

CREATE TABLE `t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) DEFAULT NULL,`age` int(11) DEFAULT NULL,`address` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
use 't_user'
INSERT INTO `t_user` VALUES ('1', '李洪刚', '20', '江阳区嘉裕花园3栋四楼15#');
INSERT INTO `t_user` VALUES ('2', '王云华', '30', '纳溪区大渡镇红鱼村三大队');
INSERT INTO `t_user` VALUES ('3', '郑小翠', '21', '江阳区老窖花园2栋五楼15号');# 2.添加依赖
<font color="red"></font>
```java<dependencies><!--https://mvnrepository.com/artifact/org.mybatis/mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><!--https://mvnrepository.com/artifact/mysql/mysql-connector-java--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version></dependency><!--https://mvnrepository.com/artifact/junit/junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!--https://mvnrepository.com/artifact/log4j/log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies>

2.添加依赖

Maven repository

    <dependencies><!--https://mvnrepository.com/artifact/org.mybatis/mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><!--https://mvnrepository.com/artifact/mysql/mysql-connector-java--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.40</version></dependency><!--https://mvnrepository.com/artifact/junit/junit--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><!--https://mvnrepository.com/artifact/log4j/log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency></dependencies>

3.创建实体类 user

package net.ty.mybatis.bean;/*** 功能:用户实体类*/
public class User {private int id;private String name;private int age;private String address;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +", address='" + address + '\'' +'}';}
}

4.创建实体关系映射配置文件 usermapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="net.ty.mybatis.mapper.UserMapper"><select id="findById" parameterType="int" resultType="User">SELECT * FROM user WHERE id = #{id};</select><select id="findAll" resultType="User">SELECT * FROM user;</select>
</mapper>

5.创建mybatis配置文件 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!--配置实体类别名--><typeAliases><typeAlias type="net.ty.mybatis.bean.User" alias="User"/></typeAliases><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/testdb"/><property name="username" value="root"/><property name="password" value="ccy123"/></dataSource></environment></environments><mappers><mapper resource="mapper/UserMapper.xml"/></mappers>
</configuration>

6.创建日志属性文件 log4j.propertis

log4j.rootLogger=WARN, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

测试:

package net.ty.mybatis.bean;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.io.IOException;
import java.io.Reader;
import java.util.List;/*** 功能:测试用户操作*/
public class TestUserOperation {private SqlSession session;@Beforepublic void init() {try {// 读取mybatis配置文件Reader reader = Resources.getResourceAsReader("mybatis-config.xml");// 利用mybatis配置文件构建SQL会话工厂SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);// 利用SQL会话工厂获取会话session = factory.openSession();System.out.println("session对象已创建。");} catch (IOException e) {e.printStackTrace();}}@Testpublic void testFindById() {int id = 1;User user = session.selectOne("net.ty.mybatis.mapper.UserMapper.findById", id);if (user != null) {System.out.println(user);} else {System.out.println("编号为[" + id + "]的用户未找到。");}}@Testpublic void testFindAll() {List<User> users= session.selectList("net.ty.mybatis.mapper.UserMapper.findAll");for (User user : users) {System.out.println(user);}
//        users.forEach(user -> System.out.println(user));}@Afterpublic void destroy() {session.close();System.out.println("session对象已关闭。");}
}

(二)不使用MyBatis配置文件获取SQL会话对象:

1.接口——UserMapper

package net.ty.mybatis.mapper;import net.ty.mybatis.bean.User;
import org.apache.ibatis.annotations.Select;import java.util.List;public interface UserMapper {@Select("SELECT * FROM user WHERE id = #{id}")User findById(int id);@Select("SELECT * FROM user")List<User> findAll();
}

2.创建用户数据源工厂——UserDataSource

package net.ty.mybatis.datacource;import org.apache.ibatis.datasource.pooled.PooledDataSource;import javax.sql.DataSource;/*** 功能:用户数据源工厂*/
public class UserDataSourceFactory {public static DataSource getUserDataSource(){return new PooledDataSource("com.mysql.jdbc.Driver","jdbc:mysql://localhost:3306/testdb","root","ccy123");}
}

测试:

package net.ty.mybatis.mapper;import net.ty.mybatis.bean.User;
import net.ty.mybatis.datacource.UserDataSourceFactory;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.apache.ibatis.mapping.Environment;import javax.sql.DataSource;
import java.util.List;/*** 功能:测试用户映射器接口*/
public class TestUserMapperNew {private SqlSession session;private UserMapper userMapper;@Beforepublic void init() {//获取数据源DataSource dataSource = UserDataSourceFactory.getUserDataSource();//创建事物工厂TransactionFactory transactionFactory = new JdbcTransactionFactory();//创建数据库环境Environment environment = new Environment("development", transactionFactory, dataSource);//基于环境创造配置对象Configuration configuration = new Configuration(environment);//添加用户映射器接口configuration.addMapper(UserMapper.class);// 利用mybatis配置文件构建SQL会话工厂SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(configuration);// 利用SQL会话工厂获取会话session = factory.openSession();userMapper = session.getMapper(UserMapper.class);System.out.println("session对象已创建。");}@Testpublic void testFindById() {int id = 1;User user = userMapper.findById(id);if (user != null) {System.out.println(user);} else {System.out.println("编号为[" + id + "]的用户未找到。");}}@Testpublic void testFindAll() {List<User> users = userMapper.findAll();users.forEach(user -> System.out.println(user));System.out.println();for (int i = 0; i < users.size(); i++) {System.out.println(users.get(i));}System.out.println();for (User user : users) {System.out.println(user);}}@Afterpublic void destroy() {session.close();System.out.println("session对象已关闭。");}
}

MyBatis学习(一)相关推荐

  1. 【转】MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突

    [转]MyBatis学习总结(四)--解决字段名与实体类属性名不相同的冲突 在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体 ...

  2. 事务中mybatis通过id查不到但是通过其他条件可以查到_40打卡 MyBatis 学习

    第57次(mybatis) 学习主题:mybatis 学习目标: 1 掌握框架的概念 2 掌握mybatis环境搭建 对应视频: http://www.itbaizhan.cn/course/id/8 ...

  3. mybatis学习笔记(13)-延迟加载

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...

  4. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

    上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对u ...

  5. mybatis学习笔记(7)-输出映射

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...

  6. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...

  7. mybatis学习笔记(3)-入门程序一

    2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...

  8. Mybatis学习总结二

    Mybatis学习总结二 0.不需要修改的文件(在src下面) jdbc.properties文件 log4j.properties文件 SqlMapConfig.xml文件 1.高级结果映射 1.1 ...

  9. MyBatis学习总结一

    Mybatis学习总结一 1.Mybatis介绍 2.Mybatis架构图 2.1.架构图的意义 2.1.1.JDBC编写 2.1.2.反思问题 2.2.Mybatis架构图 3.入门案例 3.1.下 ...

  10. MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三

    前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...

最新文章

  1. Mahout推荐算法API详解
  2. What every programmer needs to know about game networking
  3. 栈的顺序存储及实现(二)
  4. [面试] Thread 中 start() 和 run() 的区别都不知道,还怎么混?
  5. MAC硬盘空间减少的隐藏杀手,VM到底是什么?
  6. sql server 远程连接问题
  7. Caused by: java.lang.ClassNotFoundException: backtype.storm.topology.IRichSpout
  8. hdb3编码规则波形_当输入分别为全1,全0,m序列码时,写出他们的AMI和HDB3编码结果,并记录对应的波形图P101和TP103.(共6个图)...
  9. PHP实现用户扫描二维码后提示扫码成功的操作
  10. 奥数题-求空间4点构成的四面体体积
  11. 配置全局使用的scss样式公用样式函数(后台框架整体颜色改变)
  12. [年终总结]这就是2016的我
  13. Sql Server常用命令整理篇:生成连续日期序列并循环
  14. ISO 认证是哪三个?
  15. 视频教程-高效办公软件之word2010入门到精通全套视频-Office/WPS
  16. list 根据相同字段合并数据
  17. 怎么安装linux操作系统
  18. java事务占用内存吗,如何排查java应用中CPU使用率高或内存占用高的问题
  19. ES集成中文分词器: IK 3.0
  20. 从惠普“质量门”到洋品牌的习惯性傲慢

热门文章

  1. Effective C++改善程序与设计的55个具体的做法
  2. 标题栏、菜单栏、工具栏、状态栏
  3. Java生成二维码图片并打包下载
  4. 【Spring Cloud 基础设施搭建系列】Spring Cloud Demo项目 整合Spring Data JPA
  5. LeetCode day11
  6. leetcode笔记(五)809. Expressive Words
  7. 龙芯linux内核空间内存划分,最强龙芯+最新内核+最大内存
  8. 使用RestTemplate  对接微信付款码支付接入问题记录
  9. Oracle PL/SQL 循环
  10. 2014年第五届蓝桥杯C/C++程序设计本科B组省赛 史丰收速算(代码填空)