0
点赞
收藏
分享

微信扫一扫

Mybatis学习(一)

像小强一样活着 2022-04-29 阅读 67
学习java

第一个入门的例子

1.在自己电脑的mysql上创建一个可用的表,并添加一点数据

2.利用maven创建一个普通的java项目(前面讲maven时有讲)

3.在maven中加入mybatis坐标,以及mysql的驱动坐标----mysql版本要与自己的mysql版本对应

4.在java中创建实体类,保存表中的数据

package ys.domain;

//推荐类名与表名一致
public class ssm {
    //定义属性,要求和属性名和列名相同
    private Integer id;
    private String name;
    private String email;
    private Integer age;
    //Alt+inset 快捷键生成属性的get和set方法
    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 getEmail() {
        return email;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
    //Alt+insert重写toString方法
    @Override
    public String toString() {
        return "ssm{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}

5.创建持久层的dao接口,定义操作数据库的方法

package ys.dao;

import ys.domain.ssm;

import java.util.List;

//操作student表
public interface ssmDao {
    //定义查询ssm表的所有数据的
    public List<ssm> selectsmms();
}

6.创建mybatis使用的配置文件,叫做sql映射文件----用于存放sql语句,一般一个表对应一个文件,文件类型为.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--创建文件时,可以创建一个普通文档,然后命名加上.xml的文件后缀-->
<!--可以在下载的mybatis中的帮助文档找到这份代码格式-->
<!--指定约束文件-->
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--mapper文件的根标签,必须有
    namespace是命名空间,唯一,可以自定义推荐为对应dao接口的全限定名称(ys.dao.smmDao)-->
<mapper namespace="ys.dao.smmDao">
    <!--在当前的文件中可以使用特定的标签,表示数据的特定操作
    <select>:表示查询
    <update>:表示更新数据库的操作
    <insert>:表示插入
    <delete>:表示删除
    id:你要执行的sql语句的唯一标识,你的mybatis使用这个值来找到要执行的sql语句,可以自定义推荐为接口中的对应方法名
    resultType:表示结果类型,是sql语句执行后得到的ResultSet,遍历这个得到的java对象的类型,值为类型的全限定名称-->
    <select id="selectssm" resultType="ys.domain.ssm">
        select id,name,email,age  from ssm order by id
    </select>
</mapper>
<!---->

7.创建mybatis的主配置文件:一个项目一个主配置文件。该文件提供了数据库的链接信息和sql映射文件的位置信息,该文件创建在resources文件下。

<?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的值必须与id一样,告诉mybatis使用那个数据库
       在environments中可以配置多个数据库,当default的值和那个数据库的id值相同时
       则表示使用该数据库-->
    <environments default="ys">
        <!--environment:一个数据的信息配置
        id:是一个唯一值,用于表示环境名-->
        <environment id="ys">
            <!--transactionManager:mybatis的事务类型
            type:JDBC-->
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--name修饰的名称是固定的,不能修改-->
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/ys"/>
                <property name="username" value="root"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>
    </environments>
    <!--指定sql映射文件的位置-->
    <mappers>
        <!--一个mapper指定一个文件位置(从类路径开始的路径信息target(编译后出现)/classes)-->
        <mapper resource="ys\dao\ssmDao.xml"/>
    </mappers>
</configuration>

 对文件进行编译后出现target文件夹

 有些人编译后会发现target中没有xml文件,解决方法:在pom.xml中添加下列代码到build中:

 <build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
   <plugins>
       <plugin>
           <artifactId>maven-compiler-plugin</artifactId>
           <version>3.1</version>
           <configuration>
               <source>1.8</source>
               <target>1.8</target>
           </configuration>
       </plugin>
   </plugins>
  </build>

8.创建使用mybatis类,通过mybatis访问数据库

package ys;

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 org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;
import ys.domain.ssm;

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

public class MyApp {
    public static void main(String[] args) {
        //访问mybatis,读取smm数据
        //1.定义mybatis主配置文件的名称,从类路径的根开始target/classes
        String config="java.resources.mybatisdemo.xml";
        //2.读取config表示的文件
        try {
            InputStream in=Resources.getResourceAsStream(config);
            //3.创建SqlSessionFactoryBuilder对象
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
            //4.创建SqlSessionFactory对象
            SqlSessionFactory factory = builder.build(in);
            //5.获取SqlSession对象,从SqlSessionFactory中获取SQLSession----重点
            SqlSession sqlSession = factory.openSession();
            //6.指定要执行的sql语句的标识,定义格式sql映射文件中的namespace+"."+标签的id值----重点
            String sqlId="ys.dao.ssmDao"+"."+"selectssm";
            //7.执行sql语句,通过sqlId找到语句
            List<ssm> ssmList=sqlSession.selectList(sqlId);
            //8.输出结果
            ssmList.forEach(stu -> System.out.println(stu));
            //9.关闭SQLSession对象
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

各个文件的位置

最后的输出界面

 

举报

相关推荐

0 条评论