mybatis入门学习
来源:互联网 发布:简单的平面设计软件 编辑:程序博客网 时间:2024/06/05 05:18
作为一个程序员,第一个接触的orm框架就是hibernate,使用了很长时间。可是正是应为使用这个,让自己所学习的sql置于了一个很尴尬的地方,程序开发很少直接接触,却又不能够放弃。好在发现了mybiats 。相比于hibernate,mybatis可以说是灵活小巧了,因此也就很容易上手。我想正是因为它的小巧,在官网上则可以很容易的查找到它的中文文档,这对对于英文不怎么样的我来说不得不说是一个好消息.如果不知道他的中文参考文档请猛戳这里:http://mybatis.github.io/mybatis-3/zh/index.html.学习了mybatis也有一段时间了,总的来说就是mybatis可以提高程序在dao层的灵活性与性能,但是在开发效率上还是觉得hibernate比较高.
接下来就写一个简单的小例子算是入门吧。首先嘛当然创建一个maven项目了。然后在pom文件中添加mybatis与mysql,已以及测试的依赖配置了
,然后依照它的官方文档添加mybatis-config.xml与PersonMapper.xml了。
因为mybatis是用于操作数据库的,所以则需要配置连接数据库的数据源以及事务管理了,这些东西都可以直接从官方文档中拿过来.
个人比较喜欢将数据库的信息写在配置文件中,然后再引入。
然后是实体bean 的映射文件
<?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="Person"> <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyColumn="id"> insert into t_person(age,name)values(#{age},#{name}); </insert> </mapper>
这里采用主键自动增长。
然后编写添加的代码
package com.mybatis.crud;import java.io.IOException;import java.io.InputStream;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.mybatis.bean.Person;public class MyBatisCRUD {public static SqlSessionFactory sqlSessionFactory;static{String resource = "mybatis-config.xml";InputStream inputStream;try {inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//添加public void add(){Person person=new Person();person.setAge(20);person.setName("宇智波鼬");SqlSession sqlSession=sqlSessionFactory.openSession();int count=sqlSession.insert("Person.insert", person);sqlSession.commit();System.out.println(count);}}
这里利用mybatis提供Resource从xml中构建sqlsessionFactory,这一块代码可以直接从文档中copy过来,因为测试的原因,我将其写在的静态代码块中。这里要注意的是事务是默认开启的,必须手动提交,也就是 SqlSession.comit();sqlSession.insert的第一个参数是映射文件的namespace+要引用sql的id。
<span style="font-size:24px;">最后编写测试代码:</span>
package com.mybatis.test;import org.junit.Test;import com.mybatis.crud.MyBatisCRUD;import com.sun.swing.internal.plaf.metal.resources.metal;public class MybatisTest {@Testpublic void addTest(){MyBatisCRUD myBatisCRUD=new MyBatisCRUD();myBatisCRUD.add();}}
然后测试,就可以查看数据库了.
OK。那么接下来就是更新 删除 修改了.
下面是完整的代码与配置文件
POM文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.maven.ibatis</groupId> <artifactId>MybatisStudy</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>MybatisStudy Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.7</version></dependency> <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.31</version></dependency> </dependencies> <build> <finalName>MybatisStudy</finalName> </build></project>mybatis-config.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="db.properties"></properties> <typeAliases> <typeAlias type="com.mybatis.bean.Person" alias="Person"/> </typeAliases> <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="com/mybatis/PersonMapper.xml"/> </mappers> </configuration>
personMapper.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="Person"> <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyColumn="id"> insert into t_person(age,name)values(#{age},#{name}); </insert> <update id="update" parameterType="Person"> update t_person set name=#{name},age=#{age} where id=#{id} </update> <select id="list" resultType="Person"> select * from t_person </select> <select id="findbyid" resultType="Person"> select * from t_person where id=#{id} </select> <delete id="delete"> delete from t_person where id=#{id} </delete> </mapper>
MybatisCURD.java
package com.mybatis.crud;import java.io.IOException;import java.io.InputStream;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 org.omg.CORBA.PUBLIC_MEMBER;import com.mybatis.bean.Person;public class MyBatisCRUD {public static SqlSessionFactory sqlSessionFactory;static{String resource = "mybatis-config.xml";InputStream inputStream;try {inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//添加public void add(){Person person=new Person();person.setAge(20);person.setName("宇智波鼬");SqlSession sqlSession=sqlSessionFactory.openSession();int count=sqlSession.insert("Person.insert", person);sqlSession.commit();System.out.println(count);}//更新public void edit(){Person person=new Person();person.setId(1);person.setAge(22);person.setName("卡卡西");SqlSession sqlSession=sqlSessionFactory.openSession();int count=sqlSession.update("Person.update", person);sqlSession.commit();System.out.println(count);}//根据条件查询public void findbyCond(){SqlSession sqlSession=sqlSessionFactory.openSession();Person person=sqlSession.selectOne("Person.findbyid", 1);System.out.println(person);}//列表查询public void list(){SqlSession sqlSession=sqlSessionFactory.openSession();List<Person> list=sqlSession.selectList("Person.list");for (Person person : list) {System.out.println(person);} }//删除public void delete(){SqlSession sqlSession=sqlSessionFactory.openSession();int i=sqlSession.delete("Person.delete",1);sqlSession.commit();System.out.println(i);}}
mybatisTest.java
package com.mybatis.test;import org.junit.Test;import com.mybatis.crud.MyBatisCRUD;import com.sun.swing.internal.plaf.metal.resources.metal;public class MybatisTest {@Testpublic void addTest(){MyBatisCRUD myBatisCRUD=new MyBatisCRUD();myBatisCRUD.add();}@Testpublic void updateTest(){MyBatisCRUD myBatisCRUD=new MyBatisCRUD();myBatisCRUD.edit();}@Testpublic void findByCondTest(){MyBatisCRUD myBatisCRUD=new MyBatisCRUD();myBatisCRUD.findbyCond();}@Testpublic void listTest(){MyBatisCRUD myBatisCRUD=new MyBatisCRUD();myBatisCRUD.list();}@Testpublic void deleteTest(){MyBatisCRUD myBatisCRUD=new MyBatisCRUD();myBatisCRUD.delete();}}
0 0
- 【MyBatis学习02】MyBatis入门
- MyBatis入门学习教程 MyBatis快速入门
- mybatis学习笔记---入门
- ibatis(mybatis) 学习入门
- MyBatis入门学习
- mybatis入门学习
- MyBatis入门学习
- mybatis入门学习
- mybatis 入门学习
- MyBatis入门学习
- MyBatis入门学习
- MyBatis入门学习
- mybatis入门学习
- MyBatis入门学习教程
- mybatis入门学习
- MyBatis入门学习教程
- MyBatis入门学习教程
- MyBatis入门学习教程
- 4.2 ForkJoin_拆分任务
- Listener实践
- 河北拓睿网络科技有限公司
- 青岛城乡客运一体化 市区校车智能系统加强
- nrpe
- mybatis入门学习
- leetcode 75 Combinations
- iOS7: 那些容易被忽视的新特性
- java对list集合分组
- 在tomcat热部署中,解决jdbc无法释放,war包无法彻底删除的问题
- log4j在web.xml中如何配置
- Choose a destination with a supported architecture in order to run on this device.
- C小加 之 随机数
- Cocos2d-x 3.1.1 学习日志3--C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员