文章

MyBatis入门项目(实现增删改查)

本文详细介绍使用MyBatis框架进行数据库的增删改查操作,包括项目搭建、配置文件解析、SQL执行流程及结果展示,适用于初学者快速掌握MyBatis基本用法。

MyBatis入门项目(实现增删改查)

文章信息

  • 原文链接:https://jiayq.blog.csdn.net/article/details/87987347
  • 发布时间:2019-02-27 19:49:43
  • 阅读量:1
  • 分类:java同时被 3 个专栏收录, 订阅专栏, mybatis, MyBatis
  • 标签:#MaBatis增删改查, #MyBatis入门, #如何使用MyBatis实现数据库的增删改查, #含有增删改查的MyBatis的项目, #MyBatis入门联系项目

摘要

文章浏览阅读1.7k次。本文详细介绍使用MyBatis框架进行数据库的增删改查操作,包括项目搭建、配置文件解析、SQL执行流程及结果展示,适用于初学者快速掌握MyBatis基本用法。


MyBatis增删改查

  • 1.创建java项目
  • 2.导入jar
  • 3.创建如下文件
  • 4.编写源码
  • 5.运行结果
  • 6.总结

数据库的增删改查是基础的操作,最基本的操作。
MyBatis如何实现数据库的增删改查呢?

1.创建java项目

在这里插入图片描述

2.导入jar

在这里插入图片描述

3.创建如下文件

在这里插入图片描述

4.编写源码

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package client;

import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

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 domain.People;

public class Main {

	public static void main(String[] args) throws IOException {
		String resource = "resource/mybatis.xml";
		// 1.读取配置文件
		InputStream inputStream = Resources.getResourceAsStream(resource);
		// 2.根据配置文件构建SqlSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
				.build(inputStream);
		// 3.通过SqlSessionFactory创建SqlSession
		SqlSession sqlSession = sqlSessionFactory.openSession();
		// 4.执行mapper中的sql,返回结果
		People people = sqlSession.selectOne(
				"mapper.PeopleMapper.selectPeopleById", Long.valueOf(101));
		System.out.println(people);
		System.out.println();
		
		List<People> peoples = sqlSession.selectList(
				"mapper.PeopleMapper.selectPeopleByName", "update");
		for(People p : peoples){
			System.out.println(p);
		}
		System.out.println();
		
		List<People> peoplesAge = sqlSession.selectList(
				"mapper.PeopleMapper.selectPeopleByAge", 28);
		for(People p : peoplesAge){
			System.out.println(p);
		}
		System.out.println();
		
		List<People> peoplesSex = sqlSession.selectList(
				"mapper.PeopleMapper.selectPeopleBySex", 0);
		for(People pp : peoplesSex){
			System.out.println(pp);
		}
		System.out.println();
		
		People addPeople = new People();
		addPeople.setName(new SimpleDateFormat("yyyy-mm-dd hh:mm:ss")
				.format(new Date()));
		addPeople.setAge((int)Math.random()*100);
		addPeople.setSex((int)(Math.random()*10)/10);
		System.out.println(addPeople);
		System.out.println(sqlSession.insert("mapper.PeopleMapper.addPeople",
				addPeople));
		System.out.println();

		people.setName(people.getName()+"updateMyBatis");
		System.out.println(people);
		System.out.println(sqlSession.update("mapper.PeopleMapper.updatePeople", people));
		sqlSession.commit();
		
		System.out.println(sqlSession.delete("mapper.PeopleMapper.deletePeopleById", 93L));
		sqlSession.commit();
		
		sqlSession.close();
	}

}

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package domain;

import java.io.Serializable;

public class People implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -3270893239281340723L;

	private Long id;
	
	private String name;
	
	private Integer age;
	
	private Integer sex;

	public Long getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public Integer getSex() {
		return sex;
	}

	public void setSex(Integer sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "people [id=" + this.id + ",name=" + this.name + ",age="
				+ this.age + ",sex=" + this.sex + "]";
	}
	
	
}

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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="mapper.PeopleMapper">
  <select id="selectPeopleById" resultType="domain.People"
  	parameterType="Long">
    	select * from people where id = #{id}
  </select>
  <select id="selectPeopleByName" resultType="domain.People"
  	parameterType="String">
		select * from people where name like '%${value}%'  	
  </select>
  <select id="selectPeopleByAge" resultType="domain.People"
    parameterType="Integer">
    	select * from people where age=#{age}
  </select>	
  <select id="selectPeopleBySex" resultType="domain.People"
    parameterType="Integer">
  		select * from people where sex=#{sex}
  </select>
  <insert id="addPeople" parameterType="domain.People">
  		insert into people(id,name,age,sex) 
  		values(SEQ_PEOPLE.NEXTVAL,#{name},#{age},#{sex})
  </insert>
  <update id="updatePeople" parameterType="domain.People">
  		update people set name=#{name},age=#{age},sex=#{sex} where id=#{id}
  </update>
  <delete id="deletePeopleById" parameterType="Long">
  		delete people p where p.id=#{id}
  </delete>
</mapper>

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
log4j.logger.domain=DEBUG



driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:oracle
username=study
password=study

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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="property/ojdbc.properties"></properties>
  <environments default="oracle">
    <environment id="oracle">
      <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="mapper/PeopleMapper.xml"/>
  </mappers>
</configuration>

5.运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
people [id=101,name=aPeopleupdateMyBatis,age=53,sex=0]

people [id=103,name=aPeopleupdate,age=53,sex=0]
people [id=104,name=bPeopleupdate,age=62,sex=1]
people [id=121,name=aPeopleupdate,age=28,sex=0]
people [id=122,name=bPeopleupdate,age=37,sex=1]
people [id=123,name=aPeopleupdate,age=28,sex=0]
people [id=124,name=bPeopleupdate,age=37,sex=1]
people [id=125,name=aPeopleupdate,age=28,sex=0]
people [id=126,name=bPeopleupdate,age=37,sex=1]
people [id=127,name=aPeopleupdate,age=28,sex=0]
people [id=128,name=bPeopleupdate,age=37,sex=1]
people [id=129,name=aPeopleupdate,age=28,sex=0]
people [id=130,name=bPeopleupdate,age=37,sex=1]
people [id=105,name=aPeopleupdate,age=53,sex=0]
people [id=101,name=aPeopleupdateMyBatis,age=53,sex=0]
people [id=107,name=aPeopleupdate,age=53,sex=0]
people [id=109,name=aPeopleupdate,age=53,sex=0]
people [id=110,name=bPeopleupdate,age=62,sex=1]
people [id=111,name=aPeopleupdate,age=48,sex=0]
people [id=112,name=bPeopleupdate,age=57,sex=1]
people [id=113,name=aPeopleupdate,age=43,sex=0]
people [id=114,name=bPeopleupdate,age=52,sex=1]
people [id=115,name=aPeopleupdate,age=38,sex=0]
people [id=116,name=bPeopleupdate,age=47,sex=1]
people [id=117,name=aPeopleupdate,age=33,sex=0]
people [id=118,name=bPeopleupdate,age=42,sex=1]
people [id=119,name=aPeopleupdate,age=28,sex=0]
people [id=120,name=bPeopleupdate,age=37,sex=1]

people [id=121,name=aPeopleupdate,age=28,sex=0]
people [id=123,name=aPeopleupdate,age=28,sex=0]
people [id=125,name=aPeopleupdate,age=28,sex=0]
people [id=127,name=aPeopleupdate,age=28,sex=0]
people [id=129,name=aPeopleupdate,age=28,sex=0]
people [id=119,name=aPeopleupdate,age=28,sex=0]

people [id=103,name=aPeopleupdate,age=53,sex=0]
people [id=121,name=aPeopleupdate,age=28,sex=0]
people [id=123,name=aPeopleupdate,age=28,sex=0]
people [id=125,name=aPeopleupdate,age=28,sex=0]
people [id=127,name=aPeopleupdate,age=28,sex=0]
people [id=129,name=aPeopleupdate,age=28,sex=0]
people [id=135,name=2019-34-27 07:34:34,age=0,sex=0]
people [id=105,name=aPeopleupdate,age=53,sex=0]
people [id=101,name=aPeopleupdateMyBatis,age=53,sex=0]
people [id=107,name=aPeopleupdate,age=53,sex=0]
people [id=109,name=aPeopleupdate,age=53,sex=0]
people [id=111,name=aPeopleupdate,age=48,sex=0]
people [id=113,name=aPeopleupdate,age=43,sex=0]
people [id=115,name=aPeopleupdate,age=38,sex=0]
people [id=117,name=aPeopleupdate,age=33,sex=0]
people [id=119,name=aPeopleupdate,age=28,sex=0]

people [id=null,name=2019-38-27 07:38:09,age=0,sex=0]
1

people [id=101,name=aPeopleupdateMyBatisupdateMyBatis,age=53,sex=0]
1
1

6.总结

如上写法很笨重,写法很傻瓜,出错性高,不易维护,代码冗余高,容错性差等等。

非常不推荐。

本文由作者按照 CC BY 4.0 进行授权