mybatis框架学习

导读:本篇文章讲解 mybatis框架学习,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

mybatis框架学习

一、项目目录

请按照目录顺序建好相应:文件夹、包、文件

在这里插入图片描述

二、相关文件

1、sql数据库相关内容

 --创建数据库
 CREATE DATABASE REMLI;

--创建数据表
 CREATE TABLE `user`(
 `id` int(11) NOT NULL auto_increment,
 `username` varchar(32) NOT NULL COMMENT '用户名称', 
 `birthday` datetime default NULL COMMENT '生日', 
 `sex` char(1) default NULL COMMENT '性别', 
 `address` varchar(256) default NULL COMMENT '地址',
 PRIMARY KEY (`id`)
 )ENGINE=InnoDB DEFAULT CHAR SET=utf8;

 --批量插入数据
INSERT INTO `user` ( `id`,`username`,`birthday`,`sex`,`address` ) VALUES ( 99,'小明', '1990-01-01', '男','中国'),( 5,'小明', '1990-01-01', '男','中国'),( 6,'小明', '1990-01-01', '男','中国'),( 7,'小明', '1990-01-01', '男','中国'),( 4,'小明', '1990-01-01', '男','中国'),( 8,'小明', '1990-01-01', '男','中国'),( 9,'小明', '1990-01-01', '男','中国'),( 10,'小明', '1990-01-01', '男','中国');

2、java代码部分:java和test两个文件夹

UserDao.java 接口:

package com.remli.dao;
import com.remli.domain.User;
import java.util.List;
/*
* 用户持久层接口
* */
public interface UserDao {
    /*
    * 查询所有操作
    * */
    List<User> findAll();
}

User.java 实体类:

package com.remli.domain;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {

    private Integer id ;
    private String username ;
    private Date birthday ;
    private String sex ;
    private String address ;

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

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

    public Date getBirthday() {
        return birthday;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

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

test.java 测试类:

package com.remli;

import com.remli.dao.UserDao;
import com.remli.domain.User;
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 java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class test {
    /*
     * 主函数——测试
     * */
    public static void main(String[] args) throws IOException {
//        第一步:读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
//        第二步:创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
//        第三步:使用工厂生产SqlSession对象
        SqlSession session = factory.openSession();
//        第四步:使用SqlSession创建dao接口代理对象
        UserDao userDao = session.getMapper(UserDao.class);
//        第五步:使用代理对象执行方法
        List<User> users = userDao.findAll();
        for (User user : users){
            System.out.println(user);
        }
//        第六步:释放资源
        session.close();
        in.close();
    }
}

3、配置文件:resources文件夹

pom.xml 配置文件maven项目

<?xml version="1.0" encoding="UTF-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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <groupId>org.remli</groupId>
    <artifactId>ssmF</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <!--mybatis持久层框架依赖-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
        <!--mysql驱动依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
        <!--log4j日志依赖-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </dependency>
        <!--junit测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
    </dependencies>
    
</project>

SqlMapConfig.xml 框架配置文件(官方为(mybatis-config.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>

    <!-- 配置环境:可以配置多个环境,default:配置某一个环境的唯一标识,表示默认使用哪个环境 -->
   <!--mybatis主配置文件-->
    <environments default="mysql">
        <!--配置mysql环境-->
        <environment id="mysql">
            <!--配置事物类型(事务管理)-->
            <transactionManager type="JDBC"/>
           <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!-- 配置连接数据库的4个基本信息 -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/remli?serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            </dataSource>
        </environment>
    </environments>

    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立配置文件-->
    <mappers>
        <mapper resource="com/remli/dao/UserDao.xml"/>
    </mappers>

</configuration>

UserDao.xml 映射配置文件(官方(UserMapper.xml))

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

        <!--命名空间xml文件和dao接口对接起来-->
        <mapper namespace="com.remli.dao.UserDao">
            <!--查询配置所有--><!--为java dao类方法名称--><!--resultType为返回封装信息-->
            <select id = "findAll" resultType="com.remli.domain.User">
                select * from user
            </select>
        </mapper>

log4j.properties 日志配置文件

##Log4J的配置之简单使它遍及于越来越多的应用中了

##Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了。

##此文件(log4j.properties)内容来自网络,非本文作者liigo原创。
##此文件(log4j.properties)内容来自网络,非本文作者remli原创。
log4j.rootLogger = DEBUG, CONSOLE,A1   
log4j.addivity.org.apache = true    

# 应用于控制台
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender   
log4j.appender.Threshold = DEBUG   
log4j.appender.CONSOLE.Target = System.out   
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout   
log4j.appender.CONSOLE.layout.ConversionPattern = [framework]  % d  -   % c  -%- 4r [ % t]  %- 5p  % c  % x  -   % m % n   
#log4j.appender.CONSOLE.layout.ConversionPattern = [start] % d  {DATE} [DATE] % n % p[PRIORITY] % n % x[NDC] % n % t[THREAD] n % c[CATEGORY] % n % m[MESSAGE] % n % n

#应用于文件
log4j.appender.FILE = org.apache.log4j.FileAppender   
log4j.appender.FILE.File = file.log   
log4j.appender.FILE.Append = false    
log4j.appender.FILE.layout = org.apache.log4j.PatternLayout   
log4j.appender.FILE.layout.ConversionPattern = [framework]  % d  -   % c  -%- 4r [ % t]  %- 5p  % c  % x  -   % m % n   
# Use  this  layout  for  LogFactor  5  analysis

# 应用于文件回滚
log4j.appender.ROLLING_FILE = org.apache.log4j.RollingFileAppender   
log4j.appender.ROLLING_FILE.Threshold = ERROR   
log4j.appender.ROLLING_FILE.File = rolling.log   
log4j.appender.ROLLING_FILE.Append = true    
log4j.appender.ROLLING_FILE.MaxFileSize = 10KB   
log4j.appender.ROLLING_FILE.MaxBackupIndex = 1    
log4j.appender.ROLLING_FILE.layout = org.apache.log4j.PatternLayout   
log4j.appender.ROLLING_FILE.layout.ConversionPattern = [framework]  % d  -   % c  -%- 4r [ % t]  %- 5p  % c  % x  -   % m % n   

#应用于socket
log4j.appender.SOCKET = org.apache.log4j.RollingFileAppender   
log4j.appender.SOCKET.RemoteHost = localhost   
log4j.appender.SOCKET.Port = 5001    
log4j.appender.SOCKET.LocationInfo = true    
# Set up  for  Log Facter  5
log4j.appender.SOCKET.layout = org.apache.log4j.PatternLayout   
log4j.appender.SOCET.layout.ConversionPattern = [start] % d  {DATE} [DATE] % n % p[PRIORITY] % n % x[NDC] % n % t[THREAD] % n % c[CATEGORY] % n % m[MESSAGE] % n % n   

# Log Factor  5  Appender
log4j.appender.LF5_APPENDER = org.apache.log4j.lf5.LF5Appender   
log4j.appender.LF5_APPENDER.MaxNumberOfRecords = 2000    

# 发送日志给邮件
log4j.appender.MAIL = org.apache.log4j.net.SMTPAppender   
log4j.appender.MAIL.Threshold = FATA   
log4j.appender.MAIL.BufferSize = 10    
log4j.appender.MAIL.From = web@www.wuset.com   
log4j.appender.MAIL.SMTPHost = www.wusetu.com   
log4j.appender.MAIL.Subject = Log4J Message   
log4j.appender.MAIL.To = web@www.wusetu.com   
log4j.appender.MAIL.layout = org.apache.log4j.PatternLayout   
log4j.appender.MAIL.layout.ConversionPattern = [framework]  % d  -   % c  -%- 4r [ % t]  %- 5p  % c  % x  -   % m % n   


# 用于数据库
log4j.appender.DATABASE = org.apache.log4j.jdbc.JDBCAppender   
log4j.appender.DATABASE.URL = jdbc:mysql: // localhost:3306/test    
log4j.appender.DATABASE.driver = com.mysql.jdbc.Driver   
log4j.appender.DATABASE.user = root   
log4j.appender.DATABASE.password =
log4j.appender.DATABASE.sql = INSERT INTO LOG4J (Message) VALUES ( ' [framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n ' )   
log4j.appender.DATABASE.layout = org.apache.log4j.PatternLayout   
log4j.appender.DATABASE.layout.ConversionPattern = [framework]  % d  -   % c  -%- 4r [ % t]  %- 5p  % c  % x  -   % m % n   
log4j.appender.A1 = org.apache.log4j.DailyRollingFileAppender   
log4j.appender.A1.File = SampleMessages.log4j   
log4j.appender.A1.DatePattern = yyyyMMdd - HH ' .log4j '    
log4j.appender.A1.layout = org.apache.log4j.xml.XMLLayout   

#自定义Appender
log4j.appender.im  =  net.cybercorlin.util.logger.appender.IMAppender   
log4j.appender.im.host  =  mail.cybercorlin.net   
log4j.appender.im.username  =  username   
log4j.appender.im.password  =  password   
log4j.appender.im.recipient  =  corlin@cybercorlin.net   
log4j.appender.im.layout = org.apache.log4j.PatternLayout   
log4j.appender.im.layout.ConversionPattern  = [framework]  % d  -   % c  -%- 4r [ % t]  %- 5p  % c  % x  -   % m % n   

# 结束

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75314.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!