• Mybatis的CRUD操作


    好久没写博客了。都快忘了博客怎么写,代码怎么敲了。好了,言归正传。

    最近在学习了解Mybatis框架的运用,可以不用写接口的实现类。就可以完成增删改查。觉得挺牛逼的。特来学习。嘻嘻

    我用的是mybatis3.2.7和mysql

    ps:mybatis3.x之前的版本是ibatis

    第一步:创建一个web项目,将mybatis和mysql的jar包导入lib中

    第二步:新建一个jdbc.properties文件用来存放数据库连接相关属性

    第三步:创建一个Configuration.xml配置文件,先用来配置jdbc,后期用mapper来配置实体类的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>
    <!--加入数据库配置-->
        <properties resource="JDBC.properties" />
        <typeAliases>
    <!--用来配置实体类的别名-->
            <typeAlias type="com.bestlink.bean.User" alias="User"/>
        </typeAliases>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <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>
             <mapper resource="com/bestlink/bean/User.xml" /> 
            
        </mappers>
    </configuration>

    第四步:写User.java的实体类

    package com.bestlink.bean;
    
    public class User {
        private int id;
        private String name;
        private int age;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "User [age=" + age + ", id=" + id + ", name=" + name + "]";
        }
    
    }

    第五步:写User.xml文件,用来操作User的增删改查。其中namespace是用来对应User的接口UserDao的。必须一致

    <?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 必须和定义的接口UserDao一致-->
    <mapper namespace="com.bestlink.dao.UserDao">
        <!-- 查询所有的数据  返回值是User类型 id是和接口中的方法一致  -->
        <select id="getUser" resultType="User">
            select * from users
        </select>
        <!-- 根据Id来查询  传入值是int类型   返回值是User类型 -->
        <select id="getUserById" parameterType="int" resultType="User">
            select * from users where id=#{id}
        </select>
        <!-- 增加 -->
        <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
            insert into users(name,age) values(#{name},#{age})
        </insert>
        <!-- 删除 -->
        <delete id="deleteUser" parameterType="int">
            delete from users where id=#{id}
        </delete>
        <!-- 修改 -->
        <update id="updateUser" parameterType="User">
            update users set name=#{name} where id=#{id}
        </update>
    </mapper>

    第六步:定义接口UserDao

    package com.bestlink.dao;
    
    import java.util.List;
    
    import org.apache.ibatis.annotations.Delete;
    import org.apache.ibatis.annotations.Insert;
    import org.apache.ibatis.annotations.Select;
    import org.apache.ibatis.annotations.Update;
    
    import com.bestlink.bean.User;
    
    public interface UserDao {
        // 查询所有数据
    
        public List<User> getUser();
    
        // 根据ID来查询
    
        public User getUserById(int id);
    
        // 增加
    
        public void insertUser(User user);
    
        // 删除
    
        public void deleteUser(int id);
    
        // 修改
    
        public void updateUser(User user);
    }

    第七步:编写SqlSessionFactory和SqlSession,返回SqlSession

    package com.bestlink.util;
    
    import java.io.IOException;
    import java.io.Reader;
    
    import org.apache.ibatis.io.Resources;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    
    public class JDBC {
        static SqlSessionFactory sqlSessionFactory = null;
        static SqlSession sqlSession = null;
    
        public static SqlSession getSession() {
    
            try {
                Reader reader = Resources.getResourceAsReader("Configuration.xml");
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
                sqlSession = sqlSessionFactory.openSession(true);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return sqlSession;
        }
    
        public static void CloseSession() {
            sqlSession.close();
        }
    }

    第八步:编写测试类

    package com.bestlink.test;
    
    import java.util.List;
    
    import org.apache.ibatis.session.SqlSession;
    
    import com.bestlink.bean.User;
    import com.bestlink.dao.UserDao;
    import com.bestlink.util.JDBC;
    
    public class test {
        static SqlSession session = JDBC.getSession();
        static UserDao dao = session.getMapper(UserDao.class);
    
        public static void main(String[] args) {
            System.out.println("查询所有数据:getuser()");
            getuser();
            System.out.println("根据Id查询数据:getUserById(1)");
            // 根据Id查询数据
            getUserById(1);
            System.out.println("插入一条数据:insertUser(User user),并查询所有数据");
    
            User user = new User();
            user.setName("测试1");
            user.setAge(34);
            insertUser(user);
            getuser();
    
            System.out.println("删除一条数据:deleteUser(int id),并查询所有数据");
            deleteUser(19);
            getuser();
            System.out.println("修改一条数据:updateUser(User user),并查询所有数据");
            user = new User();
            user.setName("修改数据");
            user.setId(1);
            updateUser(user);
            getuser();
    
        }
    
        /**
         * 查询所有数据
         */
        public static void getuser() {
            List<User> list = dao.getUser();
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i).toString());
            }
        }
    
        /**
         * 根据Id查询数据
         * 
         * @param id
         */
        public static void getUserById(int id) {
            User user = dao.getUserById(id);
            System.out.println(user);
        }
    
        /**
         * 插入一条数据
         * 
         * @param user
         */
        public static void insertUser(User user) {
            dao.insertUser(user);
        }
    
        /**
         * 删除一条数据
         * 
         * @param id
         */
        public static void deleteUser(int id) {
            dao.deleteUser(id);
        }
    
        /**
         * 修改一条数据
         * 
         * @param user
         */
        public static void updateUser(User user) {
            dao.updateUser(user);
        }
    }

    最后的最后千万要记得,在数据库中创建一个名为users的数据表,表中有id,name,age。其中id为主键。

  • 相关阅读:
    github替代品
    【推荐】通用全面的APP测试用例设计
    Jmeter 性能测试,完整入门篇
    2020年,有哪些特别好用的 app 测试工具?
    如何做好Web端性能测试?
    如何做Web服务的性能测试?
    Office 各版本批量授权(VOL)和激活方法
    django中引用bootstrap的几种方式
    list类型数据执行效率测试
    Linux安装python3环境
  • 原文地址:https://www.cnblogs.com/hp-discuz/p/5755101.html
Copyright © 2020-2023  润新知