mybatis
Posted jokerzou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis相关的知识,希望对你有一定的参考价值。
1.mybatis是什么和用法
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。当前,最新版本是MyBatis 3.5.1 ,其发布时间是2019年4月8日。.
平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类。 不仅如此,访问不同的表,还会写很多雷同的代码,显得繁琐和枯燥。用了Mybatis之后,只需要自己提供SQL语句,其他的工作,诸如建立连接,Statement, JDBC相关异常处理等等都交给Mybatis去做了,那些重复性的工作Mybatis也给做掉了,我们只需要关注在增删改查等操作层面上,而把技术细节都封装在了我们看不见的地方。
2.mabatis相关包的导入
另外,此项目还选需要导入sql操作相关jar包
3.编写Mybatis的.xml配置文件
这个配置文件的包含:数据库基本信息中的数据库驱动路径Driver,数据库路径url,数据库用户名username,数据库用户密码password和数据库操作配置文件.xml。
管理数据源的代码:
1 <property name="driver" value=" " /> 2 <property name="url" value=" " /> 3 <property name="username" value=" " /> 4 <property name="password" value=" " />
注:value=""中填写相应的数据
管理数据库操作映射(另一个.xml文件)的带按摩
1 <mappers> 2 <mapper resource="xxx.xml"/> 3 </mappers>
注:xxx中填写相对应的创建的.xml文件名
4.编写xxx.xml的配置文件(数据库增删改查操作)
<mapper namespace="Test1"> <!-- insert:添加操作的标签,id:用来引用该标签 --> <insert id="insertPerson"> insert into person (name,nickname) values(‘张三‘,‘王麻子‘) </insert> <!-- 带参数的标签 --> <insert id="insertPersonWithParams" parameterType="person"> insert into person (name,nickname) values(#{name},#{nickname}) </insert> <!-- 查询标签 --> <!-- resultMap:集合的泛型类 --> <select id="findAll" resultMap="personMap"> select * from person </select> <select id="findById" resultType="person" parameterType="int"> select * from person where pid=#{pid} </select> <!-- 修改 --> <update id="updateById" parameterType="person"> update person set name=#{name},nickname=#{nickname} where pid=#{pid} </update> <!-- 删除 --> <delete id="deleteById" parameterType="person"> delete from person where pid=#{pid} </delete> <!-- 注意:除了查询之外,其他的操作,增删改操作的,起始和标签名称没有关系! --> <delete id="insertWithDeleteTag" parameterType="person"> insert into person (name,nickname) values(#{name},#{nickname}) </delete> </mapper>
5.在java类中调用
public class MybTest { public void MybTest() throws IOException{ String resource = "com/mybatis1.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); //操作数据库,第一个参数是映射的Mapper.xml设定的sql语句,第二个是动态生成sql语句的参数 sqlSession.insert("Test1.insertPerson", user);//增 sqlSession.selectOne("Test1.findById", 1);//查 sqlSession.commit(); sqlSession.close(); } }
以上是关于mybatis的主要内容,如果未能解决你的问题,请参考以下文章
SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper
MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段