简单的MyBatis使用DEMO。

来源:互联网 发布:winpcap是什么软件 编辑:程序博客网 时间:2024/06/07 01:45

简单的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}]
0 0