美文网首页
mybatis+mysql入门例子

mybatis+mysql入门例子

作者: 寻找大海的鱼 | 来源:发表于2018-12-26 22:19 被阅读0次

一、简介
  MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
二、入门使用
1.使用maven管理依赖

<packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.0.2</version>
                <configuration>
                    <classesDirectory>target/classes/</classesDirectory>
                    <archive>
                        <addMavenDescriptor>true</addMavenDescriptor>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <classpathPrefix>lib/</classpathPrefix>
                            <mainClass>com.wyh.Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.10</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.5.5</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.wyh.Main</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

2.在resources下创建application.xml和jdbc.properties
   2.1 application.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"></properties>
    <environments default="development">
        <!--配置不同的环境下的数据源-->
        <!--开发模式下-->
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <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>
        <!--生产模式下-->
        <environment id="product">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <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>
    <mappers>
        <mapper resource="com/wyh/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

   2.2 jdbc.properties

jdbc_driver=com.mysql.jdbc.Driver
jdbc_url=jdbc\:mysql\://127.0.0.1:3306/stu?characterEncoding=utf-8&useSSL=true
jdbc_username=root
jdbc_password=123456

3.建立pojo的包,建立User实体类

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

    public User() {
    }

    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 getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

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

4.建立mapper包
4.1建立UserMapper接口

public interface UserMapper {
        public User selectUserById(Integer userId);
        public List<User> selectUserAll();
        public void insertUser(User user);
        public void updateUser(User user);
}

4.2建立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.wyh.mapper.UserMapper">
    <!--设置domain类和数据库中表的字段一一对应,注意数据库字段和domain类中的字段名称不致,此处一定要!-->
    <resultMap id="BaseResultMap" type="com.wyh.pojo.User">
        <id column="ID" property="id" jdbcType="INTEGER" />
        <result column="NAME" property="name" jdbcType="CHAR" />
        <result column="DATA" property="data" jdbcType="CHAR" />
    </resultMap>
    <!-- 查询单条记录 -->
    <select id="selectUserById" parameterType="int" resultMap="BaseResultMap">
        SELECT * FROM student WHERE ID = #{id}
    </select>
    <!-- 查询所有记录 -->
    <select id="selectUserAll" resultMap="BaseResultMap">
        SELECT * FROM student
    </select>
    <!-- 插入单条记录 -->
    <insert id="insertUser" parameterType="com.wyh.pojo.User">
        insert into student (id,name,data)
        values (#{id},#{name},#{data})
    </insert>
    <update id="updateUser" parameterType="com.wyh.pojo.User">
        update student
        <set >
          <if test="data != null" >
            data = #{data ,jdbcType=CHAR}
          </if>
          ,<if test="name != null" >
            name = #{name ,jdbcType=CHAR}
        </if>
        </set>
        where id = #{id}
    </update>
</mapper>

5.建立utils包,并建立UpdateDB类

public class UpdateDB {
    public static void updateDB(User user) {
        SqlSession session = null;

        try {
            // 读取配置信息
            String resource = "application.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();

            // 选择不同的环境
            String env = "product";
            SqlSessionFactory factory = builder.build(inputStream,env);

            // 产生SqlSession对象
            session = factory.openSession();
            System.out.println(session);

            // 获取映射对象
            UserMapper userMapper = session.getMapper(UserMapper.class);

            // 获取id为1的账户
            //User user = userMapper.selectUserById(1);
            //System.out.println(user);

            // 获取所有账户
            List<User> arrayList = userMapper.selectUserAll();
            System.out.println("before:" + arrayList);

            //更新数据

            userMapper.updateUser(user);
            session.commit();

            // 获取所有账户
            arrayList = userMapper.selectUserAll();
            System.out.println("after"+arrayList);


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (session != null)
                // 关闭连接
                session.close();
        }

    }
}

6.测试程序
建立主类

public class Main {
    public static void main(String[] args) {
        User user = new User();
        user.setId(1);
        user.setName("zhangsan");
        user.setData("100");
        UpdateDB.updateDB(user);
    }
}

运行测试,如下图


test.jpg

相关文章

  • mybatis+mysql入门例子

    一、简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。二、入门使用1.使用m...

  • docker入门例子

    最近工作上刚好用到了docker ,所以作为入门学习,本文就以一个简单的例子展开。 推荐一个不错的入门资料 Do...

  • vuex入门例子

    vuex example 接着上一篇的vuex简单剖析,接下来主要来写一个简单的例子?,来操作一番。 store ...

  • attempted to return null from a

    mybatis+mysql查询出来会报如下错误:attempted to return null from a m...

  • crm项目框架搭建

    crm项目技术 一.框架搭建 后台:Springboot +mybatis+mysql 前台:layui+thym...

  • protobuf Python极简入门例子

    protbuf极简入门例子 Google官方的tutorial废话有点多, 而且例子也有点不直观. 自己在官方例子...

  • 正则表达式的语法分类

    转载自正则表达式30分钟入门教程 入门 学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实...

  • beetl模板入门例子

    beetl初级用法 public class BeetlEngine { public static Strin...

  • Django 入门例子2

    前言 上次写了第一个入门的小例子,今天呢,咋们来搭建一个博客网站,所以今天会学到django中的model,以及t...

  • gin笔记-入门例子

    最简单的gin例子莫过于 其中方法第二个参数为func (c *gin.Content) 绑定 url路径参数绑定...

网友评论

      本文标题:mybatis+mysql入门例子

      本文链接:https://www.haomeiwen.com/subject/davklqtx.html