一.简述mybatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

二.如何使用mydatis

1.引入mysql 和mydatis的jar包

<dependencies><!-- mysql驱动jar包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.20</version></dependency><!-- mybatis jar包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.6</version></dependency>
<dependencies>

2.在resources中创建mydatis的配置文件:mydatis.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><environments default="development"><environment id="development"><transactionManager type="JDBC" /><!--数据源的配置:name的值固定  value的值要根据客户自己修改--><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=Asia/Shanghai" /><property name="username" value="root" /><property name="password" value="001024" /></dataSource></environment></environments>
<!--注册映射文件--><mappers><mapper resource="mapper/userMapper.xml"/></mappers>
</configuration>

3.创建数据库和表

4.创建实体类

使用lombok插件:它可以帮你生成实体类的get和set方法 而且可以帮你生成构造方法。重写toString方法

(1)引入lombok  jar包

 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency>

(2)创建实体类

@Data  //getter,setter和toString
@NoArgsConstructor  //无参构造
@AllArgsConstructor  //所有有参构造
public class User {private int id;private String username;private String name;}

5.创建mybatis和数据库的映射文件 (在resources中创建目录mapper。并在mapper中创建User Mappe.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:命名空间可以随便起名,但是后期我们要求命名空间的值必须和所对应的dao相同
--> <mapper namespace="com.tym"><!--id:标签的唯一标识resultType: 定义返回的类型 把sql查询的结果封装到哪个实体类钟parametertype: 参数类型#{必须和属性对应}#{id}===表示占位符等价于?  这是mybatis框架的语法--><select id="userIdFind" resultType="com.tym.entity.User">select * from t_user where id=#{id}</select><insert id="userInsert" parameterType="com.tym.entity.User">insert into t_user values(null,#{username},#{name})</insert><delete id="userDelete" parameterType="int">delete from t_user where id=#{id}</delete><select id="userFindAll" resultType="com.tym.entity.User">select * from t_user</select><update id="userUpdate" parameterType="com.tym.entity.User">update t_user set username=#{username},name=#{name} where id=#{id}</update>
</mapper>

注意:==把映射文件注册到配置文件上== mybatis.xml上

6.测试mydatis

public class Test02 {@Test//测试根据id查询public void testIdFiind()throws Exception{//1.读取mybatis配置文件的内容----未来不需要写tomcat 解析配置文件Reader reader= Resources.getResourceAsReader("mybatis.xml");//2. 获取SqlSessionFactory对象SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader);//3. 获取SqlSession对象----封装了对数据库操作的各种方法SqlSession session = factory.openSession();//调用查询一个结果的接口//String statement, 命名空间+id----指向sql标签// Object parameter 需要实参User user = session.selectOne("com.tym.userIdFind", 1);System.out.println(user);session.close();}@Test//测试添加public void testAdd()throws Exception{Reader reader = Resources.getResourceAsReader("mybatis.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);SqlSession session = factory.openSession();User user = new User();user.setUsername("xy");user.setName("XY");int row = session.insert("com.tym.userInsert", user);System.out.println(row);session.commit();session.close();}@Test//测试删除public void testDelete()throws Exception{Reader reader = Resources.getResourceAsReader("mybatis.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);SqlSession session = factory.openSession();int insert = session.delete("com.tym.userDelete", 5);System.out.println(insert);session.commit();session.close();}@Test//测试查询所有public void testFindAll()throws Exception{Reader reader =Resources.getResourceAsReader("mybatis.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);SqlSession session = factory.openSession();List<Object> list = session.selectList("com.tym.userFindAll");System.out.println(list);session.commit();session.close();}@Test//测试修改public void testUpdate()throws Exception{Reader reader =Resources.getResourceAsReader("mybatis.xml");SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);SqlSession session = factory.openSession();User user = new User(7,"xzq","薛之谦");int row = session.update("com.tym.userUpdate", user);System.out.println(row);session.commit();session.close();}
}

三.mydatis的一些优化

1.为实体类起别名(在mybatis.xml配置文件 )

    <typeAliases><!--单独为某个实体类起别名 --><typeAlias type="com.ykq.entity.User" alias="u"/><!--为指定包下的实体类起别名该别名就是实体类名--><package name="com.ykq.entity"/></typeAliases>

2.添加sql日志

(1)引入log4j的jar包

 <dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>

(2) 添加日志的文件配置(在resources中创建)--log4j.properties必须

log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

mybatis框架(1)相关推荐

  1. MyBatis框架概述

    MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动.创建connection.创建statement.手动设 ...

  2. Mybatis入门:1(Mybatis框架的环境搭建)

    Mybatis框架的环境搭建 一.创建maven工程并导入坐标 导入坐标: <dependencies><dependency><groupId>org.mybat ...

  3. c++框架有哪些_Java Mybatis框架入门教程_v20200726

    MyBatis 的前身是 Apache 的开源项目 iBatis.MyBatis 几乎可以代替 JDBC,是一个支持普通 SQL 查询,存储过程和高级映射的基于 Java 的优秀持久层框架.MyBat ...

  4. MyBatis框架添加客户有哪些步骤

    在MyBatis的映射文件中,添加操作是通过元素来实现的.例如,向数据库中的t_customer表中插入一条数据可以通过如下配置来实现. 在上述配置代码中,传入的参数是一个Customer类型,该类型 ...

  5. 【MyBatis学习01】宏观上把握MyBatis框架

    今天开始学习mybatis框架,博客主要记录学习过程中的一些总结,如有错误之处,欢迎留言指正~先用mybatis的鸟鸟来镇个楼,咳咳~~ mybatis框架是一个持久层框架,是Apache下的顶级项目 ...

  6. spring mvc + mybatis 框架搭建 ( idea + gradle)

    spring mvc + mybatis 框架搭建 idea + gradle 刚刚入门,只是个人见解,如有错误或者问题欢迎指出指正. 邮箱: [ wgh0807@qq.com ] 文章引用: [ap ...

  7. MyBatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 本文授权转载请注明来自FreeBuf.COM 链接:https:/ ...

  8. Hibernate学习总结【比较与Mybatis框架之间的区别】

    经过一周的Hibernate学习,我理解了作为以JPA为核心的持久层查询标准.JPA所涉及的思想为ORM(object relational mapping),它解释了为什么我们的实体关系要和数据库一 ...

  9. 阿里巴巴的持久层抛弃了hibernate,采用的却是MyBatis框架。。。

    最近一直在研究MyBatis源码,作为国内经常使用的持久层框架,其内部代码的设计非常优秀.比如在开发过程中,有能力对框架进行深度的定制化开发,解决BUG也更加得心应手!另外学习开发者是如何设计高扩展性 ...

  10. MyBatis框架的文件配置

    第一步:log4j.properties的配置 原因:Mybatis的日志输出是依赖与log4j的,所以必须要配置 # Global logging configuration log4j.rootL ...

最新文章

  1. 吴恩达《构建机器学习项目》精炼笔记(1)-- 机器学习策略(上)
  2. ptrace 系统调用
  3. tooooooooooooold
  4. 2020年泰国物联网五大部门中 制造业物联网市值为13亿美元
  5. java 综合练习_Java第二季6-1综合练习作业
  6. 【调试工具】之VIM快捷键
  7. if __name__ == '__main__' 的正确理解
  8. .NET Compact Framework 2.0 SP1 发布了
  9. 峰峰值(Vpp)与dBm的转换关系
  10. HTML+CSS+JavaScript实现植物大战僵尸
  11. PS学习笔记一:跟着李涛学PS第一讲——光和色的关系
  12. 什么是SPA,有什么优缺点
  13. 滴滴DSRC抢楼大赛,十一快车券飞起来
  14. 免费云服务器获取方法 云服务器购买
  15. golang快速入门[6.2]-集成开发环境-emacs详解
  16. 为什么下载的破解游戏和软件经常会被报毒?
  17. win32游戏开发(2) --连连看游戏制作(vc++版)
  18. js实现图片连续滚动播放
  19. poi设置word表格单元格宽度_java poi如何设置word的页面的大小和水平方向?
  20. 地震数据SEGY格式介绍及其查看分析(附示例地震数据)

热门文章

  1. 学校计算机老师关心学生的作文600字,老师关爱学生的作文三篇
  2. mysql高级查询~分页查询
  3. Drools从入门到精通之KIE
  4. Python画棵圣诞树 ~ Merry Christmas ~
  5. 名帖134 黄自元 楷书《陶先生墓表》
  6. error: Store update, insert, or delete statement affected an unexpected number of rows (0). Entities
  7. 小米机器人“铁大”学会打架子鼓,2.0已投入研发
  8. 数据存储单位之间的换算关系
  9. STM32完成SD卡的数据写入
  10. EtherCAT使用与解析-WKC计算公式