mybatis入门
什么是mybatis
- MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来(from维基百科)
准备工作
- mybatis的jar包
- 一个数据库(我采用的是mysql)
具体如下
数据库结构如下
my-batis文件
-
配置文件,配置连接的数据库,账户名,密码等,同时指定使用到的mapper的位置
<?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="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/db_develop" /> <property name="username" value="root"/> <property name="password" value="password"/> </dataSource> </environment> </environments> <mappers> <mapper url="file:///F:/IDEAProject/WebAppLearn/UserMapper.xml"/> </mappers> </configuration>
-
mapper文件
<?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="com.wilbert.mapper.UserMapping"> <select id="getUser" resultType="com.wilbert.model.User"> select * from tb_user where id = #{id} </select> </mapper>
- 注意其中的namespace,命名空间,可以将其认为是java中的包,而id则为java中具体的类,这样在下面的调用就比较好理解了.
-
数据模型类,一个普通的java类,拥有getter,setter方法.
-
测试类
public class MyBatisLearn { public static void main(String[] args) throws IOException { String resource = "src/main/java/com/wilbert/config/mybatis-config.xml"; InputStream inputStream = new FileInputStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession sqlSession = sqlSessionFactory.openSession(); String statement = "com.wilbert.mapper.UserMapping.getUser"; User user = sqlSession.selectOne(statement, "5b6f8d5739834dddb785c5e909471e69"); } }
- 需要注意的是statement,statement是由namespace+id构成.
-
运行结果
id:5b6f8d5739834dddb785c5e909471e69,name:a,password:a
后续
- 从上面可以看到,其中至关重要的是mapper文件,在mapper文件中我们配置了各式各样的sql,而mybatis也提供了很强大的语法来实现复杂的查询或者插入,更新等.详情可以进一步查看http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html