java之mybatis之使用mybatis实现crud操作

目录结构:

1.封装 mybatis 的工具类:

MybatisUtil.java

public class MybatisUtil {
    private static SqlSessionFactory getSqlSessionFactory() throws IOException{
        Reader reader = Resources.getResourceAsReader("mybatis.cfg.xml");
        return  new SqlSessionFactoryBuilder().build(reader);
    }
    public static SqlSession getSqlSession() throws IOException{
        //填写参数 true表示事务自动提交
        return getSqlSessionFactory().openSession(true);
    }
}

2.vo类

User.java

 1 public class User implements Serializable{
 2     private int id;
 3     private String name;
 4     private int age;
 5     public int getId() {
 6         return id;
 7     }
 8     public void setId(int id) {
 9         this.id = id;
10     }
11     public String getName() {
12         return name;
13     }
14     public void setName(String name) {
15         this.name = name;
16     }
17     public int getAge() {
18         return age;
19     }
20     public void setAge(int age) {
21         this.age = age;
22     }
23     @Override
24     public String toString() {
25         return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
26     }
27 }

3.映射文件

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">
<!--
    namespace用来指定映射文件的命名空间,在这里通过namespace可以找到该空间下的所有的
    sql语句映射。namespace的命名通常和应该映射文件所在【包名+映射文件名】
 -->
<mapper namespace="cn.sxt.vo.UserMapper">
    <select id="findAll" resultType="User">
        select * from t_user
    </select>

    <!-- select用来编写查询的sql语句  id在同一个namespace下是唯一的。
        parameterType用来指定参数类型
        #{id} 占位符 输入参数将会填充。建议和参数名要相同
        resultType 用来指定返回值类型
     -->
    <select id="selectUser" parameterType="int" resultType="User">
        select * from t_user where id = #{id}
    </select>
    <!-- insert用来映射插入语句
        useGeneratedKeys 为true表示使用主键自增策略
        parameterType用来指定参数类型
        占位符中的 名称是参数的属性名,并且要提供get/set方法
    -->
    <insert id="insertUser" useGeneratedKeys="true" parameterType="User">
        insert into t_user(name,age) values(#{name},#{age})
    </insert>
    <!-- delete 用来指定删除语句 -->
    <delete id="deleteUser" parameterType="int">
        delete from t_user where id=#{id}
    </delete>
    <!-- update 用来指定更新语句 -->
    <update id="updateUser" parameterType="User">
        update t_user set name=#{name},age=#{age} where id=#{id}
    </update>
</mapper>

4.核心配置文件

mybatis.cfg.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>
    <!-- 它们都是外部化,可替代的属性。可以配置在一个典型的Java 属性文件中,或者通过
        properties 元素的子元素进行配置 -->
    <properties resource="jdbc.properties"></properties>
    <!-- 别名是一个较短的Java 类型的名称。用来设置别名 -->
    <typeAliases>
        <!-- 为指定的包下所有类设置别名,别名默认为类名 -->
        <package name="cn.sxt.vo"/>
        <!-- 为指定的类型设置别名
        <typeAlias type="cn.sxt.vo.User" alias="User"/>
        -->
    </typeAliases>
    <!-- MyBatis 能够配置多套运行环境,这有助于将您的SQL 映射到多个数据库上。例如,在您的
    开发、测试、生产环境中,您可能有不同的配置。
        default指向默认使用的环境
     -->
    <environments default="development">
        <environment id="development">
            <!--
                JDBC – 这个配置直接使用JDBC 的提交和回滚功能。它依赖于从数据源获得连接来管理
                事务的生命周期。
                • MANAGED – 这个配置基本上什么都不做。它从不提交或者回滚一个连接的事务。而是让
                容器(例如:Spring 或者J2EE 应用服务器)来管理事务的生命周期。
             -->
            <transactionManager type="JDBC" />
            <!--
                UNPOOLED – 这个类型的数据源实现只是在每次需要的时候简单地打开和关闭连接。
                POOLED – 这个数据源的实现缓存了JDBC 连接对象,用于避免每次创建新的数据库连接时都初始
                化和进行认证,加快程序响应。并发WEB 应用通常通过这种做法来获得快速响应。
                JNDI – 这个数据源的配置是为了准备与像Spring 或应用服务器能够在外部或者内部配置数据
                源的容器一起使用,然后在JNDI 上下文中引用它。
             -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!-- sql语句的映射文件配置 -->
        <mapper resource="cn/sxt/vo/UserMapper.xml"/>
    </mappers>
</configuration>

jdbc.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=1111

5.测试

MybatisTest.java

public class MybatisTest {
    @Test
    public void testAdd() throws IOException{
        User user = new User();
        user.setName("刘德华");
        user.setAge(55);
        SqlSession session = MybatisUtil.getSqlSession();
        //增 删  改  返回值为受影响的行数
        session.insert("cn.sxt.vo.UserMapper.insertUser", user);
        session.close();
    }
    @Test
    public void testUpdate() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        User user=session.selectOne("cn.sxt.vo.UserMapper.selectUser", 1);
        user.setName("彰五金");
        session.update("cn.sxt.vo.UserMapper.updateUser",user);
        session.close();
    }
    @Test
    public void testDelete() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        session.delete("cn.sxt.vo.UserMapper.deleteUser", 3);
        session.close();
    }
    @Test
    public void testFindAll() throws IOException{
        SqlSession session = MybatisUtil.getSqlSession();
        List<User> list = session.selectList("cn.sxt.vo.UserMapper.findAll");
        for(User u:list){
            System.out.println(u);
        }
        session.close();
    }
}

原文地址:https://www.cnblogs.com/Vincent-yuan/p/11297342.html

时间: 2024-10-06 00:22:38

java之mybatis之使用mybatis实现crud操作的相关文章

Mybatis学习(二) - CRUD操作(增删改查操作)

直接上例子: 1.项目结构: 2.具体代码及配置 User.java package com.mybatis.bean; public class User { private int id; private String name; private int age; public User(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public User(){} publi

MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(二)--使用MyBatis对表执行CRUD操作 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对users表执行CRUD操作.本文中使用到的测试环境是上一篇博文中的测试环境. 一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMa

使用MyBatis对表执行CRUD操作

一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-ma

MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作

本文中使用到的测试环境是上一篇博文中的测试环境. 一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis

尚硅谷-MyBatis的CRUD操作

项目结构: User实体类代码: package com.atguigu.mybatis.bean; public class User { private int id; private String name; private int age; public User() { super(); } public User(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = ag

MyBatis 学习总结 02 对表执行增删改查(CRUD)操作 OLD

 可以对上一节中使用mybatis打开一次session的业务逻辑进行封装,封装的成工具类命名为: MyBatisUtil package com.mybatis.util; import java.io.InputStream; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlS

mybatis学习(二)----对表进行CRUD操作

一.使用MyBatis对表执行CRUD操作--基于XML的实现 userMapper.xml映射文件如下: 1 <?xml version="1.0" encoding="utf-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"&g

MyBatis学习(2)-----------执行CRUD操作

一.使用MyBatis对表执行CRUD操作--基于XML的实现 1.定义sql映射xml文件 userMapper.xml文件的内容如下: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-ma

mybatis(二)执行CRUD操作的两种方式配置和注解

一.使用MyBatis对表执行CRUD操作——基于XML的实现 1.定义sql映射xml文件 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

Spring+SpringMVC+mybatis入门(环境搭建+crud)

大学毕业快一年了,在学校里做了一个android APP的项目,一直都只是熟悉android后台开发是最大的短板,工作后,公司都是自己的框架,这种开源框架基本也没时间去接触.app和后台都是基于公司的平台开发,我觉得一个人做也没有啥难度.一直在混日子,把整个app的架构分析了一遍.后来公司业务需求,我被迫PC端和android客户端都的做.真心现在啥都不是研究的很深.心累.吐槽完毕.接下来,记录我自己学习ssm框架完成crud的整个过程. 一.开发环境搭建 1.新建一个动态web项目 点击完成工