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

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

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

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

1.新建项目
在这里插入图片描述
不勾选方框也可以进行下一步,下一步命名自己的工程名
在这里插入图片描述

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

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

(使用xml配置文件来导包就不需要将包下载,然后复制粘贴到项目中,导入包时如果报错标红可以点击idea上的这个按钮,这样就可以让idea帮你下载并且导入包)
在这里插入图片描述

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

<packaging>jar</packaging>

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

 <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>
    </dependencies>

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

<dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>7.4.1.jre11</version>
        </dependency>

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

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

4.导入log4j的包

<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.12</version>
        </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

<?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">

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

<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
数据连接池的值有三种提供的值

            <!-- POOLED 表示支持JDBC数据源连接池 -->
            <!-- UNPOOLED 表示不支持数据源连接池 -->
            <!-- JNDI 表示支持外部数据源连接池 -->

接下来直接在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的映射文件

<?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">
<!--namespace指定要执行sql语句的接口-->
<mapper namespace="cn.zsc.mybatis1.dao.StudentDao">
    <!--配置查询所有学生-->
    <!--id表示数据访问层的方法     resultType表示sql语句查询结果映射为StudentBean对象类型-->
    <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>

主配置文件全

<?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>
    <!--加载jdbc驱动的配置文件-->
    <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>

映射文件全

<?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">
<!--namespace指定要执行sql语句的接口-->
<mapper namespace="cn.zsc.mybatis1.dao.StudentDao">
    <!--配置查询所有学生-->
    <!--id表示数据访问层的方法     resultType表示sql语句查询结果映射为StudentBean对象类型-->
    <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();
    }
}

测试得到结果。

下面是文件目录的安排截图
在这里插入图片描述
注意事项
在这里插入图片描述

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,值为接口的全限定类名

<!--如果使用注解的方式来实现映射配置文件就要使用class属性值为接口的全限定类名-->
    <mappers>
        <mapper class="cn.zsc.mybatis.Dao.StudentDao"></mapper>
    </mappers>

在这里插入图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是使用IDEA通过配置文件连接MySQL库的示例。 1. 在项目的`resources`目录下,创建一个名为`application.properties`的文件,并添加以下内容: ``` # 数据库连接配置 spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 注:需要将`mydatabase`、`root`和`password`替换为您的MySQL数据库的名称、用户名和密码。 2. 在项目的`pom.xml`文件中添加以下依赖: ``` <dependencies> <!-- Spring Boot Web Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- MySQL连接器 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> </dependencies> ``` 3. 创建一个Java类,用于测试连接MySQL数据库,示例代码如下: ``` import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.jdbc.core.JdbcTemplate; @SpringBootApplication public class MySQLExample { @Autowired private JdbcTemplate jdbcTemplate; public static void main(String[] args) { SpringApplication.run(MySQLExample.class, args); } public void testMySQL() { String sql = "SELECT * FROM mytable"; jdbcTemplate.query(sql, (rs, rowNum) -> new Object[] { rs.getInt("id"), rs.getString("name"), rs.getInt("age") }).forEach(row -> System.out.println(row[0] + ", " + row[1] + ", " + row[2])); } } ``` 4. 运行`testMySQL()`方法即可测试连接MySQL数据库并进行操作。 希望以上示例可以帮助到您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值