ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在idea中创建maven工程,搭建mybatis环境完成单表增删改查操作,测试,

2021-09-20 22:06:13  阅读:122  来源: 互联网

标签:name user idea id maven 单表 password public User


一.创建Maven项目

1.选择 File--> New--> Project
2.选择Maven-->选择自己的JDK版本--> Next

二.Maven基础配置

.创建好Maven项目后,打开Maven项目中的pom.xml文件,加载所需要的jar包;
2.在pom.xml文件中找到 </properties>结束标签,在下一行添加所需要的依赖,如下:

 

<dependencies>
        <!-- 测试包 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>
        <!-- mysql驱动包 -->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>

    </dependencies>

三.创建数据库 

1.创建数据库;
2.使用当前数据库(为了避免创建的数据表不在指定的数据库中);
3.创建数据库。
注:创建完成后注意检查是否成功。

四.创建实体类与接口

数据库建好后回到Maven项目中,依次打开 src / main,然后右键 java新建一个包(package),再在包下面新建一个包(package),在当前包中新建一个User实体类。

 

package com.demo.mybatis;

public class User {
    private Integer id;
    private String name;
    private String password;

    public User() {
        super();
    }

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

    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 getPassword() {
        return password;
    }

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

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

}

2、在 java文件夹下第一层级的包中新建另一个包,再在当前包中新建一个接口(UserMapper)

package com.demo.sss;

import com.demo.mybatis.User;

import java.util.List;

public interface UserMapper {
    //查询所有信息
    public List<User> queryAll();

    //添加
    public void addUser(User user);

    //修改
    public boolean updateUser(User user);

    //根据id删除信息
    public void deleteUserById(int id);
}

五.文件配置

1.数据库连接

依次打开 src / main,然后右键 resources新建一个properties文件(dbconfig.properties);

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
jdbc.username = root
jdbc.password =x5

 2.mybatis的xml文件配置

右键 resources新建一个xml文件(mybatis-config.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>
    <!--
        mybatis可以使用properties来引入外部properties配置文件的内容
        resource:引入类路径下的资源
     -->
    <properties resource="dbconfig.properties">

    </properties>

    <!-- environments:环境,mybatis可以设置多种环境;default指定使用某种环境,可以达到快速切换环境
             environment:配置一个具体的环境信息;必须有两个标签;id代表当前环境的唯一标识
                  type:事务管理器的类型;JDBC(JdbcTransactionFactory)MANAGED(ManagedTransactionFactory)
                       自定义事务管理器:实现TransactionFactory接口,type指定为全类名
              dataSource:数据源
                   type:数据源UNPOOLED(UnpooledDataSourceFactory)
                               POOLED(PooledDataSourceFactory)
                               JNDI(JndiDataSourceFactory)
                               自定义数据源:实现DataSourceFactory接口,type是全类名
     -->
    <environments default="db_mysql">
        <environment id="db_mysql">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!-- 数据库连接相关配置 ,这里动态获取dbconfig.properties文件中的内容-->
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!-- databaseIdProvider:支持多数据库厂商的;
                type="DB_VENDOR":VendorDatabaseIdProvider
                    作用就是得到数据库厂商的标识(驱动getDatabaseIDProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
     -->
    <mappers>
        <mapper resource="UserMapper.xml"/>  <!-- sql映射文件路径 -->
    </mappers>
</configuration>

3.SQL映射文件的配置

右键 resources新建一个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.dtd">
<mapper namespace="com.demo.sss.UserMapper">
    <!--
        namespace :名称空间;指定接口的全类名
        id:唯一标识(建议用接口中对应的方法名命名)
        resultType:返回值类型
    -->
    <select id="queryAll" resultType="com.demo.mybatis.User">
        select * from tb_user
    </select>
    <!--
          自增主键值的获取,mybatis也是利用statement.getGeneratedKeys();
          useGeneratedKeys="true";使用自增获取主键值策略
          keyProperty:指定对应的主键值,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性
    -->
    <insert id="addUser" parameterType="com.demo.mybatis.User" >
        insert into tb_user(id,name,password) values(#{id},#{name},#{password})
    </insert>
     <!--根据name修改password的值-->
    <update id="updateUser">
        update tb_user set password=#{password} where name=#{name}
    </update>
    <delete id="deleteUserById">
        delete from tb_user where id=#{id}
    </delete>
</mapper>

整体结构如下:

六.测试 

import com.demo.mybatis.User;
import com.demo.sss.UserMapper;
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;
import java.util.List;

public class Test {
    public SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        return  new SqlSessionFactoryBuilder().build(inputStream);
    }

    @org.junit.Test
    public void demo() throws IOException {
        SqlSessionFactory sessionFactory = getSqlSessionFactory();
        SqlSession openSession = sessionFactory.openSession();
        try {
            //添加
//            UserMapper mapper = openSession.getMapper(UserMapper.class);
//            User user = new User(7, "To2m", "123");
//            mapper.addUser(user);
//            System.out.println(user);
//            openSession.commit();  //执行增删改是需手动提交数据

            //修改
//            UserMapper mapper = openSession.getMapper(UserMapper.class);
//            User user = new User(null, "To2m", "2122");
//            mapper.updateUser(user);
//            openSession.commit();  //执行增删改是需手动提交数据
            //查询
//            List<User> list = openSession.selectList("com.demo.sss.UserMapper.queryAll");
//            for (User user:list) {
//                System.out.println(user);
//                                }
            //删除
            UserMapper mapper = openSession.getMapper(UserMapper.class);
            mapper.deleteUserById(54);
            openSession.commit();  //执行增删改是需手动提交数据

        } finally {
            openSession.close();
        }
    }
}

完成。

标签:name,user,idea,id,maven,单表,password,public,User
来源: https://blog.csdn.net/m0_61394565/article/details/120395909

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有