简单的MyBatis使用DEMO。

本文提供了一个简单的MyBatis使用DEMO,涵盖了整体结构、Maven依赖、数据准备、配置文件详解及代码解析,帮助初学者快速上手MyBatis。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的MyBatis使用DEMO。

1)整体结构


2)maven依赖


3)数据准备
4)配置文件


5)代码详解


package com.my.mybatis;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
public class TestMyBatis {
static SqlSessionFactory sqlSessionFactory = null;
static {
sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
}
public static void main(String[] args) {
testAdd();
getUser();
getUserMap();
getUserMap1();
getUserCount();
}
public static void testAdd() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User("lisi", new Integer(25));
userMapper.insertUser(user);
sqlSession.commit();// 这里一定要提交,不然数据进不去数据库中
} finally {
sqlSession.close();
}
}
public static void getUser() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUser("zhanjindong1");
System.out.println("name: " + user.getName() + "|age: "
+ user.getAge());
} finally {
sqlSession.close();
}
}
public static void getUserMap() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<Map<String, Object>> userMap = userMapper.getUserMap("lisi");
System.out.println("userMap: " + userMap);
} finally {
sqlSession.close();
}
}
public static void getUserMap1() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<Map<String, Object>> userMap = userMapper.getUserMap1("lisi");
System.out.println("userMap1: " + userMap);
} finally {
sqlSession.close();
}
}
public static void getUserCount() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int userCount = userMapper.getUserCount("zhangsan");
System.out.println("userCount: " + userCount);
} finally {
sqlSession.close();
}
}
}

运行结果:
Fri Apr 14 08:38:04 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
name: zhanjindong1|age: 18
userMap: [{name=lisi, id=5, age=25}, {name=lisi, id=6, age=25}, {name=lisi, id=7, age=25}, {name=lisi, id=8, age=25}, {name=lisi, id=9, age=25}, {name=lisi, id=10, age=25}, {name=lisi, id=11, age=25}, {name=lisi, id=12, age=25}, {name=lisi, id=13, age=25}, {name=lisi, id=14, age=25}, {name=lisi, id=15, age=25}, {name=lisi, age=25}, {name=lisi, age=25}]
userMap1: [com.my.mybatis.Account@756e4d, com.my.mybatis.Account@e2abd, com.my.mybatis.Account@eff760, com.my.mybatis.Account@2f32ff, com.my.mybatis.Account@13f2bb1, com.my.mybatis.Account@e9a829, com.my.mybatis.Account@18a00e3, com.my.mybatis.Account@8b7f67, com.my.mybatis.Account@c7a4e4, com.my.mybatis.Account@178f375, com.my.mybatis.Account@c87b21, com.my.mybatis.Account@1375618, com.my.mybatis.Account@10399e]
userCount: 2

附上全套源码:

1)package com.my.mybatis;
public class Account {
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}

}
2)package com.my.mybatis;
public class User {
    private String name;
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public User(String name, Integer age) {
        super();
        this.name = name;
        this.age = age;
    }


    public User() {
        super();
    }
}


package com.my.mybatis;


import java.util.List;
import java.util.Map;


3)public interface UserMapper {
    public void insertUser(User user);
    public User getUser(String name);
public int getUserCount(String string);
public List<Map<String, Object>>  getUserCount1(String string);
public List<Map<String, Object>> getUserMap(String string);
public List<Map<String, Object>> getUserMap1(String string);
public List<Account> getUserMap2(String string);
public List<Map<String, Object>> getUserCount2(String string);
public List<Map<String, Object>> getUser1(String string);
}
4)package com.my.mybatis;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisUtil {
    private final static SqlSessionFactory sqlSessionFactory;
    static {
        String resource = "mybatis-config.xml";
        Reader reader = null;
        try {
            reader = Resources.getResourceAsReader(resource);
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
    }
    public static SqlSessionFactory getSqlSessionFactory() {
        return sqlSessionFactory;
    }
}
5)package com.my.mybatis;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
public class TestMyBatis {
static SqlSessionFactory sqlSessionFactory = null;
static {
sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();
}
public static void main(String[] args) {
testAdd();
getUser();
getUserMap();
getUserMap1();
getUserCount();
}
public static void testAdd() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = new User("lisi", new Integer(25));
userMapper.insertUser(user);
sqlSession.commit();// 这里一定要提交,不然数据进不去数据库中
} finally {
sqlSession.close();
}
}
public static void getUser() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUser("zhanjindong1");
List<Map<String, Object>> userMap = userMapper
.getUser1("zhanjindong1");
System.out.println("name: " + user.getName() + "|age: "
+ user.getAge());


System.out.println("getUser  :userMap: " + userMap);
} finally {
sqlSession.close();
}
}
public static void getUserMap() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<Map<String, Object>> userMap = userMapper.getUserMap("lisi");
System.out.println("getUserMap :userMap: " + userMap);
} finally {
sqlSession.close();
}
}
public static void getUserMap1() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<Map<String, Object>> userMap1 = userMapper.getUserMap1("lisi");
List<Account> userMap2 = userMapper.getUserMap2("lisi");
System.out.println("userMap1: " + userMap1);
System.out.println("userMap2: " + userMap2);
} finally {
sqlSession.close();
}
}
public static void getUserCount() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int userCount = userMapper.getUserCount("zhangsan");
List<Map<String, Object>> userCount1 = userMapper
.getUserCount1("zhangsan");
List<Map<String, Object>> userCount2 = userMapper
.getUserCount2("zhangsan");
System.out.println("userCount: " + userCount);
System.out.println("userCount1: " + userCount1);
System.out.println("userCount2: " + userCount2);
} finally {
sqlSession.close();
}
}
}
6)<?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="com.my.mybatis.UserMapper">
<resultMap id="userMaps" type="com.my.mybatis.Account">
<id column="id" property="id" javaType="Integer" />
<result column="name" property="name" javaType="String" />
</resultMap>
<!-- 这里namespace必须是UserMapper接口的路径” -->
<insert id="insertUser" parameterType="User">
insert into user(name,age) values(#{name},#{age})
<!-- 这里sql结尾不能加分号,否则报“ORA-00911”的错误 -->
</insert>
<!-- 这里的id必须和UserMapper接口中的接口方法名相同 -->
<select id="getUser" resultType="User" parameterType="String">
select *
from user where name=#{name}
</select>
<select id="getUser1" resultType="java.util.Map" parameterType="String">
select *
from user where name=#{name}
</select>
<select id="getUserCount" resultType="Int" parameterType="java.lang.String">
select
count(*) from user where name=#{name}
</select>
<select id="getUserCount1" resultType="Int" parameterType="java.lang.String">
select
count(*) from user where name=#{name}
</select>
<select id="getUserCount2" parameterType="java.lang.String"
resultType="java.util.Map">
select
count(*) from
user where name=#{name}
</select>
<select id="getUserMap" resultType="java.util.Map"
parameterType="java.lang.String">
select * from user where name=#{name}
</select>
<select id="getUserMap1" resultMap="userMaps" parameterType="java.lang.String">
select id,name from user where name=#{name}
</select>
<select id="getUserMap2" resultMap="userMaps" parameterType="java.lang.String">
select id,name from user where name=#{name}
</select>
</mapper>
7)<?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>   
    <settings>   
        <!-- changes from the defaults for testing -->   
        <setting name="cacheEnabled" value="false" />   
        <setting name="useGeneratedKeys" value="true" />   
        <setting name="defaultExecutorType" value="REUSE" />   
    </settings>   
    <typeAliases>   
       <typeAlias alias="User" type="com.my.mybatis.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/mybatis"/>   
              <property name="username" value="root"/>   
              <property name="password" value="123456"/>   
           </dataSource>   
       </environment>   
    </environments>   
    <mappers>   
        <mapper resource="mappers/UserMapper.xml" />   
    </mappers>   
</configuration>
8)<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>com.my.mybatis</groupId>
<artifactId>mybatis</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>mybatis Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
<build>
<finalName>mybatis</finalName>
</build>
</project>

运行结果:

Fri Apr 14 08:54:51 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
name: zhanjindong1|age: 18
getUser  :userMap: [{name=zhanjindong1, id=1, age=18}]
getUserMap :userMap: [{name=lisi, id=5, age=25}, {name=lisi, id=6, age=25}, {name=lisi, id=7, age=25}, {name=lisi, id=8, age=25}, {name=lisi, id=9, age=25}, {name=lisi, id=10, age=25}, {name=lisi, id=11, age=25}, {name=lisi, id=12, age=25}, {name=lisi, id=13, age=25}, {name=lisi, id=14, age=25}, {name=lisi, id=15, age=25}, {name=lisi, age=25}, {name=lisi, age=25}, {name=lisi, age=25}, {name=lisi, age=25}, {name=lisi, age=25}, {name=lisi, age=25}, {name=lisi, age=25}, {name=lisi, age=25}, {name=lisi, age=25}]
userMap1: [com.my.mybatis.Account@8b7f67, com.my.mybatis.Account@c7a4e4, com.my.mybatis.Account@178f375, com.my.mybatis.Account@c87b21, com.my.mybatis.Account@1375618, com.my.mybatis.Account@10399e, com.my.mybatis.Account@d992b2, com.my.mybatis.Account@15be6bb, com.my.mybatis.Account@39f31e, com.my.mybatis.Account@1fcfece, com.my.mybatis.Account@1ceabc1, com.my.mybatis.Account@15eef3d, com.my.mybatis.Account@f4468b, com.my.mybatis.Account@c4c815, com.my.mybatis.Account@82f6ef, com.my.mybatis.Account@fc185, com.my.mybatis.Account@3b1d11, com.my.mybatis.Account@f5e5e3, com.my.mybatis.Account@16d4b5c, com.my.mybatis.Account@100a15d]
userMap2: [com.my.mybatis.Account@1efea79, com.my.mybatis.Account@34c75a, com.my.mybatis.Account@16a51ab, com.my.mybatis.Account@1081592, com.my.mybatis.Account@19a81e8, com.my.mybatis.Account@1629756, com.my.mybatis.Account@ee68d8, com.my.mybatis.Account@15b5592, com.my.mybatis.Account@651fd0, com.my.mybatis.Account@120ebad, com.my.mybatis.Account@19f379, com.my.mybatis.Account@1c7cbad, com.my.mybatis.Account@12cc05a, com.my.mybatis.Account@1933fd1, com.my.mybatis.Account@8a9f61, com.my.mybatis.Account@153acfe, com.my.mybatis.Account@16905e, com.my.mybatis.Account@2d45ba, com.my.mybatis.Account@5ca609, com.my.mybatis.Account@e2cbe0]
userCount: 2
userCount1: [2]
userCount2: [{count(*)=2}]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值