mybatis中的xml方式增删改查

实体类

package cn.liwen.entity;

public class User {
    private long id; //主键
    private String username;//用户名
    private String password;//密码

    public long getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username=‘" + username + ‘\‘‘ +
                ", password=‘" + password + ‘\‘‘ +
                ‘}‘;
    }
}

接口实现类

package cn.liwen.impl;

import cn.liwen.entity.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.testng.annotations.Test;
import org.testng.annotations.BeforeClass;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class UserDaoImpl {
    private SqlSession session = null;

    @BeforeClass
    public void init() throws IOException {
        // 1、启动mybatis框架
        // SqlSession--->SqlSessionFatory----->SqlSessionFatoryBuilder
        SqlSessionFactoryBuilder ssb = new SqlSessionFactoryBuilder();
        // 将mybatis.xml文件转化成流
        InputStream ins = Resources.getResourceAsStream("mybatis.xml");
        SqlSessionFactory ssf = ssb.build(ins);
        session = ssf.openSession();
    }

    /**
     * 查询所以名字
     * */
    @Test
    public void getAllUser()  {

        /** 2、调用局部配置文件中的sql语句*/
        List<User> userList = session.selectList("cn.liwen.impl.UserDaoImpl.getAllUser");
        for (User user : userList) {
            System.out.println(user);
        }
    }

    /**使用lists方式*/
    @Test
    public void getAllUserlist() throws IOException {
        List<User> userList = session.selectList("cn.liwen.impl.UserDaoImpl.getAllUserlist");
        for (User user : userList) {
            System.out.println(user);
        }
    }

    /**使用map方式*/
    @Test
    public void getAllUser2()  {

        // 2、调用局部配置文件中的sql语句
        List<Map<String, Object>> userList = session.selectList("cn.liwen.impl.UserDaoImpl.getAllUser2");
        for (Map<String, Object> map : userList) {
            System.out.println(map);
        }
    }

    /**测试单条记录方式*/
    @Test
    public void getUserById() {
        //带参数方式
        long id = 1L;
        Map<String, Object> userList = session.selectOne("cn.liwen.impl.UserDaoImpl.getUserById",id);
            System.out.println(userList);
    }

    /**多个参数*/
    @Test
    public void getUserByCondition() {
        Map<String,Object> paraMap =  new HashMap<String, Object>();
        paraMap.put("username","李玟");
        paraMap.put("pwd","321321");
        Map<String, Object> userList = session.selectOne("cn.liwen.impl.UserDaoImpl.getUserById",paraMap);
        System.out.println(userList);
    }

    /**通过实体类方式取值*/
    @Test
    public void getUserByCondition2() {
        // 同时传递多个参数
        User user = new User();
        user.setUsername("李玟");
        user.setPassword("321321");
        Map<String, Object> userMap = session.selectOne("cn.liwen.impl.UserDaoImpl.getUserByCondition2", user);
        System.out.println(userMap);
    }

     /**
    执行模糊查询
     */
     @Test
     public void getUserByMh()
     {
         // 传递参数
         Map<String, Object> paramMap = new HashMap<String, Object>();
         paramMap.put("password", "3");
         List<Map<String, Object>> userMap = session.selectList("cn.liwen.impl.UserDaoImpl.getUserByMh", paramMap);
         for (Map<String, Object> map : userMap) {
             System.out.println(map);
         }
     }

     /**添加数据
    delete、insert、update标签没有resultType属性
     */
    @Test
    public void addUser()
    {
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("username","北京");
        paramMap.put("password","123455");
        int flag = session.insert("cn.liwen.impl.UserDaoImpl.addUser", paramMap);
        //增删改必须提交事务
        session.commit();
        System.out.println(flag);
    }
}

接口实现类.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">
<!--
    namespace:命名空间,其值为某一个dao层类的具体路径
 -->
<mapper namespace="cn.liwen.impl.UserDaoImpl">
    <!-- sql语句保存在Mybatis的局部配置文件中 -->
    <!--
        select标签存放查询语句(List<User>)
            id:在整个配置文件中id值必须唯一,其值与dao层类中的方法名保持一致
            resultType:指定当前sql查询语句返回的数据类型。类型不是为sql语句的最终类型,而是某一条数据的类型
     -->
    <!-- findallusr  : 是别名 -->
    <select id="getAllUser" resultType="findallusr">
        SELECT * FROM users
    </select>

    <!--使用list方式调用 -->
    <select id="getAllUserlist" resultType="findallusr">
        SELECT * FROM users
    </select>

    <!-- 使用map 方法查询-->
    <select id="getAllUser2" resultType="Map">
        SELECT * FROM users
    </select>

    <!--
        parameterType:指定接收参数类型
     -->
    <select id="getUserById" resultType="Map" parameterType="long">
        SELECT * FROM users where id=#{id}
    </select>

    <!--
        当传递的参数有多个条件时
      -->
    <select id="getUserByCondition" resultType="map" parameterType="Map">
        SELECT * FROM users WHERE username=#{username} AND PASSWORD=#{pwd}
    </select>

    <!--
            当传递的参数有多个条件时
            通过实体类方式
          -->
    <select id="getUserByCondition2" resultType="map" parameterType="cn.liwen.entity.User">
        SELECT * FROM users WHERE username=#{username} AND PASSWORD=#{password}
    </select>

    <!--
        执行模糊查询
     -->
    <select id="getUserByMh" resultType="map" parameterType="map">
        SELECT * FROM users WHERE PASSWORD LIKE CONCAT(‘%‘,#{password},‘%‘)
    </select>

    <!-- 添加数据
        delete、insert、update标签没有resultType属性
     -->
    <insert id="addUser" parameterType="Map">
        INSERT INTO users SET username=#{username},PASSWORD=#{password}
    </insert>

</mapper>

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

    <!-- 别名
    -->
    <typeAliases>
        <typeAlias type="cn.liwen.entity.User" alias="findallusr"/>
    </typeAliases>

    <!-- 配置数据库连接环境:driver、url、username、password
    default===默认配置
    -->
    <environments default="mysql">
        <!-- 开始配置mysql -->
        <environment id="mysql">
            <!--配置事务  -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://192.168.47.196:3306/test?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 关联局部配置文件 -->
    <mappers>
        <mapper resource="cn/liwen/impl/UserDaoImpl.xml"/>
    </mappers>
</configuration>

原文地址:http://blog.51cto.com/357712148/2109214

时间: 2024-08-26 20:22:17

mybatis中的xml方式增删改查的相关文章

Mybatis实现简单的数据库增删改查操作

Mybatis实现简单的数据库增删改查操作 框架:mybatis(3.5.2) 数据库:mysql 工具:idea 1.新建一个maven项目,在pom文件中添加mybatis依赖及MySQL依赖 <!-- mybatis核心依赖 --> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId&g

Mybatis使用之简单的增删改查

Mybatis使用之简单的增删改查 一:简介 主要记录最简单的数据的增删改查.下一章会有各个操作详细一点的配置说明.以Author表为例(见上一博客).Author表没有关联任何其他表.也没有特殊字段. 二:映射规则 2.1.映射文件中的sql方法与对应的XxxMapper接口中的方法映射规则: a)映射文件的namespace的值是XxxMapper接口的全限定名.即包名+接口名称 b)映射文件中表示增删改查的标签(select.insert.delete.update)的id的值是接口中方法

flex 操作xml 实现增删改查 .

一 在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为“元素”    节点:把XML元素与文本结合起来统称为节点    根节点:位于整个XML文当顶端的节点    文本节点:包含文本的节点    属性:元素的组成部分,以键/值形式放在元素标签内 用一个例子来说明 view plaincopy to clipboardprint?<root_node><!--这是一个根节点也是一个元素-->            &l

Mybatis简单的入门之增删改查

一般的步骤如下 1.添加Mybatis所需要的包,和连接数据库所需的包 2.配置mybatis-config.xml文件 3.配置与pojo对应的映射文件 mybatis-config,xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http:/

SpringBoot + MyBatis 实现对员工的增删改查

SpringBoot + MyBatis 实现对员工的增删改查 一.使用idea新建SpringBoot项目 File-->New-->Project-->Spring Assistant-->Next-->修改报名,项目名等信息-->Next-->在web中选中web,在SQL中选中MySQL.JDBS.MyBatis-->Next-->Finish 二.修改pom.xml文件[之前的操作已经导入了springboot.mysql.jdbc.myba

android中SQLite数据库的增删改查

1.数据库帮助类PersonSQLiteOpenHelper package com.wzw.sqllitedemo.db; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper

asp.net中利用JSON进行增删改查中运用到的方法

//asp.net中 利用JSON进行操作, //增加: //当点击"增加链接的时候",弹出增加信息窗口,然后,在窗体中输入完整信息,点击提交按钮. //这里我们需要考虑这些:我会进行异步提交,使用jquery中的方法,$.post("网页名",JSON,callback); //JSON的写法:{"name":name,"id":id},那我们对其进行假设,比方说,表单中的textbox很多,需要我们填写的信息 //也很多,

用CI框架向数据库中实现简单的增删改查

以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html CodeIgniter_2.1.3与PHP5.6的兼容问题请戳 http://www.cnblogs.com/corvoh/p/4649357.html 增: //insert//语法:$bool=$this->db->insert('表名',关联数组); $data=array( 'username'=

用PHP向数据库中实现简单的增删改查(纯代码,待完善)

<?php $con = mysql_connect("localhost:3306","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM user"); echo "