MyBatis实现数据库增删改查

1.点击左上角File--》Project--》

2.选择Maven打上对√,选择archetype-webapp,--》finish应用

2.找到pox.xml文件 导入以下依赖

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.11</version>
    <scope>test</scope>
  </dependency>

  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
  </dependency>

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

3. 选择main右键 New---》Directory 

 选择java和resource

 

 4.选择建的Maven文件再冲里面新建Maven

选择Maven打上对√,选择archetype-webapp,--》finish应用

 

 1~!设置类加载:

 

package com.util;

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 BaseDaoUtil {
    private static SqlSessionFactory sessionFactory;
    //当类记载时
    static{
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
            sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取SqlSession对象
    public static SqlSession getSqlSession(){
        return sessionFactory.openSession();
    }
}

 2.增删改查方法

 

package com.yhzz.dao;

import com.yhzz.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

//就是UserDao,就是换了名字
public interface UserMapper {
    //查 查询所有的用户结果集
    List<User> queryListUser();

    User queryById(int id);

    //删 按id删除 @Param("id")多个参数必须加
    int deleteByid(@Param("id")int id);

    //增 增加一个对象
    int addUser(User user);

    //改 修改
    int updateUser(User user);
}

3. 设置有参函数

package com.yhzz.pojo;

public class User {
    private int id;
    private String userName;
    private String pwd;

    //两个参数的有参构造,测试主键自增
    public User(int id){
        this.id = id;
    }
    public User(String userName,String pwd){
        this.userName = userName;
        this.pwd = pwd;
    }
    //三个数的有参构造
    public User(int id, String userName, String pwd) {
        this.id = id;
        this.userName = userName;
        this.pwd = pwd;
    }

    public User() {
    }

    public int getId() {
        return id;
    }

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

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPwd() {
        return pwd;
    }

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

 

4. 设置结果集

 

<?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">
<mapper namespace="com.yhzz.dao.UserMapper">
    <!--查询User结果集 其中id即为接口的方法名,resultType:返回值类型(若返回集合,是泛值类型)-->
    <select id="queryListUser" resultType="com.yhzz.pojo.User">
        select * from user;
    </select>
    <select id="queryById" parameterType="int" resultType="com.yhzz.pojo.User">
        select * from user where id=#{id};
    </select>

    <!--删除-->
    <delete id="deleteById" parameterType="int">
        delete from user where id=#{id};
    </delete>

    <!--增加-->
    <insert id="addUser" parameterType="com.yhzz.pojo.User">
        insert into user (id,userName,pwd)
        values (#{id},#{userName},#{pwd});
    </insert>

    <!--修改-->
    <insert id="update" parameterType="com.yhzz.pojo.User">
        update user set userName=#{userName},pwd=#{pwd} where id=#{id}
    </insert>
</mapper>

 5.连接数据库配置

<?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>
    <environments default="development">
        <!--连接数据库配置-->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/yinhe?Unicode=true&amp;characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123"/>
            </dataSource>
        </environment>
    </environments>
    <!--Mapper映射文件-->
    <mappers>
        <mapper resource="mapper/UserMapper.xml"/>
    </mappers>
</configuration>

 6.test测试方法

package com.yhzz.dao;

import com.util.BaseDaoUtil;
import com.yhzz.pojo.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 org.junit.Test;

import javax.sound.midi.Soundbank;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class UserMapperTest {
    //查
    @Test
    public void queryListUser(){
        //连接数据库

        //执行sql
        //处理结果集

        try {
            //mybatis-com.xml配置文件路径
            String resource = "mybatis-config.xml";
            //将配置文件加载到输入流
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //获取sqlSessionFactory对象
            SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //获取申请了Session对象,连接数据库
            SqlSession sqlSession = sessionFactory.openSession();
            //获取UserMapper对象
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            //调用方法,执行sql
            List<User> users = userMapper.queryListUser();
            //处理结果集
            for(User user:users){
                System.out.println(user.getUserName());
            }
            //关闭sqlSession
            sqlSession.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    };
    @Test
    public void queryById(){
        //获取SQLSession
        SqlSession sqlSession = BaseDaoUtil.getSqlSession();
        //获取UserMapper对象
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
        //调用查询方法
        User user = userMapper.queryById(1);
        System.out.println(user.getUserName());
        //关闭资源
        sqlSession.close();
    };
    //删
    @Test
    public void deleteByid(){
        //获取申请了Session
        SqlSession sqlSession = BaseDaoUtil.getSqlSession();
        //获取UserMapper对象
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //调用方法执行
        int rows =  mapper.deleteByid(2);
        System.out.println("删除了"+rows+"行");
        //增删改必须手动提交事务
        sqlSession.commit();
        //关闭资源
        sqlSession.close();
    }
    //增
    @Test
    public void addUser(){
        SqlSession sqlSession = BaseDaoUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        int rows =  mapper.addUser(new User(6,"张三","132"));
        System.out.println("新增数量"+rows);
        //事务
        sqlSession.commit();
        //关闭数据库
        sqlSession.close();
    }
    //改
    @Test
    public void update(){
        SqlSession sqlSession = BaseDaoUtil.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User us = mapper.queryById(4);
        us.setUserName("阮六军");
        us.setPwd("ps");

        sqlSession.commit();
        sqlSession.close();
        System.out.println("修改成功:"+us.getUserName()+us.getPwd());
    }
}

 pox.xml配置文件

 

<?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.example</groupId>
  <artifactId>mybatis-study</artifactId>
  <version>1.0-SNAPSHOT</version>
  <modules>
    <module>mybatis01</module>
    <module>mybatis02</module>
  </modules>
  <packaging>pom</packaging>

  <name>mybatis-study Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
  
</project>

 


版权声明:本文为weixin_56236018原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。