[java][50]myBatis入门+Demo

  一、demo

  首先,直接上手试一个demo,完全来自教程:深入浅出Mybatis系列(一)---Mybatis入门

  作为小白,记录一下。

1. 注意:

(1)各个文件在目录树的位置,不要放错!src/main/java下面放的是java文件,src/main/resources下面放的是其他文件。

(2)dbConfig.properties是空的,但必须有此文件。否则报错

2. 目录树结构


3. mySQL建立数据表


4. 代码

1)UserDao.java 接口

package com.dy.dao;

import java.util.List;

import com.dy.entity.User;

public interface UserDao {

    public void insert(User user);
    
    public User findUserById (int userId);
    
    public List<User> findAllUsers();
    
}

2)User.java 实体类

package com.dy.entity;

public class User {

    private int id;
    private String name;
    private String password;
    private int age;
    private int deleteFlag;
    
    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 String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public int getDeleteFlag() {
        return deleteFlag;
    }
    public void setDeleteFlag(int deleteFlag) {
        this.deleteFlag = deleteFlag;
    }
	@Override
	public String toString()
	{
		return "User [id=" + id + ", name=" + name + ", password=" + password + ", age=" + age + ", deleteFlag="
				+ deleteFlag + "]";
	}
    
}

3)userDao-mapping.xml 

<?xml version="1.0" encoding="UTF-8" ?>   
<!DOCTYPE mapper  PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 
<mapper namespace="com.dy.dao.UserDao">

   <select id="findUserById" resultType="com.dy.entity.User" > 
      select * from user where id = #{id}
   </select>

</mapper>

4)configuration.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>  
  
  <!-- 指定properties配置文件, 我这里面配置的是数据库相关 -->  
  <properties resource="dbConfig.properties"></properties>  
    
  <!-- 指定Mybatis使用log4j 
  <settings>  
     <setting name="logImpl" value="LOG4J"/>  
  </settings>  -->
  
        
  <environments default="development">  
    <environment id="development">  
      <transactionManager type="JDBC"/>  
      <dataSource type="POOLED">  
          <!--  
          如果上面没有指定数据库配置的properties文件,那么此处可以这样直接配置   
        <property name="driver" value="com.mysql.jdbc.Driver"/>  
        <property name="url" value="jdbc:mysql://localhost:3306/test1"/>  
        <property name="username" value="root"/>  
        <property name="password" value="root"/>  
         -->  
           
         <!-- 上面指定了数据库配置文件, 配置文件里面也是对应的这四个属性 -->  
         <property name="driver" value="com.mysql.jdbc.Driver"/>  
         <property name="url" value="jdbc:mysql://localhost:3306/database1"/>  
         <property name="username" value="root"/>  
         <property name="password" value="123456"/>  
           
      </dataSource>  
    </environment>  
  </environments>  
    
  <!-- 映射文件,mybatis精髓, 后面才会细讲 -->  
  <mappers>  
    <mapper resource="com/dy/dao/userDao-mapping.xml"/>  
  </mappers>  
    
</configuration>  

5)UserDaoTest.java 测试

package com.dy.dao;

import java.io.IOException;

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.Assert;
import org.junit.Test;

import com.dy.entity.User;


public class UserDaoTest {
	
    @Test
    public void findUserById() {
        SqlSession sqlSession = getSessionFactory().openSession();  
        UserDao userMapper = sqlSession.getMapper(UserDao.class);  
        User user = userMapper.findUserById(1);  
        System.out.println(user.toString());
        Assert.assertNotNull("没找到数据", user);
        
    }
	
    
    //Mybatis 通过SqlSessionFactory获取SqlSession, 然后才能通过SqlSession与数据库进行交互
    private static SqlSessionFactory getSessionFactory() {  
        SqlSessionFactory sessionFactory = null;  
        String resource = "configuration.xml";  
        try {  
            sessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
        return sessionFactory;  
    }  
    
}

6)pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>test</groupId>
  <artifactId>mybatisDemo</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>mybatisDemo Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    
    <!--添加servlet-->
     <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
    </dependency>
    
     <!-- 添加log4j -->  
    <dependency>  
        <groupId>log4j</groupId>  
      <artifactId>log4j</artifactId>  
        <version>1.2.16</version>  
    </dependency>  
      
    <!-- 添加mybatis -->  
    <dependency>  
        <groupId>org.mybatis</groupId>  
      <artifactId>mybatis</artifactId>  
        <version>3.2.6</version>  
    </dependency>  
      
    <!-- 添加mysql驱动 -->  
    <dependency>  
        <groupId>mysql</groupId>  
        <artifactId>mysql-connector-java</artifactId>  
        <version>5.1.12</version>  
    </dependency>  
    
  </dependencies>
  <build>
    <finalName>mybatisDemo</finalName>
  </build>
</project>

5. 运行

右键UserDaoTest.java -> Run As -> Junit Test


ok!


二、理论

1. mybatis的简介、功能架构、整体流程图


三、完整教程

1. Mybatis深入浅出系列 

本文Demo来自此系列的第一篇

2. mybatis

别人专门制作的教程,很系统

 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值