南昌网站设计网站开发/营销型网站制作成都
一、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;}@Overridepublic 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 {@Testpublic 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
别人专门制作的教程,很系统