Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)

Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)

2020/9/14
使用mybatis的框架来查询所有的学生信息入门操作

1.使用maven来创建工程项目(不勾选模块)

1.新建项目
Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)_第1张图片
不勾选方框也可以进行下一步,下一步命名自己的工程名
Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)_第2张图片

然后点击完成,这样工程项目就创建好了。

2.在maven中使用pox.xml配置文件来配置要导入的包

(使用xml配置文件来导包就不需要将包下载,然后复制粘贴到项目中,导入包时如果报错标红可以点击idea上的这个按钮,这样就可以让idea帮你下载并且导入包)
Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)_第3张图片

导入包之前先声明导入包的类型

jar

先写一段这样的代码告诉要导入什么类型的包,这段表示要导入jar包,然后开始导包
1.第一个包mybatis的包

 <dependencies>
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.4.5version>
        dependency>
    dependencies>

2.在dependency标签中导入第二个包,SQL server数据库的jdbc驱动包

<dependency>
            <groupId>com.microsoft.sqlservergroupId>
            <artifactId>mssql-jdbcartifactId>
            <version>7.4.1.jre11version>
        dependency>

3.导入junit的包单元测试包

<dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>testscope>
        dependency>

4.导入log4j的包

<dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>1.2.12version>
        dependency>

当前入门项目导入当前的包就可以了

3.编写持久层的JavaBean对象和接口

在maven的src下的main包中的java目录下新建包

1.数据库学生信息表的javaBean对象

package cn.zsc.mybatis1.domain;

public class Student {
    private Integer id;         //学生id
    private String name;        //学生姓名
    private String gender;      //学生性别
    private Integer age;        //学生年龄
    private String address;     //学生籍贯
    private String qq;          //学生qq

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

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

    public String getQq() {
        return qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                ", qq='" + qq + '\'' +
                '}';
    }
}

2.查询所有学生的信息的持久层接口

package cn.zsc.mybatis1.dao;

import cn.zsc.mybatis1.domain.Student;

import java.util.List;

public interface StudentDao {

    /***
     * 查询所有的学生信息并且返回到list集合的接口
     * @return
     */
    public List<Student> finAll();
}

4.配置mybatis的框架环境

在resources的目录中来创建mybatis的配置xml文件

1.直接点击新建—文件—文件名为log4j.properties的文件
(该文件是日志文件可以直接复制就行,就是必须要叫log4j.properties这个文件名)

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n


2.编写jdbc.properties文件
(因为我使用的是SQL server的数据库所有使用的是sqlserver的配置方式,其他数据库可以直接在百度上搜索)
使用sqlserver数据库的可以直接复制,但是文件名要为jdbc.properties

jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=User_student
jdbc.username=sa
jdbc.password=123456

记得改DatabaseName这个的属性值(根据自己的数据库名来决定)
3.接下来配置mybatis的主配置文件-----文件名mybatis-config.xml
(这个可以自己练一下手熟悉一下,后面可以直接使用idea的文件模板来生成,具体方法可以在百度上搜索)

文件名可以按照官方这样来起名mybatis-config.xml



这个是主配置文件的文件约束一定要有

<properties resource="jdbc.properties">properties>

这是加载jdbc.properties的配置文件

<environments default="development">
        <environment id="development">
            <transactionManager type="JDBC">transactionManager>
            <dataSource type="POOLED">

            dataSource>
        environment>
    environments>

这是配置具体环境的标签,在environments标签的default属性和environment标签的id属性必须相同,使用官方的配置名development
transactionManager 标签表示使用的事务处理方式值为JDBC
dataSource 标签表示是否使用数据连接池值为POOLED
数据连接池的值有三种提供的值

            
            
            

接下来直接在datasourse标签标签体里来配置连接数据库的4个基本信息

<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>

上面就是配置mybatis的运行环境了。

接下来在environments的标签外来配置映射文件的xml文件
先创建一个映射文件xml文件来映射dao的接口,注意映射配置文件指的是每个dao独立的配置文件,映射xml文件的包位置一定要和dao的接口包位置一致,就是在resources目录下创建包结构和dao接口包结构一致。
mapper的映射文件




<mapper namespace="cn.zsc.mybatis1.dao.StudentDao">
    
    
    <select id="findAll" resultType="cn.zsc.mybatis1.domain.Student">
        select * from Student;
    select>
mapper>

在主配置文件下添加mapper标签


    <mappers>
        <mapper resource="cn/zsc/mybatis1/dao/StudentMapper.xml">mapper>
    mappers>

主配置文件全



<configuration>
    
    <properties resource="jdbc.properties">properties>
    
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC">transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            dataSource>
        environment>
    environments>
    
    <mappers>
        <mapper resource="cn/zsc/mybatis1/dao/StudentMapper.xml">mapper>
    mappers>
configuration>

映射文件全




<mapper namespace="cn.zsc.mybatis1.dao.StudentDao">
    
    
    <select id="findAll" resultType="cn.zsc.mybatis1.domain.Student">
        select * from Student;
    select>
mapper>

JDBC配置信息文件全(jdbc.properties)

jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=User_student
jdbc.username=sa
jdbc.password=123456

5.编写工具类

该工具类主要用来通过工厂类来获取sqlsession对象,通过sqlsession对象来对持久层接口进行增强,返回增强后的代理对象

package cn.zsc.mybatis1.utils;

import cn.zsc.mybatis1.dao.StudentDao;
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;

public class myBatisUtils {
	private SqlSession sqlSession=null;
	 /***
     * 获取代理对象
     * @return
     */
    public StudentDao getImpl() {
        //1.加载配置文件
        InputStream in = null;
        try {
            in = Resources.getResourceAsStream("mybatis-config.xml");
        } catch (IOException e) {
            e.printStackTrace();
        }
        //2.创建工厂类
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder=new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = sqlSessionFactoryBuilder.build(in);
        //3.通过工厂类来获取SqlSession对象
        sqlSession = factory.openSession();
        //4.通过SqlSession对象来对创建代理对象来增强接口,以实现StudentDao的接口
        StudentDao studentImpl = sqlSession.getMapper(StudentDao.class);
        return studentImpl;
    }
    /***
     * 关闭SQL session
     */
    public void close_SqlSession(){
        if (sqlSession!=null){
            sqlSession.close();
        }
    }
}

6.编写测试类来进行测试

在项目的test的目录下的java目录下来创建一个测试类

import cn.zsc.mybatis1.dao.StudentDao;
import cn.zsc.mybatis1.domain.Student;
import cn.zsc.mybatis1.utils.myBatisUtils;

import java.io.IOException;
import java.util.List;

public class MybatisTest {
    public static void main(String[] args){
        //1.创建工具对象以获取增强的代理对象
        myBatisUtils myBatisUtils=new myBatisUtils();
        StudentDao StudentDaoImpl = myBatisUtils.getImpl();
        //2.使用代理对象来调用方法
        List<Student> studentList = StudentDaoImpl.findAll();
        for (Student student : studentList) {
            System.out.println(student);
        }
       //5.关闭Sqlsession
      myBatisUtils.close_SqlSession();
    }
}

测试得到结果。

下面是文件目录的安排截图
Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)_第4张图片
注意事项
Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)_第5张图片

7.可以使用注解的方式来配置mapper

使用注解的方式来配置mapper就不需要创建mapper.xml的映射文件
直接在接口的方法上方使用注解就可以

import cn.zsc.mybatis.domain.Student;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/***
 * 该接口里的方法不使用映射文件的方式而是使用注解的方式
 */
public interface StudentDao {
    @Select("select * from Student")
    public List<Student> findAll();
}

在上方加一个@Select()这样的注解,值为查询语句,如果要修改就是update注解,删除delete,插入insert。

注意如果使用注解的方式要记得修改主配置文件
(mybatis-config.xml),
将主配置文件mapper标签的属性改为class,值为接口的全限定类名


    <mappers>
        <mapper class="cn.zsc.mybatis.Dao.StudentDao">mapper>
    mappers>

Mybatis入门,配置文件,运行环境配置,连接SQL serve数据库(IDEA)_第6张图片

你可能感兴趣的:(笔记,mybatis)