java SSM框架01 mybatis配置文件

一 、首先我们要建立maven项目

在maven项目中 建立一个实体类
java中定义使用实体类的规范用法:
①实体类的名字尽量和数据库的表的名字对应相同。
②实体类应该实现java.io.Serializable接口。
③实体类应该有个无参的构造方法。
④实体类应该有个有参(所有的参数)的构造方法。
⑤实体类有属性和方法,属性对应数据库中表的字段,并且生成getset方法。
⑥重写tostring方法

package pojo;

import java.io.Serializable;

public class User implements Serializable {
    private Integer id;
    private String name;
    private String pwd;
    private Integer role;

    public User(Integer id, String name, String pwd, Integer role) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
        this.role = role;
    }

    public User() {
    }

    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 getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public Integer getRole() {
        return role;
    }

    public void setRole(Integer role) {
        this.role = role;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", pwd='" + pwd + '\'' +
                ", role=" + role +
                '}';
    }
}

二、然后在resources中创建mybatis配置文件

java SSM框架01 mybatis配置文件
首先配置mybatis.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">

<!-- Mybatis核心配置文件 configuration标签-->
<configuration>
    <!-- 事务   、  数据源、  映射文件 -->
    <!-- 配置开发环境
        default:默认的环境
    -->
<!--    配置别名 typeAliases标签-->
    <typeAliases>
<!--        type为原名 alias为别名-->
        <typeAlias type="pojo.User" alias="User"/>
    </typeAliases>
<!--    配置环境 environments标签-->
<!--    environments默认名随意  但是要和environment的id值相同-->
    <environments default="dev">
        <!--id值就是默认的环境  -->
        <environment id="dev">
            <!-- 配置事务管理 选择jdbc事务-->
            <transactionManager type="JDBC"></transactionManager>

            <!-- 配置数据源 type:池化的-->
            <dataSource type="pooled">
<!--                配置链接数据库的基本信息-->
<!--                配置驱动包-->
                <property name="driver"
                          value="com.mysql.jdbc.Driver"/>
<!--                配置sql服务器地址-->
                <property name="url"
                          value="jdbc:mysql://localhost:3306/db_foodshopping?characterEncoding=utf-8"/>
<!--                配置数据库账号-->
                <property name="username" value="root"/>
<!--                配置数据库密码-->
                <property name="password" value="123456"/>

            </dataSource>
        </environment>
    </environments>
<!--    配置映射-->
    <mappers>

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

    </mappers>

</configuration>

三、创建映射配置文件

创建UserMapper.xml文件 (命名任意)

<?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">
<!--映射约束-->
<!-- 映射文件,存放SQL
	namespace是映射文件的唯一标志 在代码中需要被使用
-->
<!--映射标签 在这里写sql语句-->
<mapper namespace="hello">

    <!-- select查询用户表的所有数据
        id该SQL的唯一标志 用id才可以知道进行什么crud操作
    resultType要把查询到的结果封装给哪个实体对象
    -->
    <select id="SelectAll"
            resultType="User">
        select * from users
    </select>

    <!--根据id删除
    *id该SQL的唯一标志
    *parameterType 参数类型
    *获取参数的方式 mybatis的取值表达式#{变量名]
    *当传入sql中的参数是一个时候,比如Integer String可以将parameterType 省略不写
    *但是当传入的参数是一个对象的时候,parameterType必须写 不可以省略
    -->
    <delete id="deleteUser" parameterType="java.lang.Integer">
        delete from users where id=#{uid}
    </delete>

    <select id="selectById" resultType="User">
        select * from users where id=#{id}
    </select>

    <update id="updatebyid" parameterType="User">
        update users set name=#{name},pwd=#{pwd},role=#{role} where id=#{id}
    </update>
    <insert id="insertUser" parameterType="User">
        insert into users (id,name,pwd,role) values (#{id},#{name},#{pwd},#{role})
    </insert>

</mapper>

这样mybatis配置文件就配置好了

四、在测试类中测试crud操作

package org.example;

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.junit.Test;
import pojo.User;

import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class UserTest {
//    查询所有信息
    @Test
    public void test1() {
        try {
            //加载mybatis的核心配置文件
            InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
            //创建SqlSessionFactory对象
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
            //通过SqlSessionFactory获得SqlSession对象
            SqlSession sqlSession = ssf.openSession();
            List<User> users = sqlSession.selectList("hello.SelectAll");
            System.out.println(users.toString());
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    /*
    *mybatis不具备自动事务操作
    *事务是什么?
    * 一件事情的完整过程就是事务
    * JDBC具备自动事务操作
     */
    @Test
    public void test2(){
        try {
            InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
            //当参数为true 默认启动事务提交
            SqlSession sqlSession = ssf.openSession(true);
            //设置参数
            Integer id=14;
            //执行删除语句 返回受影响行数
            int row = sqlSession.delete("hello.deleteUser", id);
            //提交事务
//            sqlSession.commit();
            if (row>=1){
                System.out.println("受影响行数为:"+row);
            }else {
                System.out.println("删除失败");
            }

            sqlSession.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /*
    具体查询记录
     */
    @Test
    public void test3(){
        try {
            InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
            //当参数为true 默认启动事务提交
            SqlSession sqlSession = ssf.openSession(true);
            //设置参数
            Integer id=1;
            //执行选择语句 返回受影响行数
            User user = sqlSession.selectOne("hello.selectById", id);
            //提交事务
//            sqlSession.commit();
            System.out.println(user.toString());

            sqlSession.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /*
    修改操作
     */
    @Test
    public void test4(){
        try {
            InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
            //当参数为true 默认启动事务提交
            SqlSession sqlSession = ssf.openSession(true);
            //设置参数
            User user=new User(2,"liwu","123",1);
            //执行删除语句 返回受影响行数
            int row = sqlSession.update("hello.updatebyid", user);
            //提交事务
//            sqlSession.commit();
            if (row>=1){
                System.out.println("受影响行数为:"+row);
            }else {
                System.out.println("修改失败");
            }

            sqlSession.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /*
    增加操作
     */
    @Test
    public void test5(){
        try {
            InputStream in = Resources.getResourceAsStream("mybatis/mybatis.xml");
            SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in);
            //当参数为true 默认启动事务提交
            SqlSession sqlSession = ssf.openSession(true);
            //设置参数
            User user=new User(null,"lifeifei","123",1);
            //执行删除语句 返回受影响行数
            int row = sqlSession.insert("hello.insertUser", user);
            //提交事务
//            sqlSession.commit();
            if (row>=1){
                System.out.println("受影响行数为:"+row);
            }else {
                System.out.println("添加失败");
            }

            sqlSession.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上一篇:SSM-Spring-MyBatisSpring项目-配置SqlSessionTemplate组件


下一篇:jenkins用户权限管理