Mybatis学习笔记(1)——第一个程序

举报
bigsai 发表于 2021/02/03 02:58:57 2021/02/03
【摘要】 暑期之前就有打算学习SSM,但是我记得当时再配置一个框架疯狂报错,弄得我很难受,,再加上当时有点其他事情,所以就放了下来。现在很有需求要会ssm,所以就学了一下。感觉框架这东西配置就烦的要死。错一丁点就全错。。下面开始说配置详情。 介绍一下这些东西,将mybatis的jar包依赖放入lib目录。User类是一个bean对象,test类是一个测试类(就是要用到这个服务的...

暑期之前就有打算学习SSM,但是我记得当时再配置一个框架疯狂报错,弄得我很难受,,再加上当时有点其他事情,所以就放了下来。现在很有需求要会ssm,所以就学了一下。感觉框架这东西配置就烦的要死。错一丁点就全错。。下面开始说配置详情。
这里写图片描述
介绍一下这些东西,将mybatis的jar包依赖放入lib目录。User类是一个bean对象,test类是一个测试类(就是要用到这个服务的)。conf.xml是全局配置,配置了数据库相关信息和数据库操作文件的映射(userMapper等数据库操作)。userMapper.xml封装了数据库操作给test调用。
首先,数据库创建数据库

1 create database mybatis;
2 use mybatis;
3 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);
4 INSERT INTO users(NAME, age) VALUES('hehe',15 );
//随便输入几条数据

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

在src目录下建立对应的user对象:

package com.test.mybits;

public class User {
	private int id;
	private String name;
	private int age;
	public User(){}
	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;
	}
	public String toString()
	{
		return "user [id=" id ",name=" name ",age=" age "]";
	}

}


  
 
  • 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

这样bean对象就建好了。
下一步建立conf.xml,这个是一个全局配置的xml文件,里面包含连接数据库的相关信息,有个要注意的是要把 < DOCTYPE confi----/>这个写在头。

<?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="db.properties"/>
 <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="userMapper.xml"/>
  <mapper class="com.test.mapper.userMapper2"/>
 </mappers>
 
</configuration>

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

这个和普通JDBC连接差不多。
下一步。创建userMapper.xml对象,进行相关配置

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN">

<mapper namespace="userMapper">

<!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 resultType="me.gacl.domain.User"就表示将查询结果封装成一个User类的对象返回 User类就是users表所对应的实体类 -->


<!-- 根据id查询得到一个user对象 -->


<select resultType="com.test.mybits.User" parameterType="Integer" id="getuser">select * from users where id=#{id} </select>

<!-- 增删改查 -->


<!-- 增 indesert -->


<insert parameterType="com.test.mybits.User" id="adduser">insert into users(name,age) values(#{name},#{age}) </insert>

<delete parameterType="Integer" id="deleteuser">delete from users where id=#{id} </delete>

<update parameterType="com.test.mybits.User" id="updateuser">update users set name=#{name},age=#{age} where id=#{id} </update>

<select resultType="com.test.mybits.User" id="datesearch">select * from users </select>

</mapper>

  
 
  • 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

最后编写test类

package com.test.test1;

import java.io.IOException;
import java.io.InputStream;
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;

import com.test.mybits.User;

public class Test {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		String resource="conf.xml";
		//使用类加载mybatis驱动文件,(他也加载关联的附带文件)
	//	InputStream is=Test.class.getClassLoader().getResourceAsStream(resource);
		//构建sqlsession工厂
	//	SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(is); // 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
 Reader reader = Resources.getResourceAsReader(resource); 
 //构建sqlSession的工厂
 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
 //创建能执行映射文件中sql的sqlSession //创建sqlsession文件
		SqlSession session=sessionFactory.openSession(); String statement="getuser";
		User user=session.selectOne(statement,3);
		System.out.println(user);
		User user2=session.selectOne(statement,1);
		System.out.println(user2); //System.out.print(11);
	}
}


  
 
  • 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

运行输出为:

user [id=3,name=弟弟,age=22]
user [id=1,name=张赛,age=21]

  
 
  • 1
  • 2

根据个人的数据库查询出不同结果。在main函数中,statement对应xml中配置的id。这个只是实现了简单的查询功能,后续的增删该查都是类似模块,就是要注意映射的一一对应和路径的问题。

文章来源: bigsai.blog.csdn.net,作者:Big sai,版权归原作者所有,如需转载,请联系作者。

原文链接:bigsai.blog.csdn.net/article/details/82667514

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。