使用Mybatis框架的步骤:

1)导入依赖

2)复制配置文件

3)设置相关的javabean

4)测试

  1. 创建SqlsessionFactoryBuilder对象
  2. builder对象调用build(InputStream)得到SqlSessionFactory
  3. sqlSessionFacotry对象调用openSession()得到SqlSession对象
  4. sqlSession对象调用接口中方法selectList(String sqlId)就可以执行sql语句并获取结果集
  5. 释放资源

导入依赖

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.12</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
    </dependencies>

配置文件

SqlMapConfig.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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=GMT&amp;allowPublicKeyRetrieval=false&amp;useUnicode=true" />
                <property name="username" value="sa" />
                <property name="password" value="admin" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="UserMapper.xml" />
    </mappers>
</configuration>    

UserMapper.xml(sql信息)

<?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.company.mapper.UserMapper">
    <select id="queryUserList" resultType="com.company.pojo.User">
        select * from user
    </select>
    <select id="queryUserByName" resultType="com.company.pojo.User" parameterType="String">
        select * from user where username=#{username}
    </select>
    <select id="queryUserLikeName" resultType="com.company.pojo.User" parameterType="String">
        select * from user where username like #{username}
    </select>
    <insert id="addUser" parameterType="com.company.pojo.User">
        insert user(id,username,password,email,birthday)
        values(#{id},#{username},#{password},#{email},#{birthday})
    </insert>
</mapper>

log4j.properties(日志文件配置信息)

log4j.rootLogger =debug,systemOut,logFile

#输出到控制台
log4j.appender.systemOut = org.apache.log4j.ConsoleAppender
log4j.appender.systemOut.layout = org.apache.log4j.PatternLayout
log4j.appender.systemOut.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.systemOut.Target = System.out

#输出到文件
log4j.appender.logFile = org.apache.log4j.FileAppender
log4j.appender.logFile.layout = org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern = [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.logFile.File = log/log4j.log
log4j.appender.logFile.Encoding = UTF-8

#将日志输记录到MySQL数据库
#log4j.appender.logDB = org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.logDB.layout = org.apache.log4j.PatternLayout
#log4j.appender.logDB.Driver = com.mysql.jdbc.Driver
#log4j.appender.logDB.URL = jdbc:mysql://localhost:3306/log4j?characterEncoding=utf-8
#log4j.appender.logDB.User = root
#log4j.appender.logDB.Password = root
#log4j.appender.logDB.Sql = INSERT INTO t_log4j(project_name,create_date,level,category,file_name,thread_name,line,all_category,message)values('mybatis','%d{yyyy-MM-ddHH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')

设置相关javabean

User.java

public class User {
    private String id;
    private String username;
    private String password;
    private String email;
    private Date birthday;

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                ", birthday=" + birthday +
                '}';
    }

    public String getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

测试

MyBatisTest.java

查询操作

@Test
public void queryUserList() throws Exception{
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
    InputStream inputStream=Resources.getResourceAsStream("SqlMapConfig.xml");
    SqlSessionFactory sqlSessionFactory=sqlSessionFactoryBuilder.build(inputStream);
    inputStream.close();
    SqlSession sqlSession=sqlSessionFactory.openSession();
    List<User> users=sqlSession.selectList("com.company.mapper.UserMapper.queryUserList");
    users.forEach(System.out::println);
    sqlSession.close();
}

保存操作

@Test
public void saveUser() throws Exception{
     SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
     InputStream inputStream=Resources.getResourceAsStream("SqlMapConfig.xml");
     SqlSessionFactory sqlSessionFactory=sqlSessionFactory.build(inputStream);
     inputStream.close();
     SqlSession sqlSession=sqlSessionFactory.openSession();
     User user=new User();
     user.setId(UUID.randomUUID().toString());
     user.setUsername("帅哥");
     user.setPassword("handsome");
     user.setEmail("123@qq.com");
     user.setBirthday(new Date());
     int insertCount=sqlSession.insert("com.company.mapper.UserMapper.addUser",user);
     System.out.println("影响的行数:"+inserCount);
     sqlSession.commit();
     sqlSession.close();
}

 

 posted on 2019-07-30 16:46  会飞的金鱼  阅读(101)  评论(0)    收藏  举报