MyBatis学习笔记(一)
2015-09-14 00:15
330 查看
测试Demo的目录结构:
测试数据库是MySQL,用的数据库连接是JDBC,上面的目录结构中MyBatisConfig.xml是MyBatis的核心配置文件,userMapper.xml是用来映射SQL语句的,这里的映射使用了mxl文件来配置而没有使用注释的方式的原因是在很多复杂的情况下使用xml文件来配置这里会使程序看起来整洁而且编程更加高效。
核心配置文件的xml文件是这样的:
文件:MyBatisConfig.xml
每一个environment对应了每一个数据库,这里的数据使用了我的一个博客的数据库作为测试。底下的mapper标签是用来映射SQL语句的文件路径的,这里从目录结构来看userMapper.xml来看路径应该是com/luohao/config/userMapper.xml。
之后只映射的SQL语句,文件为userMapper.xml
这里的命名空间是必须的,这是MyBatis是新特性也是让代码跟家严格的特性。
id用是一个标识,之后的java代码中会出现这个,paramterType是用来对应数据类型的,这里是username,对应的是String类,resultType对应的是实例类也可以叫做模型类,是数据库SQL语句执行所得到参数所对应的get或者set方法。
之后的数据库语句基本一致,只是#号之后的java代码会插入要查找的东西。下面就是java代码了。
之后的user类就不多说了,是get和set方法。
这就是一个比较简单的MyBatis的Demo.
com.luohao.config ->MyBatisCongfig.xml ->userMapper.xml com.luohao.Test ->TestMyBatis.class ->User.class
测试数据库是MySQL,用的数据库连接是JDBC,上面的目录结构中MyBatisConfig.xml是MyBatis的核心配置文件,userMapper.xml是用来映射SQL语句的,这里的映射使用了mxl文件来配置而没有使用注释的方式的原因是在很多复杂的情况下使用xml文件来配置这里会使程序看起来整洁而且编程更加高效。
核心配置文件的xml文件是这样的:
文件:MyBatisConfig.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="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/blogtest"/> <property name="username" value="root"/> <property name="password" value="*******"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/luohao/config/userMapper.xml"/> </mappers> </configuration>
每一个environment对应了每一个数据库,这里的数据使用了我的一个博客的数据库作为测试。底下的mapper标签是用来映射SQL语句的文件路径的,这里从目录结构来看userMapper.xml来看路径应该是com/luohao/config/userMapper.xml。
之后只映射的SQL语句,文件为userMapper.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="com.luohao.config.userMapper"> <select id="Username" parameterType="String" resultType="com.luohao.Test.User"> select * from user where username=#{username} </select> </mapper>
这里的命名空间是必须的,这是MyBatis是新特性也是让代码跟家严格的特性。
id用是一个标识,之后的java代码中会出现这个,paramterType是用来对应数据类型的,这里是username,对应的是String类,resultType对应的是实例类也可以叫做模型类,是数据库SQL语句执行所得到参数所对应的get或者set方法。
之后的数据库语句基本一致,只是#号之后的java代码会插入要查找的东西。下面就是java代码了。
package com.luohao.Test; 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; public class TestMyBaits { public static void main(String[] args){ String resource="com/luohao/config/MyBatisConfig.xml";//对应的配置文件路径 InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } //建立SQLSession工厂 SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); SqlSession session=sqlSessionFactory.openSession(); String statment ="com.luohao.config.userMapper.Username"; //这里的Username对应的是Mapper里的id,之后的selectOne方法可以映射到SQL语句中 User user=session.selectOne(statment,"luohao"); System.out.println(user.getEmail()); } }
之后的user类就不多说了,是get和set方法。
这就是一个比较简单的MyBatis的Demo.
相关文章推荐
- 水仙花数
- 构造函数的对象初始化列表
- ListView的分割线属性操作
- ContextLoaderListener作用详解
- C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法
- Lucas定理+中国剩余定理 hdu5446 Unknown Treasure
- .NET基础拾遗(2)面向对象的实现和异常的处理基础
- jq 判断多个 checkbox 选中
- 想搞个快速排序,却用上了ArrayList是不是有点“邪魔外道” ……
- android-service
- iOS 网易彩票-6设置模块三(常用小功能)
- Path和classpath
- [LeetCode#244] Shortest Word Distance II
- JNI调用
- spark 最新版1.0本地模式安装_spark入门学习一
- Lintcode搜索区间
- php服务器版本更新工具up2server
- Unity3D笔记第十三天——关节、布料
- 网络操作系统和分布式操作系统的区别
- Linux中批量删除redis中的key