第一个myBatis程序

本文详细介绍了MyBatis的基本使用步骤,从下载jar包到配置mybatis.xml和mapper.xml,再到创建SqlSessionFactory和SqlSession,最后实现数据的插入操作。通过实例讲解,帮助初学者快速掌握MyBatis的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这就是我们今天的主角,mybatis!

 

今天我写了第一个mybatis程序,过程有些曲折不过最终的结果还是让人比较满意的!

 

首先,我们先来说一下mybatis的使用步骤:

 

1.准备工作

首先我们需要去github上下载mybatis的jar包,网址为https://github.com/mybatis

然后别忘了将mybatis的jar包导入到你的项目中!

 

我们需要两个xml文件对mybatis进行配置,它们分别是mybatis.xml和mapper.xml(当让,两个配置文件的名称都是任意的,但是我们尽量做到见名知义)。

 

  1>mybatis.xml为主配置文件,需要存放在src下

 我们来看看mybatis.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>
 	<environments default="database1">
 		<environment id="database1">
 			<transactionManager type="JDBC"/>
 			
 			<dataSource type="POOLED">
 				<property name="driver" value="com.mysql.jdbc.Driver"/>
 				<property name="url" value="jdbc:mysql://localhost:3306/test"/>
 				<property name="username" value="root"/>
 				<property name="password" value="1103285470"/>
 			</dataSource>
 		</environment>
 	</environments>
 	
 	<mappers>
 		<mapper resource="com/sdp/mybatis/Dao/mapper.xml"/>
 	</mappers>
 	
 </configuration>

2>mapper.xml为映射文件一般放在dao包下

 

 

 

源码如下:

<?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="mymapper">
	<insert id="_insert" parameterType="com.sdp.mybatis.Student">
		insert into student(name,age,sex) values(#{name},#{age},#{sex})
	</insert>
	
</mapper>

2.进入正题

 

1.首先我们需要创建SqlSessionFactoryBuilder对象

SqlSessionFactory sqlsessionfactory=new SqlSessionFactoryBuilder();

2.创建输入流InputStream,该输入流中的内容是主配置文件的内容mybatis.xml(Resource对象为org.apache.ibatis.io.Resources,不要导错了);

//加载配置文件
InputStream is=Resources.getResourceAsStream("mybatis.xml");

3.通过调用SqlSessionFactoryBuilder对象的builder参数来创建一个SqlSessionFactory对象来创建SqlSession对象。(builder方法的参数就是我们的InputStream);

SqlSessionFactory sqlsessionfactory=new SqlSessionFactoryBuilder().build(is);

4.然后我们可以就可以调用sqlsessionfactory对象的opensession方法的到SqlSession对象了,该对象可以直接对数据库进行操作;

SqlSession sqlsession = sqlsessionfactory.openSession();

5.调用sqlsession对象的各种操作数据库的方法即可;

//调用sqlsession的insert方法,向数据库写入数据
sqlsession.insert("_insert",student);

这里需要特别注意以下,insert方法有两个参数,第一个是我们要调用的方法名,就是在mapper.xml中配置的insert方法id而另一个参数就是我们需要添加到数据库的对象,改对象的类型应与mapper.xml中配置的insert方法的paramterType一致,否则会出现异常!

这是我们一运行,不会报错,但是检查数据库,不会有数据被插入数据库,这是为什么呢?

我们可以通过查看运行日志来找到线索。

也就是说我们只要再增加一条事务提交语句就可一了,而我们的SqlSession对象中就有事务提交方法直接调用它就好

sqlsession.commit();//提交事务

这时再看,数据库就插入了我们传入的对象了,可以说我们的插入已经成功了,但是你会发现如果你使用了自增的主键的话,该主键的值已经不在是一了,这是为什么呢?因为我们前几次没有加提交语句,数据库已经为我们生成了主键但是我们没有用它,知道提交的那一次,才有到了它,而前面几次生成的就作废了!

 

后言:

大家可能会发现mybatis的依赖jar包中出现了log4j,很多时候,日志可以告诉哦我们程序在哪里出错了,我们应该如何改错,说一建议没学过log4j和log4j2的朋友下去了解以下日志相关的知识,不难,但是以后会用的很多。谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值