myBatis也是一个持久型框架,相较于hibernate来说,算是轻量级的。

1.配置mybatis环境

  相关jar下载地址:mybatis+mysalJAR包

2.新建一个java project工程

2.1配置log4j.properties文件,用于日志输出

 log4j.rootCategory=DEBUG, 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

log4j

2.2配置MybatisConfig.xml,用于配置数据库连接

 <?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE configuration
  PUBLIC "-//mynatis.org//DTD Config 3.0 EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">

 <configuration>
     <!-- 别名 -->
     <typeAliases>
         <typeAlias alias="User" type="com.juin.entity.User" />
         <typeAlias alias="Person" type="com.juin.entity.Person" />
     </typeAliases>

     <environments default="development">
     <environment id="development">
     <transactionManager type="JDBC">

     </transactionManager>
     <dataSource type="POOLED">
     <property name="driver" value="com.mysql.jdbc.Driver"/>
     <property name="url" value="jdbc:mysql://localhost:3306/mybatis_test"/>
     <property name="username" value="juin"/>
     <property name="password" value="123654"/>
     </dataSource>
     </environment>
     </environments>

     <mappers>
         <mapper resource="com/juin/map/juinUser.xml"/>
         <mapper resource="com/juin/map/person.xml"/>
         <mapper class="com.juin.map.IUser"/>
     </mappers>
 </configuration>

MyBatisConfig.xml

2.3配置juinUser.xml,前面忘记说了,mybatis实现了代码与数据库连接语句的分离。

 <?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="domain.blog.mappers.AuthorMapper">
     <select id="findById" parameterType="int" resultType="com.juin.entity.User">
         select * from user where id=#{id}
     </select>

     <insert id="insertUser" parameterType="User" statementType="PREPARED"
         keyProperty = "id" useGeneratedKeys = "true">
         insert into user (username,psw) values
         (#{username},#{psw})
     </insert>

     <update id="updateUser" parameterType="User">
         UPDATE User SET
         username=#{username},
         psw=#{psw}
         where id = #{id}
     </update>

     <select id="loginSelect" parameterType="hashmap" resultType="User">
         select * from user where username = #{username} and psw = #{psw}
     </select>

     <select id="loginSelect2" parameterType="User" resultType="User">
         select * from user where username = #{username} and psw = #{psw}
     </select>

     <select id="selectList" resultType="User">
         select * from user
     </select>

     <resultMap id="UserMap" type="User">
         <id property="id" column="id"/>
         <result property="username" column="username"/>
         <result property="psw" column="psw"/>
     </resultMap>
     <select id="selectUsers" resultMap="UserMap">
         select * from user
     </select>
 </mapper>

juinUser.xml

2.4创建User实体类

 package com.juin.entity;

 public class User {
     private int id;
     private String username;
     private String psw;

     public int getId() {
         return id;
     }

     public void setId(int id) {
         this.id = id;
     }

     public String getUsername() {
         return username;
     }

     public void setUsername(String username) {
         this.username = username;
     }

     public String getPsw() {
         return psw;
     }

     public void setPsw(String psw) {
         this.psw = psw;
     }
 }

User.java

2.5创建测试类

 package com.juin.test;

 import java.io.IOException;
 import java.io.Reader;
 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 com.juin.entity.User;

 public class test1 {

     public static void main(String[] args) {

         String resource = "com/juin/map/MybatisConfig.xml";
         Reader reader = null;
         SqlSession session = null;

         try {
             reader = Resources.getResourceAsReader(resource);
         } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
         SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
         session = sqlMapper.openSession();
         User temp = session.selectOne("findById", 2);
         System.out.println(temp.getUsername());
         session.close();
     }

 }

test

myBatis学习之路1-基本功能实现的更多相关文章

  1. mybatis学习之路----批量更新数据两种方法效率对比

    原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...

  2. mybatis学习之路

    MyBatis 是支持普通SQL查询.存储过程和高级映射的优秀持久层框架. MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装. MyBatis可以使用简单的XML或注解 ...

  3. MyBatis学习之路之configuration配置

    1.首先讲解的是MyBatis核心配置文件configuration.xml的配置 一个完整的configuration.xml配置顺序如下: properties,settings,typeAlia ...

  4. mybatis学习之路----mysql批量新增数据

    原文:https://blog.csdn.net/xu1916659422/article/details/77971867 接下来两节要探讨的是批量插入和批量更新,因为这两种操作在企业中也经常用到. ...

  5. springboot 学习之路 3( 集成mybatis )

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  6. 中小研发团队架构实践之生产环境诊断工具WinDbg 三分钟学会.NET微服务之Polly 使用.Net Core+IView+Vue集成上传图片功能 Fiddler原理~知多少? ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) C#程序中设置全局代理(Global Proxy) WCF 4.0 使用说明 如何在IIS上发布,并能正常访问

    中小研发团队架构实践之生产环境诊断工具WinDbg 生产环境偶尔会出现一些异常问题,WinDbg或GDB是解决此类问题的利器.调试工具WinDbg如同医生的听诊器,是系统生病时做问题诊断的逆向分析工具 ...

  7. 新篇章之我的java学习之路下

    昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

  8. springboot 学习之路 1(简单入门)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

  9. springboot 学习之路 4(日志输出)

    目录:[持续更新.....] spring 部分常用注解 spring boot 学习之路1(简单入门) spring boot 学习之路2(注解介绍) spring boot 学习之路3( 集成my ...

随机推荐

  1. 【Dubbo 源码解析】08_Dubbo与Spring结合

    Dubbo 与 Spring 结合 基于 dubbo.jar 内的 META-INF/spring.handlers 配置,Spring 在遇到 dubbo 名称空间时,会回调 DubboNamesp ...

  2. iOS - 解决 Cocoapods 第三方库下载不下来

    Cocoapods 第三方库下载不下来问题:一些第三方的库由于网的原因下载不下里 (解决思路:(原理) cocoapods 下载的时候 会先从缓存中拿 缓存中没有再去下载 所以可以把下载不下来的放到缓 ...

  3. [Golang] 编译程序时打上git提交信息标记

    1.加入代码 //version.go package version import ( "flag" "fmt" "os" ) var ( ...

  4. js版的in_array的实现方法

    这是一个JS版的判断数组内的元素的方法. var arr = ['a','b','c']; console.log(in_array('b',arr)); // true function in_ar ...

  5. layui---form表单模块

    虽然对layui比较熟悉了,但是今天有时间还是将layui的form表单模块重新看一下. https://www.layui.com/doc/modules/form.html 一.更新渲染 layu ...

  6. Grunt jshint Warning: Path must be a string . Received null Use

    用grunt监视文件,出现'Warning: Path must be a string . Received null Use --force to continue 原因是没有设置reporter ...

  7. bootstrap滚动监视原理实现

    最近在公司实习,刚好写了一个静态的网页,用到了滚动监视,就自己写了个监视,话不多说直接进入正题 $(function () { var $root = $("html,body") ...

  8. Eclipse的设置、调优、使用(解决启动卡顿等问题)----转

    eclipse调优 一般在不对eclipse进行相关设置的时候,使用eclipse总是会觉得启动好慢,用起来好卡,其实只要对eclipse的相关参数进行一些配置,就会有很大的改善. 加快启动速度 1. ...

  9. vue里的渲染以及computed的好处

    如果vue里的某个methods函数执行,导致页面重新渲染,那么所有页面渲染相关的methods函数会重新执行以及时的渲染页面 但是大量函数的重新没有必要的执行会导致性能的下降, 此时如果把没有必要再 ...

  10. python sys.modules模块

    sys.modules是一个全局字典,该字典是python启动后就加载在内存中.每当程序员导入新的模块,sys.modules都将记录这些模块.字典sys.modules对于加载模块起到了缓冲的作用. ...